Instalar Debian usando debootstrap y chroot
Índice.
1. Introducción y preparativos.
1.1. Materiales.
1.2. Entorno.
1.3. Montando las particiones.
2. Uso de debootstrap.
3. Instalación del sistema base.
4. Instalar y configurar grub.
1. Introducción y preparativos.
Algunas veces, nos encontramos ante la imposibilidad de instalar Debian GNU/Linux desde el instalador oficial, bien porque estamos utilizando una tarjeta inalámbrica de difícil configuración durante el proceso de instalación o bien porque parte del hardware no está correctamente soportado y hagan falta módulos extras para hacerlo funcionar, módulos extras que en ocasiones son inviables de introducir mediante unidades extraíbles. Este pequeño artículo va dirigido a intentar dar solución a algunos de estos problemas, así como mostraros como funciona el instalador de Debian GNU/Linux por dentro (de modo simplificado). Todos los comandos mostrados hay que ejecutarlos con privilegios de administrador.
1.1. Materiales.
Utilizaremos para ello nuevamente entornos chroot, una utilidad muy buena llamada debootstrap (o en su defecto alternativas como cdebootstrap, rpmstrap, etc.) y un livecd (ubuntu, knoppix, anis-live o cualquiera que esté basado en Debian y que sea medianamente completo). La primera parte de la instalación será prácticamente igual que lo que ya expliqué en el artículo para construirnos nuestro propio blog, solo que aquí daré algunos detalles extras ya que nuestro sistema se tendrá que comportar como un sistema físico principal.
1.2. Entorno.
Lo primero de todo es conocer nuestro entorno (que vamos a hacer y donde lo vamos a hacer). Yo voy a explicar como hacer la instalación en un sistema cuyo disco duro (hda) está totalmente vacío (el hacer sistemas duales no es complicado, pero requiere un poco de habilidad con grub y con el tema de particionamiento). Será un disco duro de 18Gb (útiles) que particionaré según la siguiente estructura:
+-------------+------------+-------------+---------------------+-------------------+
| Partición | Tipo | Tamaño (Gb) | Sistema de Ficheros | Punto de montaje |
+-------------+------------+-------------+---------------------+-------------------+
| /dev/hda1 | Primaria | 14,0 | ext3 | /media/hda1b |
| /dev/hda5 | Lógica | 1 Gb | swap | none |
| /dev/hda6 | Lógica | 3 Gb | ext3 | /media/hda2 |*
+-------------+------------+-------------+---------------------+-------------------+
* Esta última partición es opcional. Yo la utilizaré como un pequeño almacén para realizar salvados del sistema.
El tema de particionamiento es muy personal, usa la utilidad que te haga el trabajo más cómodo. Por sugerirte algunas herramientas buenas, gparted, cfdisk, fdisk, qtparted...
NOTA: Puedes hacer todas las particiones que quieras, pero asegúrate más tarde
de montarlas todas donde corresponda.
1.3. Montando las particiones.
Para poder continuar, deberemos montar las particiones que hemos creado en el apartado anterior. En este caso, vamos a necesitar montar solo /dev/hda1 puesto que la swap no nos va a hacer falta. Aún así, tenemos la posibilidad de activarla para nuestro livecd si andamos algo escasos de memoria ram, ejecutamos:
swapon /dev/hda5
Para montar /dev/hda1, simplemente ejecutamos como root:
mount /dev/hda1 /media/hda1
Si no falla nada, ya podemos pasar al siguiente paso.
2. Uso de debootstrap.
Lo primero que tenemos que hacer es asegurarnos de que tenemos instalado debootstrap. Ejecutamos debootstrap a secas:
debootstrap
El resultado debería ser algo como:
I: usage: [OPTION]... [ []]
I: Try `debootstrap --help' for more information.
E: You must specify a suite and a target.
Si no te aparece un mensaje similar a éste, significa que te toca instalar debootstrap a mano. Este paso es relativamente sencillo en sistemas basados en Debian.
apt-get update
apt-get install debootstrap
Vamos a explicar de manera breve las principales opciones de debootstrap. La sintaxis de este comando es bastante intuitiva:
debootstrap $DISTRO $MONTAJE $MIRROR
El parámetro DISTRO se refiere a la versión de Debian o Ubuntu que deseas instalar. En este caso vamos a escoger Debian Lenny, pero sientete libre de experimentar. La opción MONTAJE hace referencia al punto de montaje o directorio donde queremos instalar nuestra distro, en este caso /media/hda1. MIRROR es la última opción y se refiere al repositorio o espejo (mirror en inglés).
Algunas opciones extras (se colocan justo antes de $DISTRO) son:
--arch ARCH (selecciona la arquitectura ARCH, se sutituye normalmente por i386 o amd64)
--download-only (solo descarga los paquetes, no los instala)
--keep-debootstrap-dir (no borra el directorio debootstrap generado durante la descarga de paquetes).
--unpack-tarball FILE (en vez de descargar los paquetes, los obtiene de un archivo tar, en este caso FILE)
En nuestro caso particular, vamos a instalar debian lenny para una arquitectura i386, esto es:
debootstrap --arch i386 lenny /media/hda1 http://ftp.fr.debian.org/debian
Empezará entonces la descarga e instalación de paquetes base, que puede llevar más o menos tiempo dependiendo de la maquina en cuestión y de la conexión disponible, por lo que tendremos que tener paciencia. Una vez que acabe, podemos pasar al siguiente paso.
3. Instalación del sistema base.
Montamos el directorio /dev en /media/hda1/dev para que si algún programa intenta acceder a algún dispositivo físico del sistema no nos de problemas. Esto es:
mount -o bind /dev /media/hda1/dev
Copiamos algunos ficheros importantes:
cp -a /etc/resolv.conf /media/hda1/etc/
cp -a /etc/adjtime /media/hda1/etc/
cp -a /etc/apt/sources.list /media/hda1/etc/apt/ (esta última es opcional, la alternativa -recomendada- es editar ese sources.list de la jaula a mano, adaptándolo a nuestras necesidades).
Este es el momento de meternos en la jaula:
chroot /media/hda1
También resulta muy recomendable montar proc y sys (este último tiene menor importancia, pero si lo montamos mejor):
mount proc
mount sys
Ahora que tenemos montados los directorios principales y estamos dentro de la jaula chroot, tenemos que configurar todo lo que ya tenemos instalado. Para ello, ejecutaremos:
dpkg-reconfigure -a
Ello nos permitirá modificar aspectos básicos de la instalación, como decidir si queremos contraseñas shadow o no, etc.
Lo siguiente será poner una contraseña al usuario root y añadir un usuario.
passwd
adduser nombre_del_usuario
Continuamos configurando algunas aspectos importantes, como el archivo /etc/hosts, el nombre del host (/etc/hostname)
nano /etc/hosts
Un ejemplo muy básico sería
127.0.0.1 localhost
127.0.1.1 nombre_host
nano /etc/hostname
nombre_hostVamos ahora a configurar la interfaz "lo" (loopback) en nuestro archivo /etc/network/interfaces, para evitar posibles problemas que puedan surgir a posteriori
nano /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
NOTA: Éste archivo contiene lo mínimo recomendado. Si configuras tus dispositivos de red manualmente, deberías añadir la configuración correspondiente a ellos en este archivo. Si utilizas herramientas como Network Manager, puedes dejarlo tal y como aquí se propone.
A continuación, deberemos instalar un kernel, grub y algún sistema de reconocimiento de hardware. Esto es:
aptitude update
aptitude install grub linux-image-2.6-486 busybox udev discover1
Este será el momento de añadir los usuarios que quieras o configurar cualquier aspecto que desees de tu distribución.
Pasamos entonces a configurar el fstab de nuestro flamante Debian Lenny, para que cuando arranquemos nuestra maquina, monte de forma adecuada cada partición en el sitio que corresponda. En nuestro caso, empezaremos con un fstab sencillito.
# /etc/fstab: static file system information.
#
# <filesystem> <mountpoint> <type> <options> <dump> <pass>
/dev/hda1 / ext3 errors=remount-ro 0 1
/dev/hda6 /almacen ext3 defaults 0 2
/dev/hda5 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
proc /proc proc defaults 0 0
Es ahora un momento ideal de ponernos a configurar el idioma/locales de nuestro Debian. Antes de nada, instalamos el paquete "locales" si no estuviera instalado ya.
aptitude install locales
Es muy probable que no os pida configurar las mismas. En ese caso, basta con reconfigurar el paquete
dpkg-reconfigure locales
Lo ideal en este punto es elegir las locales correspondientes a tu idioma_pais. Recomiendo elegir como mínimo las locales UTF-8, que son las más extendidas en la actualidad.
Con esto ya tendríamos un sistema Debian GNU/Linux mínimo pero funcional. Se nos abren en este momento dos alternativas:
A) Configurar grub y arrancar nuestro sistema para seguir instalando paquetes desde allí (Recomendado)
B) Seguir instalando paquetes y dejar la configuración de grub para el final.
Yo voy a proceder siguiendo el camino A por varias razones, entre las que destaco que de este modo nos resultará más cómodo instalar lo que queda a nuestra distribución sin tener que estar lidiando con sistemas chroot. Nuevamente, siéntete libre de tomar el camino B, que es igualmente válido. Para ello, instala en este momento los paquetes que desees y a continuación, ya estarás en condiciones de pasar al punto 4.
NOTA: Si estas utilizando una tarjeta inalámbrica que requiera módulos especiales (madwifi, ipw****, etc) te recomiendo encarecidamente instalar dichos módulos (o compilarlos) junto con las herramientas necesarias (wireless-tools en particular) dentro de la jaula chroot antes de proseguir para que cuando reinicies la máquina con tu nuevo sistema tengas conexión a internet y por tanto puedas continuar con la instalación de paquetes.
4. Instalar y configurar grub.
Lo primero de todo es generar el menu.lst, ejecutando:
update-grub
NOTA: Edita manualmente el archivo /boot/grub/menu.lst si fuera necesario para arrancar tu sistema Debian (ejemplo, si necesitas desactivar desde grub el soporte para usb, pci, acpi, etc)
A continuación, desmontamos proc sys y /dev de la jaula.
umount proc
umount sys
Salimos de la jaula
exit
Y desmontamos /dev
umount /media/hda1/dev
A partir de ahora trabajaremos desde fuera de la jaula.
NOTA: Si fallara el desmontado de proc, sys o dev, intenta nuevamente desmontarlos, pero con la opción -l
La instalación y configuración de grub es casi el paso más importante del proceso instalación. Tiene sus riesgos si no posees suficiente experiencia con sistemas GNU/Linux, por lo que ten cuidado y en todo momento asegúrate de saber y entender todo aquello que vas a ejecutar.
En el paso 3 ya instalamos el paquete grub en nuestro Debian GNU/Linux, por lo que ahora lo único que tenemos que hacer es instalar grub en el mbr.
grub-install --root-directory=/media/hda1/ --recheck
(Esto nos generara un archivo devices.map, lo que nos ahorrara aprender como escribir el nombre de una partición en formato grub).
grub-install /dev/hda --root-directory=/media/hda1
Si todo ha ido bien, ya tendremos instalado Debian GNU/Linux (Lenny) en nuestro disco duro hda. Lo siguiente sería reiniciar nuestra maquina, arrancar con nuestro nuevo sistema y configurar todo a nuestro gusto, instalando un escritorio si así lo viésemos necesario. Por ejemplo:
aptitude install x-window-system-core gdm gnome (para instalar gnome)
aptitude install x-window-system-core kdm kde (para instalar kde)
aptitude install x-window-system-core gdm xfce (para instalar xfce).
Para iniciar las X en este momento, bastará con ejecutar:
/etc/init.d/kdm start (kde)
/etc/init.d/gdm start (gnome y xfce)
- 2575 lecturas
- Comentarios page (7 comments)