Troubleshooting de arranque
Introducción
Cuando un sistema Linux no arranca, el diagnóstico sigue siempre el mismo flujo: identificar en qué fase del arranque falla (GRUB, kernel, initramfs o systemd) y actuar en consecuencia. La mayoría de fallos tienen causas concretas y soluciones conocidas.
Flujo de diagnóstico
¿Aparece el menú de GRUB?
├── NO → problema en GRUB o MBR/EFI → ver "Reparar GRUB desde Live USB"
└── SÍ ¿El kernel arranca?
├── NO → kernel panic o parámetros incorrectos → ver sección kernel panic
└── SÍ ¿Monta el sistema raíz?
├── NO → error en /etc/fstab o disco dañado
└── SÍ ¿Arranca systemd correctamente?
├── NO → servicio roto en el arranque
└── SÍ → problema en capa de aplicación
Errores comunes de GRUB
error: no such partition / Entering rescue mode
GRUB no encuentra la partición donde está instalado. Causas habituales: se cambió el UUID de la partición, se reorganizaron los discos o se eliminó una partición.
# Desde la consola de rescate de GRUB, identificar los discos:
grub> ls
(hd0) (hd0,gpt1) (hd0,gpt2) (hd1) ...
# Buscar cuál contiene el sistema:
grub> ls (hd0,gpt2)/
grub> ls (hd0,gpt2)/boot/
# Una vez encontrada la partición correcta, arrancar manualmente:
grub> set root=(hd0,gpt2)
grub> linux /boot/vmlinuz-... root=/dev/sda2 ro
grub> initrd /boot/initrd.img-...
grub> boot
# Una vez dentro del sistema, regenerar grub.cfg:
update-grub
GRUB muestra solo una línea de comandos (grub>)
GRUB encontró su partición pero no pudo leer grub.cfg. Se puede arrancar manualmente desde la
consola y luego regenerar la configuración como en el caso anterior.
GRUB no aparece en absoluto (pantalla negra o directamente el SO)
El MBR o la EFI no apuntan a GRUB. Requiere reparación desde Live USB (ver contenido siguiente).
Kernel panic
Un kernel panic es un error fatal del kernel del que no puede recuperarse. El sistema se detiene mostrando un mensaje de error. Causas más frecuentes:
- Sistema de ficheros raíz no encontrado o corrupto
- Parámetro
root=incorrecto en la línea de arranque - initramfs dañado o incompatible con el kernel
- Módulo del kernel incompatible cargado al arranque
# Mensaje típico de kernel panic por dispositivo raíz no encontrado:
# "Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)"
# Solución: editar la entrada de GRUB en el arranque (tecla 'e'),
# localizar la línea que empieza por "linux" y corregir root=UUID=...
# o root=/dev/sdX según corresponda
# Para ver el UUID correcto de las particiones desde un Live USB:
blkid
lsblk -f
Error en /etc/fstab
Un error en /etc/fstab (UUID incorrecto, partición inexistente, opción de montaje inválida) provoca
que el sistema quede en modo de emergencia al arrancar con el mensaje:
# "You are in emergency mode. After logging in, type 'journalctl -xb' to view system logs..."
# 1. Entrar con la contraseña de root cuando la pide
# 2. Montar la raíz en modo escritura (normalmente está en solo lectura):
mount -o remount,rw /
# 3. Ver el error concreto:
journalctl -xb | grep -i "failed to mount\|fstab"
# 4. Editar fstab para corregir la entrada problemática:
nano /etc/fstab
# 5. Verificar que la sintaxis es correcta:
mount -a
# 6. Reiniciar
systemctl reboot
Para evitar que un error en /etc/fstab bloquee el arranque, usar la opción
nofail en entradas de discos opcionales:
# /etc/fstab — disco de datos opcional, no bloquea el arranque si falla
UUID=xxxx /datos ext4 defaults,nofail 0 2
Servicio que impide el arranque
Si systemd arranca pero un servicio falla y bloquea el proceso, el sistema puede quedarse esperando o entrar en modo de emergencia.
# Ver qué falló en el último arranque:
journalctl -xb --priority=err
# Ver el tiempo que tardó cada servicio (detectar cuál bloquea):
systemd-analyze blame
# Ver el árbol de dependencias del arranque:
systemd-analyze critical-chain
# Deshabilitar el servicio problemático y reiniciar:
systemctl disable nombre-servicio
systemctl reboot