Usando grub…
Tras una actualización rutinaria de Suse Enterprise 9, como en otras muchas veces, instala nuevo kernel y no me preocupo de revisar el fichero de configuración de grub ni los kernels ni initrd’s que ha generado por exceso de confianza ya que siempre ha funcionado todo bien.
Reinicio el servidor y para mi sorpresa, me encuentro con que no carga el modulo del ext3 con lo cual genera un kernel panic.
A continuación voy a explicar la manera para resolver este problema usando el grub, en el menu que nos muestra, pulsando “c” para ir a la linea de comandos.
Lo primero es saber en que disco y partición tenemos los ficheros de arranque, eso lo haremos de la siguiente manera:
grub> find /boot/grub/stage1
Este comando nos devuelve “(hd0,2)” que el disco y particion perteneciente a /boot
Ahora decimos a grub que queremos usar esa particion.
grub>root (hd0,2)
Tenemos que indicarle que kernel y que initrd vamos a usar para arrancar en posicion absoluta respecto el /boot .
El problema era que no sabia que nombre tenia el nuevo kernel ni el antiguo, aunque suele denotarse el anterior suele ser vmlinuz.previous así que por suerte grub en todos sus comandos tiene autocompletar con lo cual poniendo el comando kernel /vmlinuz y pulsando tabulador muestra las opciones disponibles.
grub> kernel /vmlinuz”tabulador”
Possible files are: vmlinuz vmlinuz-2.6.5-7.244-bigsmp
Evidentemente vmlinuz apunta a vmlinuz-2.6.5-7.244-bigsmp y para mi sorpresa no habia ni rastro del kernel antiguo. No me quedo más remedio que usar ese kernel ya que no habia otro.
grub> kernel /vmlinuz-2.6.5-7.244-bigsmp
Y actuando exactamente igual, pero esta vez para el initrd:
grub> initrd /initrd”tabulador”
Possible files are: initrd.previous initrd-2.6.5-7.244-bigsmp initrd initrd-2.6.5-7.244-vfe
Viendo las opciones disponibles, escogemos la version previous
grub> initrd /initrd.previous
Ahora tan solo hace falta iniciar con ese kernel y ese initrd
grub> boot
Una vez que ha arrancado correctamente, cambiaremos esa misma configuración en el fichero /boot/grub/menu.lst