GNU GRUB: qué es y cómo gestiona el arranque Multiboot en tu PC

Descubre GNU GRUB: cómo gestiona Multiboot en tu PC, permite elegir sistemas operativos, seleccionar kernels y pasar parámetros para un arranque flexible y seguro.

Autor: Leandro Alegsa

GNU GRUB ("GRUB" para abreviar) es un paquete cargador de arranque del Proyecto GNU. GRUB es el principal ejemplo de la especificación Multiboot, que permite a un usuario tener más de un sistema operativo en su ordenador a la vez, y elegir cuál ejecutar cuando el ordenador se inicia. GRUB puede ser usado para seleccionar entre diferentes imágenes de kernel disponibles en las particiones de un sistema operativo en particular, así como para pasar parámetros de arranque a dichos kernels.

Qué hace GRUB

GRUB se encarga de las primeras etapas del arranque del ordenador: detecta sistemas operativos instalados, carga el kernel elegido en memoria y le pasa los parámetros necesarios. Gracias a su diseño modular puede:

  • Arrancar múltiples sistemas operativos (multiboot).
  • Leer sistemas de archivos comunes (ext2/3/4, Btrfs, XFS, FAT, NTFS con módulos) para localizar kernels y configuraciones.
  • Realizar chainloading para delegar el arranque a otro gestor (por ejemplo, el cargador de Windows).
  • Permitir edición temporal de la línea de arranque desde el menú (útil para añadir parámetros como single, nomodeset, etc.).
  • Ofrecer modo de rescate y un intérprete de comandos para solucionar problemas de arranque.

Versiones y compatibilidad

Las dos generaciones principales son GRUB Legacy (antiguo) y GRUB 2 (actual). La mayoría de distribuciones modernas usan GRUB 2, que introdujo:

  • Configuración modular y scripts para generar el archivo de configuración.
  • Soporte nativo para UEFI y BIOS (Legacy).
  • Soporte mejorado de temas, resolución de vídeo y reconocimiento de sistemas de archivos.

Instalación y archivos de configuración

Según el modo de arranque (BIOS o UEFI) la instalación se realiza de distinta forma:

  • En BIOS/MBR: GRUB instala un bootloader en el MBR (o en la partición de arranque) y los módulos se encuentran en /boot/grub (o /boot/grub2 en algunas distribuciones).
  • En UEFI: se instala un ejecutable EFI (por ejemplo, grubx64.efi) en la partición EFI (ESP) y el firmware UEFI carga ese fichero.

Archivos importantes:

  • /boot/grub/grub.cfg (archivo de configuración generado, no editar a mano salvo excepciones).
  • /etc/default/grub (opciones por defecto como tiempo de espera y parámetros globales).
  • /etc/grub.d/ (scripts que generan las entradas del menú).

Comandos frecuentes:

  • grub-install /dev/sdX — instala GRUB en un disco.
  • grub-mkconfig -o /boot/grub/grub.cfg (o update-grub en algunas distros) — genera grub.cfg.
  • grub-set-default / grub-reboot — elegir la entrada por defecto o para el próximo reinicio.

Multiboot y chainloading

Para tener Windows y varias distribuciones Linux en el mismo equipo, GRUB detecta kernels y otros cargadores y crea entradas en el menú. Si se quiere delegar el arranque al cargador de Windows se usa chainloader, por ejemplo en una entrada manual:

set root=(hd0,1) chainloader +1 boot

La mayoría de distribuciones automatizan esto con scripts en /etc/grub.d/ para generar entradas que arrancan Windows correctamente.

Recuperación y solución de problemas

Si GRUB no se inicia puedes encontrarte con pantallas como "grub rescue>" o "no se encontró el dispositivo". Pasos habituales de recuperación:

  • Desde el prompt de GRUB: localizar la partición con los archivos (comandos ls, set prefix, set root) e intentar cargar el módulo normal (insmod normal) y ejecutar normal.
  • Arrancar desde un medio live (USB) y reinstalar GRUB con grub-install y regenerar grub.cfg.
  • Comprobar que la partición EFI esté intacta en sistemas UEFI y que exista un ejecutable válido (a menudo usando el paquete shim en sistemas con Secure Boot).

Seguridad

GRUB permite protecciones básicas:

  • Contraseña para editar entradas o para arrancar ciertos menús.
  • Soporte para Secure Boot mediante firmas: muchas distribuciones usan shim firmado por Microsoft que a su vez carga GRUB firmado.

Consejos prácticos

  • Antes de modificar particiones o reinstalar sistemas, anota la tabla de particiones y haz copia de seguridad de /boot y de /etc/default/grub.
  • Evita editar directamente /boot/grub/grub.cfg: las modificaciones deben hacerse en /etc/default/grub o en /etc/grub.d/ y luego regenerar el fichero.
  • Si necesitas añadir parámetros al kernel temporalmente, en el menú de GRUB pulsa la tecla 'e' sobre una entrada y edita la línea linux (no olvides arrancar después con Ctrl+X o F10).
  • Para entornos UEFI, asegúrate de que la partición EFI (ESP) esté montada cuando reinstales GRUB.

Casos comunes

  • Windows sobrescribe el MBR: reinstala GRUB desde un live de Linux con grub-install y luego grub-mkconfig.
  • No aparece una distro en el menú: ejecuta grub-mkconfig o update-grub para forzar la detección.
  • Problemas con Secure Boot: usa la versión firmada de GRUB (a través de shim) o desactiva Secure Boot si controlas el equipo y comprendes los riesgos.

GRUB es una herramienta potente y flexible que, bien configurada, facilita la convivencia de varios sistemas en un mismo equipo y ofrece recursos de diagnóstico y recuperación cuando el arranque falla. Si vas a hacer cambios importantes, documenta cada paso y mantén un medio de rescate (live USB) a mano.

Funcionamiento

Cuando un ordenador se enciende, la BIOS del ordenador encuentra el dispositivo de arranque principal (normalmente el disco duro del ordenador) y carga el programa de arranque inicial desde el registro de arranque maestro (MBR), los primeros 512 bytes del disco duro, y luego transfiere el control a este código.

El MBR contiene la etapa 1 de GRUB. Debido al pequeño tamaño del MBR, la etapa 1 sólo carga la siguiente etapa de GRUB (que puede estar físicamente en otra parte del disco). La etapa 1 puede cargar la etapa 2 directamente, o puede cargar la etapa 1.5: la etapa 1.5 de GRUB se encuentra en los primeros 30 kilobytes del disco duro inmediatamente después del MBR. La etapa 1.5 carga la etapa 2.

Cuando GRUB Etapa 2 recibe el control, presenta una interfaz al usuario para seleccionar qué sistema operativo arrancar. Esto normalmente toma la forma de un menú gráfico, aunque si esto no está disponible o el usuario desea un mayor control, GRUB tiene su propio prompt de comandos, donde el usuario puede especificar manualmente los parámetros de arranque. GRUB también puede ser configurado para cargar automáticamente un kernel particular después de un período de tiempo de espera.

Una vez que las opciones de arranque han sido seleccionadas, GRUB carga el kernel seleccionado en la memoria y pasa el control al kernel, que continúa arrancando por sí mismo. En esta etapa GRUB también puede pasar el control del proceso de arranque a otro cargador, utilizando la carga en cadena, para sistemas operativos como Windows que no soportan el estándar Multiboot. En este caso, las copias de los programas de arranque del otro sistema han sido guardadas por GRUB; en lugar de un kernel, el otro sistema se carga como si se hubiera iniciado desde el MBR. Esto puede ser otro gestor de arranque, como el menú de arranque de Microsoft, que permite una mayor selección de sistemas operativos no Multiboot. (Este comportamiento suele ser automático cuando las distribuciones modernas de Linux se instalan "encima" de los sistemas Windows existentes, lo que permite al usuario conservar el sistema operativo original sin cambios, incluidos los sistemas que contienen varias versiones de Windows).

 GNU GRUB en discos duros con particiones MBR  Zoom
GNU GRUB en discos duros con particiones MBR  

GNU GRUB en discos duros con particiones GPT  Zoom
GNU GRUB en discos duros con particiones GPT  

boot.img tiene el tamaño exacto de 446 Bytes y se escribe en el MBR (sector 0). core.img se escribe en los sectores vacíos entre el MBR y la primera partición, si está disponible (por razones de legado la primera partición comienza en el sector 63 en lugar del sector 1, pero esto no es obligatorio). El directorio /boot/grub puede estar ubicado en una partición distinta, o en la partición /.  Zoom
boot.img tiene el tamaño exacto de 446 Bytes y se escribe en el MBR (sector 0). core.img se escribe en los sectores vacíos entre el MBR y la primera partición, si está disponible (por razones de legado la primera partición comienza en el sector 63 en lugar del sector 1, pero esto no es obligatorio). El directorio /boot/grub puede estar ubicado en una partición distinta, o en la partición /.  

Páginas relacionadas

  • Comparación de cargadores de arranque
  • bootman
  • Das U-Boot Cargador de arranque universal
  • EasyBCD
  • elilo
  • GRLDR
  • LILO
  • Paquete Ncurses y Ncurses para Windows en GnuWin32
  • NTLDR
  • SILO
  • BCD
  • xOSL Cargador de sistema operativo extendido
 

Preguntas y respuestas

P: ¿Qué es GNU GRUB?


R: GNU GRUB es un paquete cargador de arranque del Proyecto GNU.

P: ¿Qué significa GRUB?


R: GRUB significa "GNU GRUB".

P: ¿Qué permite hacer a un usuario la Especificación Multiboot?


R: La Especificación Multiboot permite a un usuario tener más de un sistema operativo en su ordenador a la vez, y elegir cuál ejecutar cuando se inicia el ordenador.

P: ¿Para qué se puede utilizar GRUB?


R: GRUB puede usarse para seleccionar entre diferentes imágenes de kernel disponibles en las particiones de un sistema operativo en particular, así como para pasar parámetros de arranque a dichos kernels.

P: ¿Es GRUB el único gestor de arranque disponible?


R: No, hay otros paquetes cargadores de arranque disponibles.

P: ¿Se puede usar GRUB sólo con un sistema operativo en un ordenador?


R: Sí, GRUB puede usarse con un solo sistema operativo en un ordenador.

P: ¿Cuál es la principal ventaja de usar GRUB?


R: La principal ventaja de usar GRUB es que permite al usuario tener múltiples sistemas operativos en su computadora y elegir cual ejecutar cuando la computadora se inicia.


Buscar dentro de la enciclopedia
AlegsaOnline.com - 2020 / 2025 - License CC3