Recuperando el inicio con Grub.
Supongamos que un día iniciamos la PC y al seleccionar Ubuntu, en lugar de eso nos aparece el prompt de grub:
grub:
Plan A:
Forma abreviada, que si funciona simplifica todo.
Lo primero es encontrar cual es la partición con Linux (Debian o Ubuntu):
grub> find /boot/grub/stage1 <ENTER>
Y grub responde:
(hd0,0)
O sea, que mi partición de Ubuntu es (hd0,0)
Y escribo:
grub> root (hd0,0) <ENTER>
Una vez que le dije a grub cual es mi partición con Ubuntu reinstalo grub en el MBR[1]:
[1] Master Boot Record: Registro Principal de Arranque.
grub> setup (hd0) <ENTER>
Y esto casi siempre es (hd0), porque generalmente se instala en el primer disco. Si alguien tiene otra configuración diferente, sabrá que hacer.
Aparecen una serie de mensajes, ver imagen, y reiniciamos el sistema:
grub> reboot <ENTER>
Si todo salio bien, al elegir Linux (Ubuntu/Debian) se iniciara el sistema operativo, sino pasamos al plan B.
Plan B
Bueno, lo primero que tenemos que hacer es setear la partición donde esta Linux, el directorio raíz.
La foma basica del comando es:
grub> root (hd0,0) <ENTER>
Si en el Plan A pudieron setear correctamente el directorio raíz, entonces puden avanzar al siguiente paso.
En el Plan A usamos la instrucción find para encontrar la partición de Linux, podemos volver a intentarlo, pero con otro archivo
grub> find /etc/fstab <ENTER>
Y grub responde:
(hd0,0)
O sea, que mi partición de Ubuntu es (hd0,0)
Y escribo:
grub> root (hd0,0) <ENTER>
Esto le dice a grub que nos vamos a parar en el primer disco rígido ("hd0") en su primera partición ("0").
Si esto falla estamos a tientas, y vamos a tener que empezar a pensar.
En general si Linux comparte sistema operativo se instala en la primera partición lógica de una partición extendida, esto es:
grub> root (hd0,4) <ENTER>
La primera partición lógica de una partición extendida de un disco rígido es normal es la quinta (5), pero ponemos 4 porque grub cuenta desde 0.
Ahora bien, el disco rígido es el primero ("hd0") y unico si solo tiene un disco rígido. Pero bien podría estar en el segundo disco rígido. Entonces el comando sería:
Primera partición lógica de una partición extendida (mi Debian):
grub> root (hd1,4) <ENTER>
ó bien, si Linux esta solo en la primera partición maestra:
grub> root (hd1,0) <ENTER>
Si se equivoca, no se preocupe, grub da un mensaje de error, y ahí uno se da cuenta que tiene que cambiar el disco rígido o la partición.
Una vez que grub acepto el comando y no da error, quiere decir que se apunto la partición raíz a un lugar valido, lo que no quiere decir correcto.
Para saber si se esta en el lugar correcto basta seguir adelante:
grub> kernel /boot/vm<TAB>
Ahí aparece la lista de kernels instalados, si no aparece nada, es porque se elegió mal la partición, pierdes el turno, vuelves a la sección anterior
;-)
Normalmente el kernel en uso es el que tiene la numeración mayor. La numeración se lee de izquierda a derecha.
Por ejemplo, en mi Debian tengo dos kernels:
/boot/vmlinuz-2.6.26-1-686 Más antiguo.
/boot/vmlinuz-2.6.26-2-686 Más moderno. Inicio con este.
La primera parte de la linea del kernel quedaría:
grub> kernel /boot/vmlinuz-2.6.26-2-686 ro
El "ro" que se agrega es de Readly Only, solo lectura.
Pero ahí no termina esta linea, hay que decirle a grub cual es el dispositivo linux que es root.
Si el disco es IDE se usa la raíz "hd" si es SATA o SCSI se usa "sd". Luego sigue una letra que es el número del disco, si el disco en grub es "0" en dev va a ser "a", si en grub es "1" en dev es "b" y así sucesivamente.
(hd0,0) es
/dev/hda1 ó
/dev/sda1
(hd0,4) es
/dev/hda5 ó
/dev/sda5
(hd1,0) es
/dev/hdb1 ó
/dev/sda1 ó
/dev/sdb1
(hd1,4) es
/dev/hdb5 ó
/dev/sda5 ó
/dev/sdb5
¿Porqué si es el segundo disco puede tener tantas combinaciones diferentes? El tema es que los dispositivos se nombran por el controlador. Entonces si se tiene un disco IDE y uno SATA los dos van a ser el primer dispositivo para ese controlador.
¿Porqué el segundo disco no puede ser el primer IDE? Si puede ser, pero generalmente no lo es?
En el caso de mi Debian, la linea quedaría así.
grub> kernel /boot/vmlinuz-2.6.26-2-686 ro root=/dev/sda5 <ENTER>
Porque el directorio raíz esta en la primera partición lógica del primer disco SATA. Y en este caso este disco no tiene particiones maestras. Si lo configure yo a mano, por eso esta raro.
Si se equivoca en el dev grub no avisa, cuando intente iniciar, sencillamente se va a detener todo y no va a continuar el inicio cuando linux intente encontrar la partición raíz.
Entonces no puede apagar la maquina así como así, tiene que usar las teclas mágicas:
1. Alt+PetSis+R esperas 5 segundos [1]
2. Alt+PetSis+E esperas 5 segundos
3. Alt+PetSis+I esperas 5 segundos
4. Alt+PetSis+S esperas 5 segundos
5. Alt+PetSis+U esperas 5 segundos
6. Alt+PetSis+B esperas 5 segundos
[1] Decir mentalmente: 1021, 1022, 1023, 1024, 1025.
Estas teclas son muy útiles en caso que un fallo de hardware ponga el sistema inestable.
De lo anterior no se entera hasta que se sigue adelante.
Tiene que decirle a grub el disco virtual de arranque para el kernel.
Bueno, lo configuramos de la siguiente forma:
grub> initrd /boot/initrd<TAB>
En mi Debian tengo los siguientes discos virtuales de arranque:
/boot/initrd.img-2.6.26-1-686
/boot/initrd.img-2.6.26-2-686
/boot/initrd.img-2.6.26-1-686.bak
/boot/initrd.img-2.6.26-2-686.bak
Como se dará cuenta, se llaman casi igual que el kernel, y los que terminan en bak son backups, así que mi linea quedaría:
grub> initrd /boot/initrd.img-2.6.26-2-686 <ENTER>
Y por último nos falta decirle a grub, que le diga a linux que intente salir por las suyas [2]:
grub> boot <ENTER>
[2] Ese es el significado de boot, viene de boot strap (tiras/correas de las botas). Lo que a su vez viene de un dicho del lejano oeste de los EE.UU. donde si alguien se quedaba solo empantanado en el barro tenía que salir por las suyas tirando él mismo de las tiras de sus botas (boot straps).
Esto también puede fallar, y nos lleva al Plan C.
Plan C:
Super Grub Disk:
http://www.supergrubdisk.org/
Recuperar GRUB:
http://www.guia-ubuntu.org/index.php?title=Recuper ar_GRUB
Espero que esta entrada le sirva a alguien.
Comentarios y experiencias de vida con GRUB son bienvenidos.
Puntualizando...
(Puntos:2, Informativo)El punto es que en muchas distros suele instalarse por default
Entonces cuando se quiere recuperar el grub todo se resume a dos puntos:
1.- Decirle a grub dónde tiene las imágenes del kernel (necesarias para cargar el sistema antes de que se monte
2.- Crear una nueva instalación del grub en el MBR con dicha información.
Teniendo eso en mente podemos hacer frente a los posibles problemas que se puedan presentar.
Por comentar
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Lunes, 24 Febrero de 2014, 10:03h )
Lo digo porque mirando sus entradas antiguas hay muchisimas con muy buena informacion sobre grub, super grub disk y demas.
Dale fuego a un hombre y estara caliente un dia, prendele fuego y estara caliente el resto de su vida.