Va de GRUB! 4


Todo usuario de GNU/Linux conoce este famoso cargador de arranque. GRUB (GRand Unified Bootloader) no es el único cargador de arranque que existe, LiLo (Linux Loader) es otro cargador de arranque muy usado antiguamente por las distribuciones linux, ya que era el cargador de arranque que traían por defecto. Hay otros como U-Boot (Universal Boot loader) que se usa principalmente en distribuciones linux para sistemas empotrados (es el más usado en arquitecturas ARM).

Como hemos dicho anteriormente, GRUB nos permite arrancar uno o más sistemas operativos instalados en la misma máquina, actualmente es el cargador de arranque por defecto en sistemas GNU/Linux. Hablamos de GRUB, aunque realmente deberíamos hablar de GRUB 2, ya que desde la versión 0.9.x, se reescribió el código para hacerlo más limpio, seguro y robusto. Hoy en día es GRUB 2 el que se usa habitualmente en todas las distribuciones, aunque se le siga llamando GRUB.

Vamos a describir a grandes rasgos cómo funciona este cargador de arranque para poder entender porqué al instalar otros sistemas operativos desaparece y cómo restaurarlo. También vamos a ver cómo editarlo para personalizar algunas de sus opciones.

Cuando arranca un ordenador la BIOS busca en el primer sector del disco duro, conocido como master boot record, para comenzar el arranque, ahí es donde los sistemas operativos colocan su cargador de arranque. Por ejemplo si instalamos en una máquina dos sistemas operativos como Windows XP y Ubuntu, si instalamos primero Ubuntu, colocará el GRUB en el master boot record, y si después instalamos Windows XP, éste sobreescribirá el master boot record con su cargado de arranque, que sólo permite cargar un sistema operativo, ya sabéis cual, deberíamos resutaurar el GRUB para tener un arranque dual. Si lo hacemos al contrario, como GRUB nos permite cargar más de un S.O. no hay problema.

 

Funcionamiento de GRUB:

El funcionamiento de GRUB, a grandes rasgos, es el siguiente:

  1. Se ubica en el master boot record la dirección física de disco de dónde se halla realmente GRUB para cargarlo.
  2. Se carga el GRUB y se presenta al usuario un menú con los diferentes opciones de arranque.
  3. Se carga el kernel, seleccionado por el usuario en el menú, en memoria y se le pasa el control.
Restaurar GRUB:
Para restaurar GRUB, si reinstalamos otros sistema operativo que nos sobrescriba el master boot record, o por cualquier otra causa, podemos realizarlo con un LiveCD de cualquier distribución linux, el proceso es el mismo. Vamos a descargar un CD de Ubuntu, que nos vale tanto para probarlo en modo LiveCD como para instalarlo, se puede descargar aquí.

Una vez grabado en un CD, configuramos la BIOS para que arranque desde la unidad de CD. Una vez arranca le decimos que queremos probar ubuntu y abrimos una terminal, desde la terminal escribimos:

sudo fdisk -l

Para conocer cuál es la partición raíz. Supongamos que la partición raíz es /dev/sda5.

sudo mount /dev/sda5 /mnt

Montamos la partición raíz en /mnt. Si el directorio /boot, se encuentra en una partición distinta también debe ser montado.

sudo grub-install --boot-directory=/mnt/boot/ --recheck /dev/sda

Instalamos grub, indicándole cuál es directorio de arranque.

De esta forma ya tenemos grub instalado, si reiniciamos la máquina nos aparecen las opciones que teníamos anteriormente, y puede que no sean correctas, arrancamos en nuestra distribución linux y desde consola ejecutamos:

sudo update-grub

Para actualizar la lista de arranque.

 

Editar GRUB:

Para editar grub debemos hacerlo en el fichero /boot/grub/grub.cfg, aunque si accedemos al fichero ahí mismo nos dice que no debemos editarlo, no sólo porque sea peligroso si no sabemos lo que hacemos, sino también porque cada vez que ejecutamos un update-grub se perderán las modificaciones hechas, esto sucede de forma automática cada vez que se actualiza nuestro kernel.

Aunque no sucede nada si modificamos algunas pequeñas cosas como el kernel a cargar por defecto:

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
set default=»0″

La línea,  set default=»0″ indica que carga el primer kernel de nuestro menú, podemos cambiar el número para indicarle que por defecto cargue otro.

Podemos también cambiar el tiempo que esperar antes de cargar el kernel por defecto:

terminal_output gfxterm
set timeout=10
### END /etc/grub.d/00_header ###

donde timeout es el tiempo en segundos.

También podríamos ir al final del fichero y editar el nombre que nos aparece en el menú, o quitar alguna entrada que no queramos.

Pero si usamos Ubuntu, estamos de suerte, porque acaba de salir Grub Customizer 3.0, que nos permite editar una gran cantidad de opciones de forma gráfica. Para instalarlo basta con ejecutar en una terminal:

 
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

Enlaces:


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

4 ideas sobre “Va de GRUB!