9.17.2010

Iniciando Linux en grub2 desde Modo Rescate

Si por alguna razón no podemos iniciar nuestro sistema, siempre podemos iniciar directamente el kernel mediante unos pocos pasos. Esto se hace en la línea de comandos del grub o lo que se conoce como Modo Rescate.



Si podemos ver el menu de entradas del grub pero no funcionan, presionamos CTRL+C para ir a este modo, si el gestor está dañado seguramente nos llevará directamente allá. Podemos diferenciar de una línea de comandos normal cuando tenemos grub> o grub rescue> en el prompt.

grub rescue>

Una vez en este punto ejecutamos podemos ejecutar los comandos. Recuerden ajustar los valores o nombres acorde a nuestro sistema.

ls
lista los discos y particiones que se detectan como (hd0,1) (hd0,2) ... (hdx,y)

Si tenemos varios sistemas instalados y no recordamos cual es cual, ejecutamos ls con el disco que queramos, una vez que lo encontramos podemos verificar si es el correcto listando el contenido del directorio /boot de esta manera:

ls (hdx,y)/boot

OJO: cabe anotar que si no tenemos una partición /boot dedicada como la creada en este(partición boot dedicada) post, la ruta /grub debe reemplazarse por /boot/grub ya que debemos apuntar al directorio boot dentro de la raíz del mismo sistema instalado. En este ejemplo uso la ruta /grub ya que si cuento con partición boot dedicada. Otro punto importante es que como en este caso de tener partición boot, el sistema por ende se encuentra en otra partición, por eso al cargar la imagen vmlinuz debemos indicar el dispositivo de esta partición que no es la misma indicada en los comandos anteriores que apuntan a la partición boot. Espero hacerme entender :S Es decir, en la orden linux /vmlinuz-x.x.x.x root=/dev/sdxy... dev/sdxy apunta a la partición del sistema instalado y no de la partición boot.
 
Una vez que sabemos cual es el disco/partición que queremos iniciar continuamos con los siguientes pasos:
set prefix=hd(x,y)/grub
set root=hd(x,y)
set
insmod /grub/linux.mod
linux /vmlinuz-x.x.x.x root=/dev/sdxy ro
initrd /initrd-x.x.x.x.img
boot
Si todo sale bien nustro sistema debe estar iniciando. Una vez dentro de el en un terminal ejecutamos lo siguiente como superusuario:
update-grub
Terminada la orden, abrimos el archivo grub.cfg para corregir los datos que evitaban que iniciemos. Cuando terminamos, ejecutamos lo siguiente para reinstalar el grub en el MBR:
grub-install /dev/sdX
Reiniciamos para comprobar que todo está bien :)

Espero les sea de utilidad!
Saludos.