Linux bootloader

Después de pulsar el botón de power en un equipo, la BIOS o la UEFI intentaran encontrar, en los discos que han detectado, el programa bootloader.

En el caso que el hardware implente la BIOS, las búsqueda del booloader  se realizara intentado localizar el MBR (Master Boot Record) y en el caso disponga de UEFI el bootloader se buscará en una partición especial llamada ESP (EFI System Partition) para cargarlo en memoria,  una vez encontrado, este programa permitirá iniciará la carga del Kernel para que el sistema pueda iniciarse.

En Linux encontramos multitud bootloaders, los más destacados son:

  • LILO: Es el primer bootloader de Linux y sus funcionalidades eran muy limitadas.
  • GRUB Legacy: Se diseñó para tener más potencia que LILO, permitiendo menús interactivos en el inicio.
  • GRUB2: Es la evolución de GRUB Legacy, aunque la mayoría de las funcionalidades son las mismas.
  • BURG: Es un gestor de arranque basado en GRUB, permite inicio en modo texto y gráfico. Utiliza un nuevo formato de objeto que permite la integración en una amplia variedad de sistemas con multiples posibilidades de configuración.
  • SYSLINUX: Se utiliza para sistemas que utilizn el Sistema de fichero FAT de Microsoft, se utilizar para iniciar sistemas desde USB.
  • EXTLINUX: Mini bootloader para sistemas de archivos ext2, ext3, ext4, or btrfs.
  • ISOLINUX: Utilizado LiveCD o LiveDVD.
  • PXELINUX: Bottoloader para iniciar desde un servidor de red.
  • MEMDISK: Es una utilidad de boot parar iniciar sistemas antiguos basados en MSDOS desde otros sistemas con SYSLINUX.

En este post hablaremos de GRUB Legacy y GRUB2 ya que son los que están implantados en la mayoría de las distribuciones Linux.

Bootloaders GRUB Legacy y GRUB2

Una de las primeras cosas a tener en cuenta es que la particular forma en la que los sistemas GRUB identifican los discos, mantienen el siguiente formato:

hd([num_disco],[num_particion])

Por ejemplo el disco /dev/sda1 seria hd(0,1)

Aunque los dos sistemas comparten la mayoría de funcionalidades hay que destacar las siguientes:

 

GRUB2

GRUB Legacy

Archivo de configuración

/boot/grub/grub.conf

/boot/grub/menu.list

Inicio particiones

 La primera partición es la 1

La primera partición es la 0

Especificación del Kernel en configuración

linux

Kernel

Especificación de partición root en configuración

Set root

root

Carga de módulos

insmod

module

Secuencia de carga de módulos en el inicio

Se cargan lo módulos dependiendo del Kernel

fija

Ambos bootloaders permiten la interacción durante el proceso de inicio del Sistema a través de sus menús

menu grub

En este menú pulsando la tecla “E” nos permitirá modificar el archivo de configuración y si pulsamos la tecla “C” nos abrirá un pequeño Shell desde el que podremos ejecutar algunos comandos.

En GRUB podremos modificar directamente las opciones añadiendo o quitando líneas en su archivo de configuración /boot/grub/menu.list En algunas distribuciones menu.lst es un link simbólico a /boot/grub/grub.conf

La configuración de GRUB2 se encuentra en el archivo /boot/grub/grub.conf pero no deberemos editarlo directamente ya que el archivo se crea en base a las configuraciones de los archivos que encontramos en /etc/grub.d En algunas distribuciones también disponemos del archivo de configuración /etc/defaults/grub que permite algunas opciones globales de configuración.

Para instalar cualquiera de las dos opciones tendremos que usar el comando grub-install y para las aplicar las modificaciones que realicemos a nivel de configuración usaremos el comando update-grub para GRUB y grub-mkconfig para GRUB2.