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.