El otro día reinstalé Ubuntu y no recordaba el problemilla que meses antes había tenido con el grub como protagonista.
Mi estructura de discos consta de un disco IDE de toda la vida de 80gb y un nuevo disco SATA2 de 500gb adquirido hace poco.
Este es el trozo de /boot/grub/menu.lst que nos interesa, extraído del menu.lst que genera Ubuntu al instalarse:
# Ubuntu 7.10
title Ubuntu 7.10, kernel 2.6.22-14-generic
root (hd1,4)
kernel /boot/vmlinuz-2.6.22-14-generic root=UUID=3a2544b2-35ce-431e-af38-28ad8262225d ro quiet splash locale=es_ES
initrd /boot/initrd.img-2.6.22-14-generic
quiet
# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
title Microsoft Windows XP Professional
root (hd1,0)
savedefault
makeactive
map (hd0) (hd1)
map (hd1) (hd0)
chainloader +1
La sorpresa viene cuando al mostrarse el menú de Grub, daba igual que escogiera la opción vigésimoquinta, que no arrancaba ningún SO.
Reviso el fichero /boot/grub/device.map y veo que todo está en orden:
(hd0) /dev/hdb
(hd1) /dev/sda
Lo tenía todo instalado en hd1, el disco SATA. Tras visitar muchas páginas con los mismos problemas, comentan que el grub mete la pata con combinación de discos IDE + SATA y equivoca los identificadores de las particiones.
Reinicio de nuevo y ahora cuando se carga el grub pulso la tecla 'e' para editar la entrada de Ubuntu. Una vez en modo edición, pulsé la tecla 'c' para introducir líneas de comandos y escribí find /boot/grub/stage1, que me devolvió:
hd0,4
hd2,4
Entonces ¿el device.map mentía? Vista la confusión y visto que reconocía el disco SATA como hd2 y sin saber muy bien todavía el por qué de ese misterioso salto, entré en la partición instalada para editar el /boot/grub/menu.lst según expliqué en esta entrada.
El trozo interesante es el que expongo a continuación:
title Ubuntu 7.10, kernel 2.6.22-14-generic
root (hd2,4)
kernel /boot/vmlinuz-2.6.22-14-generic root=UUID=3a2544b2-35ce-431e-af38-28ad8262225d ro quiet splash locale=es_ES
initrd /boot/initrd.img-2.6.22-14-generic
quiet
# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
title Microsoft Windows XP Professional
root (hd2,0)
savedefault
makeactive
chainloader +1
Aquí puede verse que el disco SATA es hd2 y que tuve que eliminar el mapeo correspondiente a la partición de XP para que todo funcionara como es debido (tras reiniciar, claro).