Debootstrap ….

29 04 2008

Aquí veremos cómo montar un sistema auxiliar para uso o pruebas usando la herramienta que provee Debian GNU/Linux llamada debootstrap. Como reza su manual de uso debootstrap puede ser usado para instalar Debian en un sistema sin un disco de instalación al igual que puede ser usado para ejecutar variantes del sistema en un ambiente controlado por chroot. Así podremos crear una instalación mínima o completa de un sistema Debian con fines de prueba o de uso.

El comando chroot levanta una terminal interactiva para un directorio raíz específico. Más adelante veremos algunos elementos de su funcionamiento. Para comenzar instalaremos ambas herramientas:

# apt-get install debootstrap

Comenzaremos por montar el sistema en un directorio determinado. Para el ejemplo nos conectaremos a debian.org e instalaremos un sistema base estable:

# mkdir /opt/bootstrap_test
debootstrap stable /opt/bootstrap_test http://ftp.debian.org/debian

Esto comenzará a instalar el sistema base en la carpeta que especificamos. Luego que termine podremos comenzar a usar nuestro sistema:

# chroot /opt/bootstrap_test

Veremos que nos situa en una terminal. Esta terminal se encuentra dentro de nuestra máquina virtual ( por llamarla de algún modo ). Chroot lo que hace es sustituir la raíz ( / ) del sistema por la estructura de directorios que hayamos creado en alguna ubicación del sistema.

Enlace de dispositivos

Notaremos que cuando intentamos utilizar algún dispositivo del sistema anfitrión desde el sistema cliente estos no aparecen en el directorio. Como ambos sistemas se ejecutan sobre una misma máquina partiremos de la afirmación que los dispositivos para ambas serán los mismos. Por tanto simplemente crearemos enlaces entre los dispositivos en la máquina anfitriona y la cliente. La vía que usaremos será con el fstab. Haciendo un enlace simbólico con ln no es suficiente, ya que estos apuntan a direcciones relativas o absolutas que se modifican una vez que entremos en nuestra máquina cliente. Sin embargo el fstab trabaja a nivel de dispositivos y persiste de forma más conveniente para hacer este tipo de enlaces. Añadimos al fstab:

/dev /opt/bootstrap_test/dev none bind 0 0
/proc /opt/bootstrap_test/proc none bind 0 0
/tmp /opt/bootstrap_test/tmp none bind 0 0

Esto nos enlazará no solo los dispositivos sino también la carpeta temporal /tmp y la carpeta donde se muestra información sobre servicios en el sistema /proc.

Aplicaciones visuales

Otro elemento que nos puede ayudar para poder trabajar en nuestro ambiente controlado es habilitar la ejecución de aplicaciones visuales. Quizás notemos que cuando tratamos de ejecutar alguna aplicación visual recibimos este error:

Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
(:31539): Gtk-WARNING **: cannot open display:

Para poder utilizar el servidor gráfico corriendo en la máquina anfitriona podemos ejecutar un comando que habilita los permisos para la máquina cliente. En el ejemplo habilitaremos para que se puedan realizar conexiones desde todas las máquinas. Si se desea una permisología más detallada pueden consultar el manual de uso de la aplicación. Esto lo ejecutaremos en la máquina anfitriona:

# xhost +

Al ejecutarlo nos notificará que el acceso se ha habilitado para todas las máquinas.

Arranque del sistema

Cuando tengamos nuestro sistema encapsulado preparado podemos continuar utilizándolo desde su entorno controlado o podemos también ponerlo a correr en nuestro sistema. Quizás el usuario haya querido probar alguna funcionalidad nueva y cuando esté decidido a ponerla en uso quiera que su sistema anfitrión tenga esa imagen del sistema cliente. Para ello debemos ubicar nuestro sistema cliente en otro dispositivo en nuestro sistema. Por ejemplo veremos cómo puede estar estructurado nuestro sistema:

$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3             19228308  16364452   1887104  90% /
tmpfs                   517412         0    517412   0% /lib/init/rw
udev                     10240       108     10132   2% /dev
tmpfs                   517412         0    517412   0% /dev/shm
/dev/sda2               139999     22850    109920  18% /boot
/dev/sda4             46878848  26403112   7586448  68% /home
/dev/sda5             10000000         0  10000000   0% /opt/bootstrap_test

Noten como la “/” está asignado a un dispositivo en este caso /dev/sda3. Podemos crear nuestro sistema debootstrap en otro dispositivo como aparece al final en el listado. Luego modificaremos el arranque de nuestro sistema y asignarle al arranque que cargue con el núcleo instalado y con esta raiz nueva. En el ejemplo usamos el gestor de arranque GRUB. Para ello iremos a /boot/grub/menu.lst:


title           Debian GNU/Linux, kernel 2.6.24.3-e1505-
root            (hd0,1)
kernel          /vmlinuz-2.6.24.3-e1505- root=/dev/sda3 ro i386
initrd          /initrd.img-2.6.24.3-e1505-
savedefault

title           Debian GNU/Linux, kernel 2.6.24.3-e1505- (single-user mode)
root            (hd0,1)
kernel          /vmlinuz-2.6.24.3-e1505- root=/dev/sda3 ro i386 single
initrd          /initrd.img-2.6.24.3-e1505-
savedefault

Noten como se especifica “root=xxxxx” como el sistema raiz a cargar. Simplemente lo modificamos para que acepte nuestro nuevo dispositivo:

.
.
.......  root=/dev/sda5
.
.
.......  root=/dev/sda5
.

Reiniciamos, y listo !!! tendremos nuestro nuevo sistema corriendo. Si por alguna razón no levanta editamos el gestor de arranque cuando arranque el sistema, modificamos la línea referente al root y restauramos los valores anteriores.

Advertisements

Actions

Information

2 responses

15 01 2011
Denis

Hola que tal, soy novata en GNU linux canaima, tengo problemas para conectarme via wifi, descargue la ultima versión de network manager 8.0.2 pero no se como instalarla,
mi laptop tiene la versión 0.6.6 de NM help.

15 01 2011
teratux

Hola Denis, gracias por visitar el blog. Canaima está basada en Debian no ? No tienes disponible el network-manager en el repositorio ? Debería estar. Pasarás un poco más de trabajo si descargas el código fuente y lo intentas compilar por tu cuenta. La ventaja de utilizar lo que hay en el repositorio es que hay garantía de que funcione sin mucho esfuerzo por parte del usuario.

Salu2 …

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s




%d bloggers like this: