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).savedrecuerda la última selección. -
GRUB_TIMEOUT→ segundos que espera antes de arrancar automáticamente.0arranca sin mostrar menú,-1espera indefinidamente. -
GRUB_CMDLINE_LINUX_DEFAULT→ parámetros añadidos al kernel en arranque normal.quiet splashoculta 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(olinuxefien UEFI). - Modificar o añadir parámetros al final de esa línea.
- Pulsar Ctrl+X o F10 para arrancar con esos parámetros.