E.2. GRUB

GNU GRand Unified Boot loader o GRUB es un programa que habilita al usuario a seleccionar qué sistema operativo instalado o kernel cargar en el momento de arranque del sistema. Permite también que el usuario transmita argumentos al kernel.

E.2.1. GRUB y el proceso de arranque de BIOS en sistemas basados en x86

Esta sección discute el papel específico de GRUB al arrancar un sistema BIOS x86. Para tener una visión general del proceso de arranque, consulte la Sección F.2, “Vista detallada del proceso de arranque”.
GRUB se carga asímismo en la memoria en las diferentes etapas:
  1. La etapa 1 o el gestor de arranque primario es leído en memoria por el BIOS desde el MBR [14]. El gestor de arranque primario existe en menos de 512 bytes de espacio de disco dentro del MBR y puede cargar el gestor de arranque de la Etapa 1.5 o de la Etapa 2.
    BIOS no puede leer tablas de particiones o sistemas de archivos. BIOS inicializa el hardware, lee el MBR, luego depende totalmente del gestor de arranque Etapa 1 para continuar el proceso de arranque.
  2. El gestor de arranque de la Etapa 1 lee en la memoria el gestor de arranque de la Etapa 1.5 si es necesario. Algunos hardware requieren un paso intermedio para llegar a la Etapa 2 del gestor de arranque. A veces esto sucede cuando la partición /boot/ se encuentra por encima de los 1024 cilindros de disco duro o cuando utiliza el modo LBA. El gestor de arranque de la Etapa 1.5 se encuentra ya sea en la partición /boot/ o en una pequeña parte del MBR y de la partición /boot/.
  3. La Etapa 2 o el gestor de arranque secundario se lee en la memoria. El gestor de arranque secundario visualiza el menú GRUB y el entorno de comandos. Esta interfaz le permite seleccionar qué sistema operativo o kernel arrancar, pasar argumentos al kernel o ver los parámetros del sistema.
  4. El gestor de arranque secundario lee el sistema operativo o el kernel así como el contenido de /boot/sysroot/ en la memoria. Una vez que GRUB determina el sistema operativo o el kernel a iniciar, lo carga en la memoria y transfiere el control de la máquina a ese sistema operativo.
El método que se utiliza para arrancar Linux se llama carga directa porque el gestor de arranque carga el sistema operativo directamente. No existe intermediario entre el gestor de arranque y el kernel.
El proceso de arranque usado por otros sistemas operativos puede variar. Por ejemplo, los sistemas operativos de Microsoft® Windows®, así como otros sistemas operativos, se cargan mediante un método de arranque de carga encadenada. Bajo este método, el MBR señala el primer sector de la partición que tiene el sistema operativo. Allí encuentra los archivos necesarios para arrancar el sistema operativo.
GRUB soporta ambos métodos de arranque, directo y de carga encadenada, permitiendo arrancar desde casi cualquier sistema operativo.

Aviso

Durante la instalación, los programas de instalación de Microsoft DOS y Windows sobrescriben totalmente el MBR, destruyendo todos los gestores de arranque. Al crear un sistema de arranque dual, es mejor instalar primero el sistema operativo de Microsoft.


[14] Para obtener mayor información sobre el BIOS de sistema y el MBR, consulte la Sección F.2.1.1, “BIOS en sistemas basados en x86”.