Editando grub para dual boot (Win + Linux)

Under:

Hola, tengo un pequeño how-to para agregar a esa muy útil lista. Espero que sea de utilidad para todos:

A veces puede pasar que, por alguna razón el grub no muestra la lista de kernels, sino que en cambio está en modo texto diciendo:

Minimal BASH-like line editing is supported.... etc, y con un prompt
grub>

Esto suele pasar si se actualiza el grub sin hacer luego grub-install, o si el menu.lst (grub.conf) falta o está corrupto.
En este caso para bootear hay que meter comandos. Por suerte el grub completa los parámentros con tab, lo que hace esta tarea mucho más sencilla.

Se empieza con root. Este comando especifica la unidad y partición en donde se encuentra el kernel. Si usas una partición de boot, especifica ésa. Caso contrario, especifica la partición del sistema /.

grub>root hd(

Ahí te aparecerá una tabla con los discos que tienes. Elige el que corresponda. Suponiendo que es 0:

grub>root hd(0,

Ahi te aparecerá una tabla de particiones, con el formato y tamaño correspondiente a cada una. Recuerda elegir la partición de boot si tienes. Suponiendo que es 0:

grub>root hd(0,0)

Bien, ya completamos el primer paso. Ahora hay que especificar el kernel que vamos a usar. El tab-completion de grub nos ayudará mucho en este caso.

Si tenemos partición de boot:
grub> kernel /vmlinuz

Si no tenemos partición de boot:
grub> kernel /boot/vmlinuz

Aparecerá una lista de los kenrels disponibles. Elige la última version (número mayor). En máquinas con particion de boot i686 el 26 de febrero de 2009 (pronto habrá otra version del kernel, y esto estará obsoleto, por eso lo de la fecha) usaríamos:

grub> kernel /vmlinuz-2.6.27.12-170.2.5.fc10.i686

Ademas hay que agregarle la partición de root al kernel, en formato /dev/particion. Aquí no tenemos tab-completion, así que a hacer memoria. Suele ser /dev/sda1 o /dev/sda2. Suponiendo que es /dev/sda2, en una máquina i686 con partición de boot el 26 de febrero de 2009:

grub> kernel /vmlinuz-2.6.27.12-170.2.5.fc10.i686 ROOT=/dev/sda2

Bien! Ya cesi estamos. Ahora sólo falta la imagen initrd. Ésta hace de intermediario entre el grub y el kernel.

grub> initrd /initrd

Ahora sólo falta elegir la version correspondiente al kernel. El 26 de febrero de 2009, en una máquina con partición de boot usaríamos:

grub> /initrd-2.6.27.12-170.2.5.fc10.i686.img

Ahora el comando final, muy simple, que se encarga de iniciar el proceso:

grub> boot

Y ya está. Una vez iniciada la pc, recuerden revisar el menu.lst (grub.conf) y arreglarlo si es necesario, y, como root, ejecutar:

grub-install /dev/sda #reemplazar por el disco duro en el que está instalado, NO LA PARTICIÓN.