8.6.35 chroot
El programa chroot
, chroot(8)
, nos permite ejecutar
diferentes instancias de un entorno GNU/Linux en un �nico sistema,
simult�neamente y sin reiniciar.
Asimismo, uno puede ejecutar un programa que insuma gran cantidad de recursos
(por ejemplo, apt-get
o dselect
) bajo el chroot de
una m�quina anfitri�n veloz, montando en ella una m�quina auxiliar lenta
(m�quina sat�lite) mediante NFS en modo lectura/escritura, siendo el punto de
montaje el directorio chroot.
8.6.35.1 Ejecutar distintas versiones de Debian mediante chroot
Un entorno chroot Debian se puede crear en Woody f�cilmente mediante el comando
debootstrap
. Por ejemplo, para crear un chroot Sid en
/sid-root con una conexi�n de Internet r�pida:
main # cd / ; mkdir /sid-root
main # debootstrap sid /sid-root https://ftp.debian.org/debian/
... observe descargar todo el 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 # configurar /etc/apt/sources.list
chroot # vi /etc/apt/sources.list # apuntar a la rama inestable
chroot # dselect # puede usar aptitude, instalar mc y vim :-)
A esta altura, deber�a tener un sistema Debian totalmente funcional, donde
podr� jugar sin temor de afectar su instalaci�n Debian principal.
Este truco con debootstrap
se puede utilizar para instalar Debian
en un sistema sin usar Debian install disk but using one for another GNU/Linux
distribution. V�ase https://www.debian.org/releases/stable/i386/apcs04.html.en
.
8.6.35.2 Configurar el acceso para chroot
Escribir chroot /sid-root /bin/bash es f�cil, pero
conserva toda clase de variables de entorno que quiz�s no desee y acarrea otros
problemas. Un mejor enfoque consiste en ejecutar otro proceso login en una
terminal virtual aparte donde pueda entrar al sistema chroot directamente.
Puesto que, en los sistemas Debian predeterminados, las consolas Linux se
ejecutan desde tty1 hasta tty6 y el sistema X Window
se ejecuta en tty7, configuremos, como ejemplo, una consola chroot
en tty8. Luego de crear un sistema chroot como se explic� en Ejecutar distintas versiones de Debian mediante
chroot
, Secci�n 8.6.35.1, escriba desde el shell del
superusuario en el sistema principal:
main # echo "8:23:respawn:/usr/sbin/chroot /sid-root "\
"/sbin/getty 38400 tty8" >> /etc/inittab
main # init q # vuelve a cargar init
8.6.35.3 Configurando X para chroot
�Desea ejecutar la �ltima versi�n de X y Gnome en forma segura en su chroot?
�Es perfectamente posible! El siguiente ejemplo har� que GDM se ejecute en un
terminal virtual vt9.
Primero instale el sistema chroot usando el m�todo descripto en Ejecutar distintas versiones de Debian mediante
chroot
, Secci�n 8.6.35.1. Siendo superusuario en el sistema
principal, copie los archivos de configuraci�n claves en el sistema chroot.
main # cp /etc/X11/XF86Config-4 /sid-root/etc/X11/XF86Config-4
main # chroot /sid-root # o utilice la consola chroot
chroot # cd /dev; /sbin/MAKEDEV generic ; cd -
chroot # apt-get install gdm gnome x-window-system
chroot # vi /etc/gdm/gdm.conf # haga s/vt7/vt9/ en la secci�n [servers]
chroot # /etc/init.d/gdm start
En este caso, se edit� /etc/gdm/gdm.conf
para que la consola
virtual inicial sea vt9 en vez de vt7.
A partir de ahora, puede f�cilmente alternar entre el entorno X del chroot y su
sistema principal simplemente cambiando de terminal virtual; por ejemplo,
usando Ctrl-Alt-F7 y Ctrl-Alt-F9. �Que se diviertan!
[FIXME] A�adir un comentario y enlace al script init del gdm
del
chroot.
8.6.35.4 Ejecutar otra distribuci�n con chroot
Se puede crear f�cilmente un entorno chroot para otra distribuci�n Linux.
Instale un sistema en una partici�n aparte usando el instalador de otra
distribuci�n. Si su partici�n ra�z se encuentra en
/dev/hda9
:
main # cd / ; mkdir /otra-dist
main # mount -t ext3 /dev/hda9 /otra-dist
main # chroot /otra-dist /bin/bash
Luego proceda como en
Ejecutar distintas versiones
de Debian mediante chroot
, Secci�n 8.6.35.1, Configurar el acceso para chroot
, Secci�n
8.6.35.2 y
Configurando X para chroot
,
Secci�n 8.6.35.3.
8.6.35.5 Compilar un paquete con chroot
Existe un paquete chroot m�s sofisticado, pbuilder
, que crea un
sistema chroot y compila un paquete dentro de �l. Es un sistema ideal para
verificar que las dependencias de compilaci�n de un paquete sean correctas y
para estar seguros que no existan dependencias innecesarias o err�neas en el
paquete resultante.