← Volver a artículos
Noticias· 5 min de lectura· David Carrero Fernández-Baillo

GRUB y el arranque de Linux paso a paso

Botón de encendido de un ordenador iluminado, simbolizando el arranque del sistema
Foto: energepic.com · Pexels

Pulsas el botón de encendido y, segundos después, ahí tienes el escritorio de tu distro favorita. Entre medias se ejecuta una coreografía precisa que casi nadie ve. Del silencio del hardware apagado al sistema operativo plenamente funcional hay varias etapas encadenadas, y en el centro de muchas de ellas vive un protagonista discreto pero imprescindible: GRUB. Entender ese proceso no es solo curiosidad técnica. Es lo que separa quedarte bloqueado ante una pantalla negra de saber exactamente dónde tocar cuando algo falla.

Del firmware al gestor de arranque

Diagrama del proceso de arranque UEFI desde el firmware hasta el gestor de arranque
Esquema del arranque UEFI: el firmware cede el control al gestor de arranque desde la partición ESP. · Imagen: Amila Ruwan 20 / CC BY-SA 4.0 · Wikimedia Commons

Todo empieza en el firmware de la placa base. Durante décadas ese firmware fue la BIOS (Basic Input/Output System), heredera del PC original de IBM. Hoy lo normal es UEFI (Unified Extensible Firmware Interface), más moderno, capaz de gestionar discos enormes y de arrancar desde una partición especial llamada ESP (EFI System Partition).

Sea cual sea el firmware, su trabajo es el mismo: comprobar el hardware y ceder el control a un gestor de arranque (bootloader). En la BIOS clásica ese gestor vive en el MBR del disco; en UEFI es un ejecutable .efi dentro de la ESP. El gestor de arranque es la pieza que sabe dónde está el sistema operativo y cómo cargarlo en memoria.

Qué es GRUB y por qué es el más usado

Captura del menú de arranque de GRUB 2 con varias entradas de sistema operativo y kernel
El menú de GRUB 2 permite elegir entre sistemas operativos y versiones del kernel al arrancar. · Imagen: Sizyffe / CC BY 4.0 · Wikimedia Commons

GRUB significa GRand Unified Bootloader y es, con diferencia, el gestor de arranque más extendido en el mundo Linux. Su historia se remonta a 1995, cuando Erich Boleyn lo creó para arrancar el microkernel GNU Mach. En 1999 pasó a ser un paquete oficial del proyecto GNU, y a partir de 2002 Yoshinori K. Okuji empezó una reescritura completa que acabaría llamándose GRUB 2, mientras la versión original quedaba como “GRUB Legacy”. Hacia finales de 2009 las grandes distribuciones ya instalaban GRUB 2 por defecto, y ese es el GRUB que usas hoy.

Su función principal es fácil de enunciar y compleja de ejecutar: cargar el kernel de Linux en memoria y arrancarlo. Pero hace algo más. Te presenta un menú donde eliges entre distintos sistemas operativos o entre varias versiones del kernel, algo muy práctico cuando una actualización rompe algo y necesitas volver a un kernel anterior. Distribuciones como Debian, Ubuntu o Fedora confían en GRUB para gestionar precisamente esa flexibilidad.

El menú, la configuración y los parámetros del kernel

En un sistema moderno, los ficheros de GRUB viven en /boot/grub, con el menú generado en grub.cfg. Ese archivo no se edita a mano: se genera solo a partir de los scripts de /etc/grub.d y de tus preferencias en /etc/default/grub. Ahí defines cosas como el tiempo de espera del menú o los parámetros del kernel, esas opciones que se pasan en la línea de arranque (por ejemplo quiet splash para un arranque silencioso, o nomodeset cuando la tarjeta gráfica da guerra).

Saber dónde tocar marca la diferencia. Si tu sistema arranca con pantalla negra, muchas veces basta con editar de forma temporal la línea del kernel desde el propio menú de GRUB, pulsando e, y sales del apuro sin reinstalar nada.

initramfs: el puente hacia el sistema real

Una vez GRUB carga el kernel, este inicializa la CPU, la memoria y los dispositivos básicos. Pero aparece el problema del huevo y la gallina: para montar el disco raíz, el kernel necesita controladores (de tu controladora SATA o NVMe, del cifrado, del sistema de ficheros) que muchas veces están dentro de ese mismo disco que aún no puede leer.

Aquí entra el initramfs (heredero del antiguo initrd): un pequeño sistema de ficheros temporal que GRUB carga en memoria junto al kernel. Lleva justo los módulos imprescindibles para localizar y montar el sistema de ficheros raíz real. Una vez montado, el kernel ejecuta switch_root y entrega el control al sistema definitivo. Ahí arranca el proceso de init, que hoy casi siempre es systemd, encargado de levantar todos los servicios hasta dejarte el login o el escritorio.

systemd-boot y el dual boot

GRUB no es la única opción. En equipos UEFI modernos gana terreno systemd-boot, un gestor mucho más ligero, de apenas unos miles de líneas de código, que se apoya directamente en el firmware UEFI en lugar de cargar “casi un sistema operativo” como hace GRUB. A cambio solo arranca ejecutables EFI desde la partición ESP (o una partición XBOOTLDR adicional), así que es menos flexible. Distribuciones para usuarios avanzados, como Arch, permiten elegir cómodamente entre ambos.

El dual boot —tener Linux y otro sistema en el mismo equipo— es uno de los escenarios donde GRUB brilla. Al instalar una distro junto a Windows o macOS, GRUB detecta los demás sistemas y los añade al menú solo. Por eso conviene instalar primero el otro sistema y Linux después: así GRUB toma el control del arranque y te deja elegir cada vez que enciendes.

Conclusión

El arranque de Linux es una cadena lógica y comprensible: firmware (BIOS/UEFI) → gestor de arranque → kernel + initramfs → init (systemd). GRUB es el eslabón que conecta el hardware con tu sistema, te da el poder de elegir y te ofrece una vía de rescate cuando algo se tuerce. Tanto si usas el veterano GRUB como el minimalista systemd-boot, conocer cada etapa te convierte en un usuario que no teme la pantalla negra, sino que sabe leerla. Y ese conocimiento, en Linux, siempre se paga solo.

Fuentes: GNU GRUB Manual: History, ArchWiki: systemd-boot.