GRUB2: instalación y configuración

Introducción

GRUB2 es el gestor de arranque estándar en la mayoría de distribuciones Linux. Saber configurarlo es esencial para personalizar el arranque, añadir parámetros al kernel y recuperar sistemas dañados.

Estructura de ficheros de GRUB2

  • /boot/grub/grub.cfg — configuración generada automáticamente. No editar directamente.
  • /etc/default/grub — fichero principal de configuración del usuario.
  • /etc/grub.d/ — scripts que generan las entradas del menú de GRUB.
  • /boot/grub/ — directorio con módulos y la configuración activa.
  • /boot/efi/EFI/ — en sistemas UEFI, aquí se guarda el binario de GRUB.

Scripts en /etc/grub.d/:


00_header          ← cabecera y opciones globales
05_debian_theme    ← tema visual (en Debian/Ubuntu)
10_linux           ← entradas para los kernels Linux instalados
20_linux_xen       ← entradas para Xen
30_os-prober       ← detecta otros sistemas operativos (Windows, etc.)
40_custom          ← entradas personalizadas del administrador
          

/etc/default/grub — Configuración principal

Este es el fichero que el administrador debe editar para personalizar el comportamiento de GRUB.

Contenido típico:


GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_TIMEOUT_STYLE=menu
GRUB_DISTRIBUTOR="Debian"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
          

Parámetros más importantes:

  • GRUB_DEFAULT → entrada del menú seleccionada por defecto (número o nombre). saved recuerda la última selección.
  • GRUB_TIMEOUT → segundos que espera antes de arrancar automáticamente. 0 arranca sin mostrar menú, -1 espera indefinidamente.
  • GRUB_CMDLINE_LINUX_DEFAULT → parámetros añadidos al kernel en arranque normal. quiet splash oculta los mensajes y muestra splash.
  • GRUB_CMDLINE_LINUX → parámetros añadidos siempre (también en modo recuperación).
  • GRUB_DISABLE_OS_PROBER=true → desactiva la detección de otros sistemas operativos.

Parámetros del kernel útiles en GRUB_CMDLINE_LINUX:

  • ro → monta el sistema de ficheros raíz en solo lectura al arrancar (normal).
  • quiet → suprime mensajes del kernel durante el arranque.
  • nomodeset → desactiva el modo gráfico del kernel (útil con GPUs problemáticas).
  • single / 1 → arranca en modo monousuario (runlevel 1).
  • systemd.unit=rescue.target → arranca en modo rescate.
  • root=/dev/sda1 → especifica el dispositivo raíz manualmente.

grub-mkconfig — Regenerar grub.cfg

Tras editar /etc/default/grub hay que regenerar grub.cfg con este comando. Nunca editar grub.cfg directamente porque se sobreescribe.


# Debian / Ubuntu:
# grub-mkconfig -o /boot/grub/grub.cfg
# update-grub            ← atajo equivalente en Debian/Ubuntu

# Red Hat / Fedora (BIOS):
# grub2-mkconfig -o /boot/grub2/grub.cfg

# Red Hat / Fedora (UEFI):
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
          

El comando ejecuta los scripts de /etc/grub.d/ y escribe el resultado en el fichero de destino.

grub-install — Instalar GRUB en el disco

Instala el gestor de arranque en el MBR o en la partición EFI del disco. Se usa al instalar el sistema o al recuperar un GRUB dañado.


# En sistemas BIOS/MBR — instalar en el disco (no en una partición):
# grub-install /dev/sda

# En sistemas UEFI — la ESP debe estar montada en /boot/efi:
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian

# Red Hat / Fedora:
# grub2-install /dev/sda
          

Editar parámetros en el arranque

En el menú de GRUB, antes de que el sistema arranque, se pueden editar los parámetros del kernel pulsando e sobre la entrada seleccionada. Los cambios son temporales (solo para ese arranque).

  • Localizar la línea que comienza por linux (o linuxefi en UEFI).
  • Modificar o añadir parámetros al final de esa línea.
  • Pulsar Ctrl+X o F10 para arrancar con esos parámetros.

El flujo correcto es: editar /etc/default/grub → ejecutar update-grub o grub-mkconfig → reiniciar para aplicar los cambios.

Gestión del kernel: uname, módulos

Índice de la sección

Índice del curso