Instalando Debian dentro de Debian

Debian en 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

Etiquetas: , , ,

You can comment below, or link to this permanent URL from your own site.

5 comentarios en “Instalando Debian dentro de Debian”

  1. Blaxter Says:

    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!

  2. DaniFP Says:

    ¡Genial! Muchas gracias por el post.

  3. Pedro O. Says:

    Podrias explicar cuales son los llamados “paquetes standard” que aaprecen en:
    tasksel install standard?

    Gracias

  4. tioeze Says:

    Excelente nota y muy bien explicada para poner en práctica cuando sea necesario.

    Saludos!


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: