Vamos por partes, primero tuve que pasar toda la información de un disco al otro, con lo que simplemente enchufo el nuevo disco como maestro (hda) el viejo como esclavo (hdb), dejo el CD-ROM como... un momento, un momento, que la fuente de alimentación silenciosa sólo tiene para enchufar dos dispositivos de esos (de hecho sólo tiene uno, pero le puse un "ladrón").
Primero tuve que ponerle otra fuente de alimentación para poder suministrar electricidad a todos los componentes (placa madre, los dos discos duros y el CD-ROM). Tras eso, con el disco nuevo de 80GB en el hda, el disco viejo ruidoso de 30GB en el hdb y el CD-ROM en el hdc, procedí a arrancar desde el CD de instalación de la Fedora Core 4 en modo rescue.
En el disco viejo tenía en la partición 1 el /boot, en la 2 el /, en la 3 el swap, en la 5 el /tmp, en la 6 el /var y en la 7 el /home. Así que creo el mismo numero de particiones en el nuevo disco, hago un precioso for PART in 1 2 5 6 7;do mke2fs -j /dev/hda$PART;done;mkswap /dev/hda3, y monto hda2 en /mnt/hda, creo los directorios /mnt/hda/boot, /mnt/hda/var, /mnt/hda/tmp y /mnt/hda/home, y monto todas las demas particiones, de tal forma que las de /mnt/hda cuelgan las particiones del disco hda, y de /mnt/hdb cuelgan las del disco hdb, es decir, el sistema original a replicar.
Finalmente me decanto por hacer un cd /mnt/hdb;tar cf - ./ | tar xf - -C /mnt/hda. Con esto evidentemente no copio el sector de arranque, cosa que podía haber hecho con un dd if=/dev/hdb of=/dev/hda count=1, pero como el kernel ahora estaría seguramente en otro sector del disco, pues consideré que no importaba, y que ya se instalaría el grub cuando actualizase de la Fedora Core 3 a la Fedora Core 4.
Mi primera sorpresa ha sido ver que el CD de actualización de la FC4 no quería instalarse porque no encontraba el root directory en el fstab. Total, que tengo que volver a entrar en modo rescate, hacer una copia de seguridad del fstab original y modificarlo cambiando los LABEL=loquesea por los dispositivos reales, es decir:
LABEL=/1 / ext3 defaults 1 1
pasó a/dev/hda2 / ext3 defaults 1 1
Ya no se quejaba la anaconda de Redhat y procedió a la actualización... excepto del kernel. Según me dijo, no actualizaba el kernel porque no había un paquete de kernel instalado, con lo que no necesitaba cambiar la configuración del grub, con lo que no me lo instalaba :P
Por supuesto que tiene paquete de kernel, de hecho tiene cinco paquetes de kernel instalados (gentileza del yum y su sistema de actualizaciones automáticas).
Bueno... ningún problema, vuelvo al modo rescate del Fedora, hago un chroot, ejecuto el grub-install /dev/hda, reinicio la actualización, me detecta que el grub esta instalado y lo actualiza, extraigo el CD, reinicio...
mkrootdev: label /1 not found
mount: error 2 mounting ext3
mount: error 2 mounting none
switchroot: mount failed: 22
umount /initrd/dev failed: 2
Kernel panic - not syncing: Attempted to kill init!
¿Como? ¿un kernel panic??????? ¿dónde la he cagado?... calma, calma, he cambiado respecto al original el fstab, deshagamos el cambio: cp fstab fstab.modificado;cp fstab.original fstab. No, no funciona. Pero espera, que he instalado el nuevo grub con el fstab modificado, no con el original. No, tampoco funciona. El kernel panic empieza a parecerse a un administrator panic.
Nunca me he enterado cómo funciona el grub, ya que siempre he usado LILO, con quién me siento muy comodo, pero no, aquí tengo el grub... ¿y si le instalo el LILO? ¿Y si instalo el kernel de la Fedora Core 4, que sigue sin habermelo instalado, y miro a ver si el el script de post-install arregla el desaguisado, sea cual sea?
Lo bueno es tener opciones, y la primera es instalar el kernel, ya que es lo que a priori menos cosas romperá. Además en un momento u otro deberé instalarlo. Vamos a ello: otra vez arrancamos desde CD en modo rescue :P
Ya veo porqué no me instala el kernel de la FC4, resulta ser un 2.6.11 cuando la FC3 ya se había actualizado hasta el 2.6.12. Además no me deja instalar el nuevo kernel porque claro, en el script de preinstalado intenta ejecutar un modprobe loop y claro, el kernel que esta usando es el del CD, pero como he hecho un chroot encuentra sólo módulos de los kernel de la Core3... ¿Para qué liarse más? total, que la instalación del kernel no arregla nada.
Decido ir a lo bestia y modificar el Fedora para que no utilice en absoluto el sistema de etiquetas de los sistemas de ficheros. Pongo el fstab modificado, hago una copia de seguridad del grub.conf y lo modifico para que en lugar de tener root=LABEL=/1, tenga root=/dev/hda2. Ejecuto el grub-install y reinicio... se acabó el kernel panic, pero el administrator panic continúa. El sistema no arranca porque no puede cargar librerías dinámicas porque Permission denied. Empiezo a desesperar, a estar cansado y sin ideas.
Empecemos por lo trivial, miremos si cualquiera de las librerías tiene los permisos correctos, supondré que lo correcto es lo mismo que tiene mi Mandriva 2006. Efectivamente, tiene los mismos permisos.
Me doy cuenta de una cosa, y es que el grub le pasa al kernel las opciones ro root=/dev/hda2 rhgb quiet. La opción ro es para que monte el sistema en sólo lectura, y en la Mandriva no la tengo ¿será?, lo que si que no tengo ni idea es para qué sirve el parámetro rhgb. Borro el ro a ver si hay suerte, pero no, no la hay.
Llegado a este punto, me vence el agotamiento, es hora de hacer la cena, así que apago el servidor, termino de escribir esta frase, ya que lo estoy escribiendo en tiempo real, y le doy al preview.
Mañana más.