|
Size: 3639
Comment:
|
← Revision 8 as of 2013-04-28 11:07:21 ⇥
Size: 4523
Comment: sync with English master
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 7: | Line 7: |
| <<TableOfContents(3)>> | <<TableOfContents(3)>> |
| Line 15: | Line 15: |
| aptitude install binutils debootstrap | apt-get install binutils debootstrap |
| Line 20: | Line 20: |
| mkdir -p /var/chroot/etch | mkdir -p /srv/chroot/wheezy |
| Line 25: | Line 25: |
| debootstrap --arch i386 etch /var/chroot/etch | debootstrap --arch i386 wheezy /srv/chroot/wheezy |
| Line 27: | Line 27: |
* recupero di un'«immagine», decompressione e installazione dei pacchetti richiesti |
|
| Line 32: | Line 30: |
| chroot /var/chroot/etch | chroot /srv/chroot/wheezy |
| Line 36: | Line 34: |
| In genere è necessario creare o modificare le configurazioni. | In genere è necessario creare o modificare punti chiave delle configurazioni. Creare un file /usr/sbin/policy-rc.d NELLA CHROOT, in modo che dpkg non avvii demoni a meno che non sia voluto. Questo esempio previene impedisce l'avvio nella chroot di tutti i demoni. {{{ chroot /srv/chroot/wheezy cat > ./usr/sbin/policy-rc.d <<EOF #!/bin/sh exit 101 EOF chmod a+x ./usr/sbin/policy-rc.d }}} Il comando {{{ischroot}}} è difettoso e non rileva il fatto di essere in esecuzione in una chroot (DebianBug:685034). Svariati pacchetti dipendono da {{{ischroot}}} per determinare il comportamento corretto in una chroot e funzioneranno in modo non corretto durante gli aggiornamenti se il problema non viene risolto. Il modo più semplice per farlo è di sostituire ischroot con il comando /bin/true. Sfortunatamente ciò viene sovrascritto ogni volta che viene aggiornato DebianPkg:debianutils e l'operazione dovrà essere ripetuta. {{{ cp /bin/true /usr/bin/ischroot }}} |
| Line 42: | Line 57: |
| /etc/passwd /etc/groups |
/etc/passwd /etc/groups |
| Line 46: | Line 61: |
| * impostazionie di rete: | * impostazioni di rete nella chroot: |
| Line 48: | Line 63: |
| /etc/hosts /etc/resolv.conf |
/etc/hosts /etc/resolv.conf |
| Line 52: | Line 67: |
| * punti di mount: | * montaggio dei file system dell'host sottostante (NON nella chroot): |
| Line 54: | Line 69: |
| /etc/fstab | /etc/fstab |
| Line 59: | Line 74: |
| * Se il sistema non è interamente funzionante controllare la presenza di /proc nel sistema chroot. A priori, dal momento che la versione di debootstrap in Debian/Etch integra il montaggio di /proc e /sys nativamente. | * Se il sistema non è interamente funzionante controllare la presenza di /proc nel sistema chroot. A priori, dalla versione di debootstrap in Debian/Wheezy è integrato il montaggio di /proc e /sys nativamente. |
| Line 61: | Line 76: |
| proc on /proc type proc (rw) sysfs on /sys sysfs kind (rw) |
proc on /proc type proc (rw) sysfs on /sys sysfs kind (rw) |
| Line 70: | Line 85: |
| mount --bind /dev/pts /var/chroot/etch/dev/pts | mount --bind /dev/pts /srv/chroot/wheezy/dev/pts |
| Line 77: | Line 92: |
| # cat /etc/fstab | grep chroot /dev /var/chroot/etch/dev auto bind 0 0 /dev/pts /var/chroot/etch/dev/pts auto bind 0 0 /proc /var/chroot/etch/proc auto bind 0 0 |
# grep chroot /etc/fstab /dev /srv/chroot/wheezy/dev auto bind 0 0 /dev/pts /srv/chroot/wheezy/dev/pts auto bind 0 0 /proc /srv/chroot/wheezy/proc auto bind 0 0 |
| Line 86: | Line 101: |
| /dev on /var/chroot/etch/dev -type none (rw, bind) /dev/pts on /var/chroot/etch/dev/pts kind none (rw, bind) /proc on /var/chroot/etch/proc type none (rw, bind) |
/dev on /srv/chroot/wheezy/dev -type none (rw, bind) /dev/pts on /srv/chroot/wheezy/dev/pts kind none (rw, bind) /proc on /srv/chroot/wheezy/proc type none (rw, bind) |
| Line 94: | Line 109: |
| apt-get install deborphan | apt-get install deborphan |
| Line 97: | Line 112: |
| deborphan -a | deborphan -a |
| Line 102: | Line 117: |
| apt-get remove --purge telnet manpages pppconfig ipchains ... | apt-get remove --purge telnet manpages pppconfig ipchains ... |
| Line 109: | Line 124: |
| apt-get install emacs21 local mc | apt-get install emacs23 local mc |
Translation(s): Deutsch - English - Français - Italiano - Español
Nei sistemi operativi simili a Unix, il termine chroot indica un'operazione che consiste nel cambiare la directory di riferimento dei processi che sono in esecuzione corrente e per i processi generati da questi ultimi. (Continua a leggere...)
Contents
Installazione
Creare un "chroot" in Debian è molto semplice.
Ciò che serve è:
- installare i pacchetti necessari
apt-get install binutils debootstrap
- scegliere una posizione
mkdir -p /srv/chroot/wheezy
- creare il chroot
debootstrap --arch i386 wheezy /srv/chroot/wheezy
- entrarvi:
chroot /srv/chroot/wheezy
Configurazione
In genere è necessario creare o modificare punti chiave delle configurazioni.
Creare un file /usr/sbin/policy-rc.d NELLA CHROOT, in modo che dpkg non avvii demoni a meno che non sia voluto. Questo esempio previene impedisce l'avvio nella chroot di tutti i demoni.
chroot /srv/chroot/wheezy cat > ./usr/sbin/policy-rc.d <<EOF #!/bin/sh exit 101 EOF chmod a+x ./usr/sbin/policy-rc.d
Il comando ischroot è difettoso e non rileva il fatto di essere in esecuzione in una chroot (685034). Svariati pacchetti dipendono da ischroot per determinare il comportamento corretto in una chroot e funzioneranno in modo non corretto durante gli aggiornamenti se il problema non viene risolto. Il modo più semplice per farlo è di sostituire ischroot con il comando /bin/true. Sfortunatamente ciò viene sovrascritto ogni volta che viene aggiornato debianutils e l'operazione dovrà essere ripetuta.
cp /bin/true /usr/bin/ischroot
Configurare un chroot è relativamente statico e molto specifico, è possibile fare a meno dei comandi di alto livello e modificare direttamente i file.
- utenti nel chroot:
/etc/passwd /etc/groups
- impostazioni di rete nella chroot:
/etc/hosts /etc/resolv.conf
- montaggio dei file system dell'host sottostante (NON nella chroot):
/etc/fstab
Montare pseudo filesystem
/proc
- Se il sistema non è interamente funzionante controllare la presenza di /proc nel sistema chroot. A priori, dalla versione di debootstrap in Debian/Wheezy è integrato il montaggio di /proc e /sys nativamente.
proc on /proc type proc (rw) sysfs on /sys sysfs kind (rw)
/dev/pts
È inoltre consigliato di fare un "bind" a /dev/pts. Questo previene messaggi di errore come Devo essere collegato ad un terminale o Impossibile accedere a '/dev/pts/0': File o directory non esistente durante l'uso di screen.
In tal caso, dal sistema principale, eseguire il comando:
mount --bind /dev/pts /srv/chroot/wheezy/dev/pts
Configurazioni predefinite
Generalmente il file /etc/fstab apparirà come segue:
# grep chroot /etc/fstab /dev /srv/chroot/wheezy/dev auto bind 0 0 /dev/pts /srv/chroot/wheezy/dev/pts auto bind 0 0 /proc /srv/chroot/wheezy/proc auto bind 0 0
Perciò "mount" dal sistema principale sarà:
# mount | grep chroot /dev on /srv/chroot/wheezy/dev -type none (rw, bind) /dev/pts on /srv/chroot/wheezy/dev/pts kind none (rw, bind) /proc on /srv/chroot/wheezy/proc type none (rw, bind)
Aggiungere e rimuovere pacchetti
- Eliminare pacchetti non necessari (dipende dallo scopo del chroot):
apt-get install deborphan
deborphan -a
- e, ad esempio:
apt-get remove --purge telnet manpages pppconfig ipchains ...
Complementary list svgalibg1 whiptail
- aggiungere qualche comodità:
apt-get install emacs23 local mc
Uso
Esempi comuni di utilizzo di un chroot:
ricompilazione di applicazioni in un contesto differente dalla macchina che ospita il chroot (backport, cross-compilazione, ...)
- aggiornamento servizi di produzione orientando il vecchio (macchina ospitante) al nuovo (installato nel chroot)
- protezione di un servizio "chrootato" dalla macchina ospitante e viceversa
Vedere anche
Debootstrap : impostare un'altra installazione Debian completa all'interno di una chroot.
