8.6.35 chroot
Il programma chroot, chroot(8), ci permette di far
girare istanze diverse dell'ambiente GNU/Linux su un sistema singolo e
simultaneamente senza dover fare il reboot.
Si pu� far girare un programma che utilizza molta memoria come
apt-get o dselect su una macchina host mentre si
monta via NFS una macchina satellite sull'host in lettura/scrittura e con il
chroot point che agisce come punto di montaggio della macchina satellite.
8.6.35.1 Far girare versioni diverse di Debian con chroot
Si pu� creare facilmente un ambiente chroot Debian tramite il comando
debootstrap in Woody. Per esempio, per creare Sid sotto chroot in
/sid-root mentre si ha a disposizione un accesso veloce ad Internet:
main # cd / ; mkdir /sid-root
main # debootstrap sid /sid-root https://ftp.debian.org/debian/
... guardatelo mentre si scarica l'intero sistema
main # echo "proc-sid /sid-root/proc proc none 0 0" >> /etc/fstab
main # mount proc-sid /sid-root/proc -t proc
main # cp /etc/hosts /sid-root/etc/hosts
main # chroot /sid-root /bin/bash
chroot # cd /dev; /sbin/MAKEDEV generic ; cd -
chroot # apt-setup # set-up /etc/apt/sources.list
chroot # vi /etc/apt/sources.list # punta su unstable
chroot # dselect # potete usare aptitude, installate mc e vim :-)
A questo punto dovreste avere un sistema Debian completo e funzionante, dove
giocare senza paura di danneggiare la vostra installazione Debian principale.
Il trucco di debootstrap pu� anche essere usato per installare la
Debian su un sistema senza usare il disco di installazione Debian ma uno di una
qualsiasi altra distribuzione GNU/Linux. Vedere https://www.debian.org/releases/stable/i386/apcs04.html.en.
8.6.35.2 Impostare il login per chroot
Digitare chroot /sid-root /bin/bash � semplice, ma
tiene in giro ogni sorta di variabile d'ambiente che magari non vorreste,
inoltre ha altri problemi. Un approccio sicuramente migliore � di lanciare un
altro processo di login su un terminale virtuale separato, da dove fare
direttamente il login in chroot.
Dato che su un sistema Debian standard da tty1 a tty6
girano le consoles Linux e su tty7 ci gira il X Window System,
impostiamo per esempio tty8 per una console "chrooted".
Dopo aver creato il sistema chroot come descritto in Far girare versioni diverse di Debian con
chroot, Sezione 8.6.35.1, digitate dalla shell di root del
sistema principale:
main # echo "8:23:respawn:/usr/sbin/chroot /sid-root "\
"/sbin/getty 38400 tty8" >> /etc/inittab
main # init q # ricarica init
8.6.35.3 Impostare X per chroot
Volete far girare gli ultimissimi X e GNOME con sicurezza nel vostro chroot?
Ci� � interamente possibile! Il seguente esempio far� girare GDM sul terminale
virtuale vt9.
Per prima cosa installate un sistema chroot usando il metodo descritto in Far girare versioni diverse di Debian con
chroot, Sezione 8.6.35.1. Da root del sistema principale,
copiate i file chiave di configurazione nel sistema chroot.
main # cp /etc/X11/XF86Config-4 /sid-root/etc/X11/XF86Config-4
main # chroot /sid-root # od usate la console di chroot
chroot # cd /dev; /sbin/MAKEDEV generic ; cd -
chroot # apt-get install gdm gnome x-window-system
chroot # vi /etc/gdm/gdm.conf # date s/vt7/vt9/ nella sezione [servers]
chroot # /etc/init.d/gdm start
Qui /etc/gdm/gdm.conf � stato modificato per lanciare la console
virtuale da vt7 a vt9.
A questo punto potete andare facilmente avanti e indietro tra gli ambienti X
completi del vostro sistema chroot e principale semplicemente saltando fra i
terminali virtuali; p.es. usando Ctrl-Alt-F7 e Ctrl-Alt-F9. Buon
divertimento!
[FIXME] Add a comment and link to the init script of the chrooted gdm.
8.6.35.4 Far girare altre distribuzioni con chroot
Si pu� creare facilmente un ambiente chroot con un'altra distribuzione.
Installate un sistema in una o pi� partizioni separate mediante l'installer
dell'altra distribuzione. Se la sua partizione di root � in
/dev/hda9.
main # cd / ; mkdir /altra-dist
main # mount -t ext3 /dev/hda9 /altra-dist
main # chroot /altra-dist /bin/bash
Il resto � simile a
Far girare versioni diverse di
Debian con chroot, Sezione 8.6.35.1, Impostare il login per chroot, Sezione
8.6.35.2, e
Impostare X per chroot,
Sezione 8.6.35.3.
8.6.35.5 Compilare i pacchetti con chroot
Esiste un pacchetto chroot pi� specializzato, pbuilder, che
costruisce un sistema chroot e compila un pacchetto al suo interno. E' un
sistema ideale per controllare se le dipendenze di compilazione di un pacchetto
sono corrette e per essere certi che dipendenze non necessarie o sbagliate non
esistano nel pacchetto risultante.