Actualizando Debian

Hoy me tomé un descanso y realicé trabajos de sysadmin.

Instalé el kernel 2.4.25 en una máquina RS/6000 con procesador Power3. El paquete necesita ser probado para certificarlo para Debian Sarge, y se da la combinación entre necesidad de probar un paquete (por parte del empaquetador y la distribución) y la necesidad de contar con buen soporte de Linux en nuestras máquinas. En el instante aproveché migrar el disco donde se almacena nuestro mirror de Debian a xfs. Como dato curioso: ext3, sólo al momento de formatear la partición se reservó casi 5GiB de espacio, en circunstancias que xfs sólo se guardó 300KiB. No he revisado parámetros, ni optimizaciones, pero la experiencia me ha enseñado a confiar más en xfs que en ext3.

Por otra parte, comencé a migrar una máquina desde Mandrake 9 a Debian Sarge. La máquina fue parte de un proyecto y en este mes a pasado a ser controlada por la universidad. Lo primero que hice fue instalar Debian Woody en un directorio y trabajar vía chroot. Luego actualicé a Debian Sarge, instalé el paquete de Java 1.4 de blackdown disponible sólo en sid. Finalmente copié los servicios que utilizan Java desde el directorio en Mandrake a la jaula chroot, baje el servicio en Mandrake y lo subí desde el chroot de Debian.

Lo siguiente es migrar la base de datos y dejarla corriendo desde Debian, hasta que finalmente le instale un nuevo kernel y arranque en forma nativa con Debian Sarge.

Con Debian es muy sencillo de hacerlo, y nadie se entera que el servicio ya no corre sobre Mandrake :-) El proceso, un poco más detallado, se explica a continuación.

Instalando Debian en otra distribución

La instalación de la configuración básica de Debian se realiza a travós del programa debootstrap, con el cual podemos instalar cualquiera de las versiones de Debian. Lo primero es conseguirlo e instalarlo:

# rpm -i debootstrap-0.1.17.7woody1-2.i386.rpm

Una vez instalado, es necesario determinar en donde quedará instalado. En este caso, en /home/sarge. Es recomendable que sea una partición independiente, de tal forma, que al arrancar el sistema en el futuro se le pueda arrancar con el parámetro root=/dev/sda2, donde /dev/sda2 es la partición donde se encuentra /home/sarge.

Una vez que esté instalado e iniciándose con Debian se puede comenzar a mover directorios a distintas particiones, a medida que se vaya liberando el espacio ocupado por la antigua distro, pero es una de las últimas tareas.

# debootstrap sarge /home/sarge http://debian.ubiobio.cl/debian/

Con ello se indica que sarge se instalará en /home/sarge y que los paquetes necesarios los obtenga de la URL indicada. Una vez terminado el proceso, ya habrá un Debian mínimo instalado, y para trabajar allí, basta definirlo como nuevo directorio raíz:

# chroot /home/sarge

Una vez adentro, es necesario instalar y configurar el sistema. Para ello, lo primero es crear el archivo /etc/apt/sources.list con el siguiente contenido:

deb http://debian.ubiobio.cl/debian sarge main non-free contrib
deb http://debian.ubiobio.cl/debian-non-US sarge/non-US main contrib non-free
deb http://debian.ubiobio.cl/debian-security sarge/updates main contrib non-free

Con apt-get ahora es posible instalar las aplicaciones que se necesitan. Se pueden instalar los mismos servicios que se encuentran corriendo en la otra distro, y una vez configurados, se procede a bajar el servicio desde la distro, y luego subir el servicio desde Debian. Y ya está funcionando!. Así se migra uno a uno los servicios y se prueba su correcto funcionamiento.

No hay que olvidar que es necesario instalar el paquete locales, conigurar las interfaces de red (/etc/network/interfaces), etc.

Una vez instalado y configurado todo, se puede intentar reiniciar con el kernel de la distro, pero dándole como parámetro de arranque la partición donde se ubica instalado Debian. En el arranque de lilo podría ser algo como:

boot: Linux root=/dev/sda2

Lo mismo podría hacerse desde un CD de arranque, por ejemplo, con Knoppix.

Si todo va bien, se podrí comenzar a eliminar las particiones no-Debian, hasta finalmente proceder a instalar el kernel con que arrancar.

Si se desea mantener el sistema distribuido a través de distintas particiones, entonces se debe arrancar en modo de mantención, montar la partición de destino, copiar los datos, desmontar y volver a montar en la nueva ubicación.

Suponiendo que se desea mover /usr a /dev/sda6, se podría realizar de la siguiente forma:

# mkfs /dev/sda6
# mkdir /target
# mount /dev/sda6 /target
# cp -ax /usr/* /target
# umount /target
# umount /usr
# mount /dev/sda6 /usr

Al verificar que está todo correcto, entonces se podrá liberar el espacio que ocupa el antiguo /usr:

# umount /usr
# rm -rf /usr/*
# mount /usr

Y finalmente, añadir la línea correspondiente en /etc/fstab.

El procedimiento escrito, resulta más largo que la ejecución misma, pero se aprecia que es una forma bastante cómoda de migrar a Debian sin necesidad de requerir una máquina adicional ni de perder mucho tiempo bajando la máquina.