Instalando Debian dentro de Debian
Esta semana tenía que hacer una instalación de Debian para un servidor, pero vaya problema, tenía el disco donde instalar pero no la máquina dónde hacerlo. La idea era instalar en una máquina y luego pasar el disco con la instalación al nuevo servidor que alguien estaba gestionando su compra. El tema era ganar tiempo, así que recordé que Debian se puede instalar en un sistema ya funcionando. Sencillo, se conecta el disco a una máquina con un Debian o cualquier Linux andando, se particiona el disco, se montan las particiones y se instala desde el sistema que está corriendo. Para no dar más vueltas les explico paso a paso cómo.
Creación de las particiones
En primer lugar debemos conectar el disco donde vamos a hacer la instalación en nuestra máquina en donde tenemos fucionado nuestro Debian o cualquier otra distribución de Linux.
Una vez hecho esto tenemos que particionar el disco a nuestro gusto teniendo en cuenta las particiones que tendrá nuestra nueva instalación. Para ello usamos fdisk
, nos aseguramos de por lo menos crear una partición para el sistema y otra para la swap, aunque podemos crear las que nos parezcan necesarias.
No nos olvidamos de formatear las partciones y activar la swap.
# mk2fs -j /dev/sda1
# mkswap /dev/sda2
# swapon /dev/sda2
Ahora debemos crear un punto de montaje para nuestra partición raíz desde la cual trabajaremos.
# mkdir /mnt/instalacion
Y montamos allí nuestra partición raíz
# mount /dev/sda1 /mnt/instalacion
Si hubieramos creado varias partciones, por ejemplo para /home, /var, o /usr, entonces tendríamos que montarlas también. Una vez montada la partición raíz creamos en ella los directorios correspondientes y montamos en ellos las particiones que creamos previemante. Por ejemplo:
# cd /mnt/instalacion
# mkdir /home
# mount /dev/sda2 home/
Instalación de Debootstrap
El siguiente paso es obtener un sistema Debian muy básico. Debian provee un paquete que provee esta instalción básica, el paquete es debootstrap. Si nuestro sistema es un Debian no tenemos más que instalarlo con aptitude:
# aptitude install debootstrap
Ahora bien si nuestra instalación de Linux no es Debian lo mismo podemos conseguir instalar el paquete.
Creamos un directorio donde bajaremos el paquete y lo descompactaremos:
# mkdir /tmp/debootstrap
# cd /tmp/deboostrap
y obtenemos el paquete desde alguno de los repositorios de Debian:
# wget http://ftp.es.debian.org/debian/pool/main/d/debootstrap/debootstrap_0.3.3.2etch1_all.deb
En el ejemplo el sistema base que obtenemos es el correspondiente a un Debian version Etch.
Para descomprimir el paquete necesitaremos el programa ar. Si no lo tenemos lo, instalamos:
# apt-get install ar
y luego descomprimimos nuestro paquete recién bajado:
# ar -x debootstrap_0.3.3.2etch1_all.deb
luego hacemos
# cd /
# zcat /tmp/debootstrap/data.tar.gz | tar xv
Con lo cual habremos instalado el contenido del paquete .deb en nuestro sistema. Ahora podemos usar el programa debootstrap aunque no estemos en un sistema Debian.
No nos queda nada más que ejecutarlo:
# /usr/bin/debootstrap --arch i386 etch /mnt/instalacion http://ftp.es.debian.org/debian
Como vemos tenemos que indicarle a debootstrap, la arquitectura (i386, en nuestro caso), la versión de Debian, el directorio donde está montada la partición raíz y un repositorio de dónde traer los paquetes. Y listo, ya tenemos nuestro sistema Debian base.
Creación de los archivos de configuración del sistema
Ahora tenemos que retocar el sistema, para eso vamos a hacer un chroot y “entrar” a nuestra nueva instalación:
# LANG=C chroot /mnt/instalacion /bin/bash
Si no se quieren perder, si tienen más de una terminal abierta y no confundir su sistema con el que está en el chroot, pueden modificar el prompt para saber dónde están:
# export PS1="[chroot]$PS1"
De esta forma el prompt reflejará que están trabajando bajo la raíz del nuevo sistema, dentro del chroot.
Lo primero que hacemos es crear el fichero /etc/fstab y montar las particiones que no hayamos montado si así lo decidimos en el particionado.
Un fstab base puede ser el siguiente. Desde luego debemos modificarlo según nuestras necesidades.
# /etc/fstab: static file system information.# # file system mount point type options dump pass /dev/XXX / ext3 defaults 0 1 /dev/XXX /boot ext3 ro,nosuid,nodev 0 2/dev/XXX none swap sw 0 0 proc /proc proc defaults 0 0 /dev/fd0 /media/floppy auto noauto,rw,sync,user,exec 0 0 /dev/cdrom /media/cdrom iso9660 noauto,ro,user,exec 0 0 /dev/XXX /tmp ext3 rw,nosuid,nodev 0 2 /dev/XXX /var ext3 rw,nosuid,nodev 0 2 /dev/XXX /usr ext3 rw,nodev 0 2 /dev/XXX /home ext3 rw,nosuid,nodev 0 2
Si ejecutamos mount -a, se montará cualquier partición que no estuviera montada.
Es necesario que el directorio /proc esté montado para seguir adelante. Si no se montó bien con mount -a, lo podemos hacer a mano (lo mismo para cualquier particion):
# mount -t proc /proc
Además creamos enlaces simbólicos a los dispositivos removibles, como por ejemplo el cdrom:
# cd /media# mkdir cdrom0 # ln -s cdrom0 cdrom # cd / # ln -s media/cdrom
Luego configuramos la zona horaria.
Editamos /etc/default/rcS según nuestras preferencias y luego corremos tzconfig
# tzconfig
y elegimos nuestra zona horaria.
Lo siguiente es configurar la red. Para ello necesitmos crear el archivo /etc/network/interfaces. Un archivo de ejemplo puede ser el siguiente:
# Configuramos la intefaz del loopback
auto loiface lo inet loopback# Si usamos dhcp # auto eth0 # iface eth0 inet dhcp # Si usamos una ip estática, este es un ejemplo:
# auto eth0# iface eth0 inet static # address 192.168.1.2
# network 192.168.1.0# netmask 255.255.255.0 # broadcast 192.168.1.255 # gateway 192.168.1.1
Si usamos dhcp, descomentamos la primera opción o si no la segunda parte y ponemos nuestra configuración de red.
En /etc/resolv.conf agregamos la dirección ip de nuestro servidor de nombres y el dominio por defecto.
search mi.dominio.com nameserver 192.168.1.1
Además le ponemos nombre a nuestro nuevo sistema de la siguiente forma:
# echo "elservidor" > /etc/hostname
Creamos además el archivo /etc/hosts, y agregamos el nombre de nuestro servidor:
127.0.0.1 localhost elservidor # Si usamos ipv6 agregamos estas entradas::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Como vamos a seguir instalando software en nuestro sistema, debemos agregar los repositorios que nos convengan. Por lo menos el repositorio principal y las actualizaciones de seguridad en /etc/apt/sources.list
deb http://ftp.es.debian.org/debian etch main deb http://security.debian.org/ etch/updates main
Para actualizar:
# apt-get update
El siguiente paso es instalar los locales, lo que nos permitirá tener un sistema en nuestro idioma
# aptitude install locales
# dpkg-reconfigure locales
Y en la pantalla que aparece, elegimos los locales que correspondan a nuestro idioma, en español hay que elegir es_ES, para que los caractéres salgan bien en pantalla.
Y para que nuestro teclado también esté en español instalamos el paquete console-data:
# aptitude install console-data
# dpkg-reconfigure console-data
Instalación del kernel
Todo muy bien hasta aquí, pero un pequeño detalle es que todavía nuestro sistema no tiene un kerenel instalado, algo un tanto importante, por lo tanto vamos a instalarlo.
Antes que nada instalamos el programa del gestor de arranque, ya que cuando se instala el kernel se corre este programa. Vamos a usar grub:
# aptitude install grub
Y creamos el archivo /etc/kernel-img.conf, que indica una serie de pasos que se deben seguir cuando se instala el paquete del kernel, como crear links al archivo del núcleo, actualizar grub, e instalar el initrd. El contenido es el siguiente:
# Kernel image management overrides# See kernel-img.conf(5) for details do_symlinks = yes relative_links = yes do_bootloader = yes do_bootfloppy = no do_initrd = yes link_in_boot = no
Como hay más de un kernel para elegir e instalar, podemos ver las opciones:
# apt-cache search linux-image
Elegimos el que más se adapte a nuestro sistema e instalamos:
# aptitude install linux-image-2.6.18-4-i386
Aunque la instalación del kernel crea los archivos de configuración de grub, el programa en sí no está instalado en el MBR, por lo tanto debemos instalarlo
# grub-install --root-directory /dev/sda1 --recheck /dev/sda
# update-grub
Debemos pasarle la opción –root-directory para que grub sepa en qué partición se encuentra el directorio /boot/grub y su archivo de configuración menu.lst
–recheck es para que chequee de nuevo los dispositivos, por si hemos particionado y grub no está al tanto de las nuevas particiones.
Y por útlimo le decimos que instale el cargador de arranque en el disco de la nueva instalación. Debemos tener cuidado y no instalarlo en el MBR de nuestro sistema que ya está andando.
Por último para que cuando instalemos nuevos kernels grub se actualice sin problemas volvemos a cambiar algunos parámetros en /etc/kernel-img.conf
Ponemos
do_bootloader = No
y agregamos:
postinst_hook = update-grubpostrm_hook = update-grub
Últimos retoques
Como último paso podemos retocar nuestra instalación para que no sea tan básica, de manera que se instalen los programas que más comunmente usamos:
# tasksel install standard
#aptitude clean
Y eso es todo. Si todo fue bien, entonces deberíamos tener un sistema Debian instalado y listo para correr. No queda más que reiniciar la máquina, configuar el equipo para que bootee desde el disco o la partición en que instalamos y ya podemos entrar a nuestro sistema. Usuario root y contraseña <enter> y ya podemos empezar a usarlo.
Links sobre este tema:
Instalar Debian GNU/Linux desde un sistema Unix/Linux – Howto oficial de Debian
Explore posts in the same categories: Debian, Linux This entry was posted on Enero 16, 2008 at 11:49 am and is filed under Debian, Linux. You can subscribe via RSS 2.0 feed to this post’s comments.Tags: chroot, Debian, instalacion, Linux
You can comment below, or link to this permanent URL from your own site.
4 Comments on “Instalando Debian dentro de Debian”
w00w, no sabía que se podía llegar a instalar un sistema totalmente de 0 desde otro equipo de esta forma . Mola! Muy bueno el post, gracias!
Deja un comentario