GRUB

¿QUE ES GRUB?

GRUB (GRand Unifier Bootloader) es un pequeño programa con un gestor de arranque, es lo primero que se carga cuando se inicia la computadora. Permite tener diferentes sistemas operativos, y diferentes versiones de ellos, en el mismo disco duro. Por ejemplo podemos tener Windows y Linux en la misma computadora, GRUB se cargará antes que cualquiera de éstos permitiéndonos elegir cuál iniciar.

El gestor de arranque GRUB viene pre instalado en la mayoría de las distribuciones de Linux modernas, entre ellas Debian, Ubuntu y sus derivadas. Anteriormente, el gestor de arranque más usado era LILO.

¿DÓNDE SE INSTALA GRUB?

Lo normal es que se instale en el primer sector del disco duro, el llamado MBR (Master Boot Record). Cuando el ordenador arranca busca el MBR y carga el programa que allí se encuentre. El programa de arranque de windows que se instala en el MBR busca la primera partición primaria y activa y pasa el control allí, por tanto también podría instalarse en una partición pero si ésta deja de estar «activa» no arrancaría.

Hay otra parte de GRUB que se instala en el resto del primer cilindro y fuera del MBR. Como esa es una zona que Windows y similares normalmente ignoran, no habría ningún problema.

¿AFECTA A PARTICIONES O DATOS EXISTENTES?

Al ubicarse en el MBR la instalación de GRUB no afecta a los datos o particiones que ya existieran pues ni el primer sector del disco duro ni el de las particiones se utiliza para guardar datos. De hecho, las particiones (su número, tipo y su posición en el disco) se guarda precisamente en el MBR.

Cuando GRUB no funciona correctamente o tiene algún problema como «No encontrar la partición que tiene configurada para el arranque», no afecta a los sistemas instalados, seguirán estando ahí intactos. En este caso suele aparecer Grub rescue, un modo consola desde el cual podemos solventar problemas y recuperar el arranque.

¿CÓMO FUNCIONA GRUB RESCUE?

A veces, grub deja de funcionar: intenta arrancar desde un dispositivo que no existe o que no está configurado para ello.

En esos casos nos deja en un prompt de la consola de rescate de grub.

grub rescue>

IMPORTANTE: no existe un comando de ayuda para saber la lista de comandos disponibles.

Para hacer que esto arranque primero necesitamos ver la lista de particiones que tenemos disponibles

ls

Este comando nos mostrará todas las particiones que ha podido encontrar.

Por ejemplo:

(hd0) (hd0,1) (hd1) (hd1,1) (hd1,5) (hd2) (hd2,1) (hd3) (hd3,1)

Ahora debemos saber cual de esas particiones contiene la carpeta/boot/grub, con todos los datos necesarios para arrancar, para ello, bastará con ir haciendo un “ls” para cada una de las particiones, tal que:

ls (hd1,1)/             * Ojo con la barra del final, es necesaria

Una vez encontremos la partición correcta el “ls” nos devolverá un listado caracterísitico de carpetas, entre ellas la necesitada boot

Ahora hemos de añadir el prefijo:

set prefix=(hd1,1)/boot/grub             * Obviamente cambia el hd1,1 por hdX,Y según toque en tu caso, la carpeta grub no tiene porque estár debajo de boot.

Vale, ahora vamos a ampliar un poco los comandos que disponemos en la consola:

insmod (hd1,1)/boot/grub/linux.mod

Ahora sólo quedará configurar como root la partición:

set root=(hd1,1)

Cargamos la imagen de linux:

linux /boot/vmlinuz-2.6.32-23-generic root=/dev/sdb1

* Si no estamos seguros de que imagen cargar lo podemos comprobar con un “ls” del directorio boot

** La nomenclatura del punto de montaje: sdb1, viene dada por el nombre de la partición: (hd1,1) es sdb1, del mismo modo que (hd0,2) sería: sda2

Ahora falta cargar el kernel:

initrd /initrd.img

Y,finally, podemos arrancar

boot

Una vez dentro del sistema, podremos reinstalar grub para evitar este error en la próxima carga

grub-install /dev/sdb

 

CÓMO CAMBIAR EL SISTEMA DE ARRANQUE POR DEFECTO DEL GRUB en Debian, Ubuntu y derivados

Primero vemos que sistemas tenemos instalados

grep menuentry /boot/grub/grub.cfg

Cada línea que empiece con “menuentry” es una opción y empiezan a numerarse desde 0. Una vez localizado el sistema que queremos arrancar debemos editar el siguiente archivo:

sudo nano /etc/default/grub

En caso de que no tengan sudo instalado, deberán ejecutar el comando su y después el nano.

Ahora debemos modificar la línea GRUB_DEFAULT con el número del sistema elegido. Además podemos modificar el tiempo de espera en GRUB_TIMEOUT, esto se refiere a los segundos que Grub2 esperará antes de abrir la opción por defecto.

Salímos (ctrl+X) y guardamos (Si)

Ya solo falta hacer los cambios efectivos. Para ello ejecutamos:

sudo update-grub o sudo update-grub2

Por último REINICIAR.


Fuentes:

  • http://www.guia-ubuntu.com/index.php/GRUB (más información para modificar el GRUB)
  • http://blog.desdelinux.net/como-cambiar-la-opcion-de-entrada-por-defecto-de-grub2/
  • http://threep.tumblr.com/post/764599526/grub-rescue-como-recuperar-el-sistema-de-arranque

 

Jorge Valverde Ortiz