Recuperar un sistema Linux que no arranca: guía completa

  • La mayoría de fallos de arranque en Linux se resuelven sin formatear, usando modos de rescate, distros Live y herramientas como GRUB, fsck o systemctl.
  • Es clave distinguir entre problemas de hardware y de software analizando BIOS/UEFI, SMART del disco, memoria RAM y los registros de sistema.
  • Contar con particiones separadas, copias de seguridad y un USB con una distro de rescate reduce muchísimo el impacto de cualquier fallo grave.

Recuperar un sistema Linux que no arranca

Cuando un equipo con Linux se niega a arrancar, el susto es importante, pero lo cierto es que la mayoría de problemas de arranque en Linux tienen solución sin necesidad de formatear ni perder datos. A diferencia de otros sistemas, casi siempre podemos entrar en modos de rescate, TTYs básicos o usar distros Live para meter mano al sistema.

Además, hablamos de un ecosistema muy estable: Linux es un sistema de código abierto reconocido por su fiabilidad, ampliamente usado en servidores por su enorme tiempo de actividad y baja tasa de fallos. Eso no significa que sea infalible; muchas averías vienen de configuraciones arriesgadas, kernels experimentales o toqueteos en particiones y gestores de arranque. La buena noticia es que existen pasos bastante claros para diagnosticar y arreglar casi cualquier escenario.

Por qué puede dejar de arrancar un sistema Linux

Antes de ponernos a lanzar comandos a lo loco conviene entender que los fallos de arranque en Linux suelen concentrarse en unas pocas causas típicas, ya sea por software o por hardware. Tenerlas claras ayuda a no perder tiempo dando bandazos.

Una de las razones más frecuentes es un problema con la partición de arranque o con el sistema de archivos. Si la partición donde vive el sistema (o el /boot) se corrompe, cambia de identificador o deja de ser accesible, el kernel no podrá montarla y el proceso se quedará colgado o lanzará errores tipo kernel panic.

También es habitual que el lío venga de una actualización de kernel mal instalada, incompatible o a medio aplicar. Si el nuevo núcleo no se lleva bien con tu hardware o está incompleto, el sistema puede congelarse durante el boot, mientras que la versión anterior de kernel seguiría funcionando sin problemas si la eliges desde GRUB.

Otro clásico es aplicar parches o actualizaciones de paquetes críticos que se quedan a medias (por ejemplo por un corte de luz o de red). En ese caso, systemd puede no ser capaz de levantar todos los servicios esenciales y terminarás con un sistema que no llega al escritorio o se queda en consola con mensajes de error.

No hay que olvidar los controladores problemáticos: aunque gran parte de los drivers se integra en el propio kernel, a veces instalamos manualmente controladores privativos (sobre todo de gráfica o WiFi) que pueden dejar el sistema en negro o bloquear el arranque tras una actualización.

Si tienes arranque dual con Windows, entra en juego otro factor: Windows puede sobrescribir el MBR o la entrada de arranque en UEFI, colocando su propio cargador como prioritario y dejando fuera a GRUB. También el Fast Boot / Fast Startup de Windows puede bloquear el acceso a particiones NTFS o generar bloqueos cuando intentas arrancar Linux.

Por último, están los problemas de configuración: una BIOS/UEFI que arranca desde el disco equivocado, un Secure Boot incompatible o una entrada EFI eliminada pueden hacer que el sistema parezca muerto cuando en realidad el disco y la instalación siguen intactos.

Cómo diferenciar un problema de hardware de uno de software

Antes de empezar a reparar a ciegas, conviene descartar que el problema sea puramente físico. Un sistema con fallos de memoria, una fuente inestable o un SSD moribundo puede hacer que cualquier intento de reparación por software sea inútil.

El primer paso es entrar en la BIOS/UEFI y revisar si la placa detecta el disco donde está instalado Linux. Si la unidad ni siquiera aparece en la lista de dispositivos o en el apartado de orden de arranque, toca comprobar cables, puertos y, en el peor caso, asumir que la unidad ha dicho basta.

Si el disco está presente, toca mirar el resto de componentes. Desde GRUB o desde una distro Live puedes lanzar MemTest86+ para comprobar RAM y CPU. Lo ideal es dejarlo funcionar al menos 8 pasadas; si aparecen líneas rojas es señal de errores de memoria y deberías cambiar los módulos afectados.

En cuanto al almacenamiento, desde un Live puedes usar smartmontools y consultar la salida de smartctl para revisar los atributos SMART del disco. Si ves valores por encima de cero en Reallocated_Sector_Ct o Current_Pending_Sector_Ct, estás ante un disco con sectores reasignados o pendientes y el fallo serio es cuestión de tiempo.

Identificar qué está fallando en el arranque

Cuando el hardware parece sano, llega el momento de averiguar en qué punto exacto se atasca el proceso de arranque de Linux. Eso marca la diferencia entre un problema de GRUB, del kernel, del sistema de archivos o de servicios.

En muchas distros, el arranque muestra un logo o una animación que oculta los mensajes reales del sistema. Si quieres ver qué ocurre en cada momento, puedes desactivar el modo silencioso editando el archivo /etc/default/grub. Cambia la línea donde aparece «quiet splash» para que quede vacía y luego ejecuta update-grub. En el siguiente arranque verás todos los mensajes en modo «verbose».

Además del arranque en sí, Linux mantiene registros muy detallados en varios ficheros de log. Si el sistema ya no inicia, puedes arrancar desde una distro Live, montar la partición raíz y revisar estos archivos:

  • /var/log/boot.log: contiene los mensajes generados durante el boot.
  • /var/log/messages o su equivalente según la distro: registro general de eventos del sistema.
  • dmesg: listado de mensajes del kernel, muy útil para ver fallos de drivers o de discos.
  • journalctl: acceso al registro de systemd, con filtros por fecha, unidad, etc.

Con esta información podrás localizar si el fallo se produce al montar una partición, al cargar un módulo del kernel o al iniciar un servicio concreto.

Comprobar la BIOS/UEFI y el orden de arranque

Recuperar un sistema Linux que no arranca

Cuando el equipo ni siquiera llega a mostrar GRUB, uno de los sospechosos habituales es la configuración de la placa. Es fundamental verificar que la BIOS/UEFI está apuntando a la unidad y partición correctas y que el firmware reconoce el disco.

Según el fabricante de la placa tendrás que pulsar Supr, Esc, F2, F10 u otra tecla durante el encendido para entrar en la configuración. Una vez dentro, revisa el menú Boot o Arranque y confirma que tu SSD o disco duro con Linux aparece y está colocado como dispositivo de arranque principal o que su entrada EFI está en primer lugar.

Si no ves la unidad, puede que haya que activar compatibilidad con hardware antiguo (CSM/Legacy), como ocurre en algunos equipos donde el disco deja de detectarse en modo UEFI puro. Si aun así no aparece, probablemente el SSD se haya averiado físicamente.

También aquí entran en juego parámetros como Secure Boot y Fast Boot; si utilizas una distro que no está firmada para Secure Boot o si compartes equipo con Windows 11, una configuración agresiva de arranque seguro puede bloquear Linux hasta que desactives o ajustes esa opción.

Secure Boot, UEFI, Fast Boot y problemas con arranque dual

Los equipos modernos arrancan casi siempre en modo UEFI y, si vienen con Windows preinstalado, suelen traer Secure Boot y Fast Boot activados. Estas medidas están pensadas para mejorar seguridad y tiempos de carga, pero pueden chocar con algunas distribuciones Linux.

La mayoría de distros populares ya incluyen firmas válidas para Secure Boot y arrancan sin líos, pero otras más exóticas o pensadas para hardware antiguo no las traen. En esos casos tendrás que entrar en UEFI, pasar el firmware a modo Legacy/CSM o desactivar Secure Boot para poder cargar el kernel de Linux.

Si tienes un sistema en arranque dual, el Fast Boot de Windows y el Fast Boot de la propia UEFI añaden otra capa de problemas. Cuando Windows usa inicio rápido mantiene parte del kernel hibernado en disco, lo que provoca que la partición NTFS quede bloqueada y la BIOS limite el acceso desde otros sistemas. El resultado: errores al intentar montar las particiones desde Linux.

La solución pasa por desactivar Fast Startup en Windows (Opciones de energía) y, si es necesario, el Fast Boot en UEFI. De esta forma ambos sistemas arrancarán siempre desde cero y no se dejarán estados intermedios que causen corrupciones o bloqueos.

Herramientas clave para recuperar un Linux que no arranca

Una vez localizado el origen del problema o al menos acotada la zona conflictiva, llega el turno de las herramientas. Linux ofrece un buen arsenal de utilidades de recuperación tanto desde el propio sistema como desde distros Live.

Entre las más típicas encontramos mount para montar particiones, fsck para revisar y reparar sistemas de ficheros, y comandos como telinit o init (en sistemas más clásicos) para cambiar runlevels y entrar en modos de usuario único pensados para reparación.

En sistemas con systemd la navaja suiza es systemctl, que permite arrancar en modos especiales como rescue.target o emergency.target. Estos targets son entornos mínimos donde se levantan solo los servicios imprescindibles y se ofrece una shell como root para hacer cambios sin interferencias.

Si el problema está en el propio gestor de arranque, entra en juego GRUB y su shell interactiva. Desde el menú puedes editar entradas al vuelo, arrancar kernels alternativos o acceder a un CLI de GRUB (grub> o grub rescue>) cuando se ha perdido la configuración.

Usar GRUB para entrar en modos de recuperación

Cuando GRUB aparece pero el sistema se queda colgado después, tienes varias opciones para usar el propio menú de arranque como puerta de entrada a tareas de reparación.

Si mantienes pulsada la tecla Shift (en muchas distros) o presionas Esc durante el inicio, deberías ver el listado de kernels disponibles. Con las teclas de dirección puedes elegir la entrada principal o entrar en las opciones avanzadas, donde encontrarás diferentes versiones del kernel y modos especiales de arranque.

Lo más interesante aquí es el Recovery Mode o modo de rescate. Cada kernel instalado suele tener su variante de recuperación, que inicia el sistema en un entorno limitado y muestra un menú con varias acciones útiles: fsck para comprobar y reparar el sistema de archivos, clean para liberar espacio en disco, dpkg para arreglar paquetes rotos, grub para actualizar el gestor de arranque, network para activar la red y root para acceder a una shell con privilegios totales.

Si tu problema viene de una actualización de kernel reciente, puedes probar a arrancar con una versión anterior desde el mismo menú avanzado. Si el sistema funciona con el kernel viejo, sabrás que el conflicto está en el nuevo núcleo o en algún módulo asociado.

Otra jugada posible es editar temporalmente la línea de arranque. Con la opción E podrás modificar los parámetros antes de lanzar el kernel y añadir, por ejemplo, systemd.unit=emergency.target para forzar el arranque en modo de emergencia, o systemd.unit=rescue.target para ir al target de rescate sin necesidad de que haya una entrada específica en el menú.

Ten en cuenta que GRUB nombra los discos y particiones de forma distinta a Linux: lo que en Linux es /dev/sda, /dev/sdb, etc., en GRUB se representa como hd0, hd1, y las particiones como hd0,0; hd0,1, etc. Esto es importante al manipular rutas de kernel e initrd desde el shell de GRUB.

Reparar GRUB con una distro Live (Boot-Repair y compañía)

Si lo que falla es GRUB en sí, ya sea por una actualización mal hecha, un arranque dual con Windows que lo ha pisado o un borrado accidental, lo más práctico suele ser tirar de un sistema Live y reinstalar o reparar el gestor de arranque.

Arranca tu equipo desde un USB Live de tu distro (por ejemplo Ubuntu o cualquier derivada de Debian) y elige la opción de probar sin instalar. Una vez en el escritorio, abre un terminal y monta la partición raíz de tu Linux si lo necesitas para trastear manualmente, o instala herramientas específicas.

Una utilidad muy cómoda para usuarios menos experimentados es Boot-Repair. En sistemas basados en Ubuntu puedes añadir su PPA, refrescar repositorios e instalarla con un par de comandos. Tras ejecutarla, la herramienta analiza las unidades, detecta los sistemas operativos presentes y ofrece una «reparación recomendada» que reinstala GRUB y actualiza sus entradas.

Cuando termina, basta con reiniciar el equipo sin el USB y comprobar si el menú de GRUB vuelve a aparecer con todas las entradas (Linux, Windows, herramientas como MemTest86+, etc.). En muchos casos esta simple operación devuelve el sistema a la vida.

Utilizar modos de emergencia y rescue de systemd

En distros modernas basadas en systemd, además del modo de recuperación que expone GRUB, puedes aprovechar los targets especiales emergency y rescue para solucionar conflictos de servicios, dependencias y montajes.

El target emergency monta el sistema de archivos raíz en modo lectura/escritura y te deja en una shell mínima de root sin lanzar apenas servicios. Es ideal cuando sospechas que un demonio, un servicio o un montaje adicional está provocando el bloqueo. Desde ahí puedes modificar ficheros de configuración, desactivar servicios con systemctl disable o revisar unidades en /etc/fstab.

El target rescue es algo menos agresivo: levanta más servicios que emergency pero sigue siendo un entorno reducido, pensado para reparar sin necesidad del entorno gráfico. También se puede alcanzar desde GRUB pasando el parámetro systemd.unit=rescue.target o cambiando de target una vez dentro con systemctl isolate rescue.target.

Revisar y reparar particiones con fdisk y fsck

Cuando la sospecha apunta al almacenamiento, las herramientas de bajo nivel son esenciales. Desde un Live o desde un modo de rescate, fdisk -l te lista todas las unidades y sus particiones, de forma que puedas localizar dónde está instalado el sistema (por ejemplo /dev/sda1, /dev/nvme0n1p2, etc.).

Una vez identificada la partición afectada, puedes recurrir a fsck para comprobar y reparar el sistema de archivos. El comando típico sería algo como sudo fsck /dev/sda1, adaptando el dispositivo al tuyo. Esta herramienta recorre la estructura, detecta inconsistencias y, en muchos casos, las corrige automáticamente.

Es importante recordar que fsck y fdisk pueden causar pérdida de datos si se usan sin cuidado. Siempre es recomendable tener copia de seguridad antes de meter mano a la tabla de particiones o a la reparación profunda de sistemas de archivos. Aun así, muchas veces son la diferencia entre rescatar el sistema o verse obligado a reinstalar.

Recuperar sistemas Linux en máquinas virtuales

Cuando Linux está instalado en una máquina virtual, el escenario cambia ligeramente: el sistema invitado depende de que sus ficheros de imagen sigan presentes en el host. Si estás en VirtualBox o VMware, conviene asegurarse primero de que la VM no ha sido borrada al liberar espacio.

Por defecto, VirtualBox guarda las máquinas en una carpeta tipo VirtualBox VMs dentro del directorio del usuario, mientras que VMware usa rutas similares bajo la carpeta vmware. Si esos directorios desaparecen o los VDI/VMDK han sido borrados, recuperar la máquina virtual completa será casi imposible sin copias de seguridad.

Para minimizar riesgos, es buena idea instalar herramientas de integración como Guest Additions en VirtualBox o VMware Tools. Gracias a ellas puedes compartir carpetas entre el host y el invitado y trabajar con tus archivos desde el sistema principal. Así, si la VM muere, tus documentos importantes seguirán a salvo en el host o incluso en la nube.

Reinstalar Linux sin perder (o perdiendo lo mínimo) tus datos

Cuando después de todos los intentos el sistema sigue sin arrancar, llega un punto en el que reinstalar la distribución es la opción más rápida y limpia. Pero eso no significa necesariamente formatear todo y empezar de cero.

Muchas distros, especialmente las basadas en Ubuntu, permiten reinstalar el sistema manteniendo la carpeta personal y, en algunos casos, las aplicaciones. El instalador detecta que ya hay una instalación previa y ofrece una opción para sustituir solo los componentes del sistema sin tocar los datos del usuario.

La jugada ideal, sin embargo, es haber planificado esto desde el principio. Si durante la primera instalación creas tres particiones separadas: boot, raíz (/), y /home para los datos, el día que el sistema se rompa podrás reinstalar la distro borrando solo las particiones de arranque y de sistema, respetando intacta la que guarda tus documentos.

Si no te tomaste esa molestia y todo está en una única partición, aún puedes arrancar desde un Live y copiar tus archivos a un disco externo antes de formatear. Mientras el disco esté legible, podrás montar la partición y extraer documentos, fotos, proyectos, etc., sin depender de herramientas de recuperación forense.

Metodología de recuperación en distros Debian y derivadas

Para quienes vienen de Windows, puede ayudar mucho tener una “hoja mental” de pasos a seguir cuando un Debian, Ubuntu, Zorin o similar no arranca, al estilo de lo que se hace con el modo seguro y la restauración del sistema.

Un esquema razonable puede ser:

  • Primero, intentar entrar en el modo de recuperación desde GRUB y usar herramientas como fsck, dpkg o el shell root para corregir problemas evidentes.
  • Si no es posible, arrancar con un USB Live de la distro (o incluso con distros de rescate tipo SystemRescue o Rescatux) para montar el disco, revisar logs, ejecutar fsck y, si hace falta, chrootear a la instalación para actualizar paquetes y GRUB.
  • Si el sistema sigue sin arrancar, valorar la opción de reparar o reinstalar GRUB con herramientas como Boot-Repair o manualmente.
  • Como último escalón, reinstalar la distribución manteniendo o salvando datos y después aplicar las buenas prácticas de particionado y copias de seguridad para el futuro.

No existe una «máquina del tiempo» integrada tan vistosa como la de macOS, pero con herramientas como rsync, snapshots de Btrfs o soluciones de copia incremental puedes conseguir algo muy similar, siempre que te acuerdes de configurarlo antes del desastre.

Distros Linux de rescate: tu navaja multiusos cuando nada arranca

Más allá de las herramientas incluidas en cada distribución generalista, existen distribuciones de rescate pensadas específicamente para arreglar equipos que no arrancan. Son sistemas arrancables desde USB o CD que cargan casi todo en RAM y traen de serie un buen arsenal de utilidades.

Estas distros de rescate suelen incluir herramientas de gestión de disco y sistemas de archivos, utilidades para reparar gestores de arranque, diagnóstico de hardware y recuperación de datos. La idea es poder analizar y reparar sin necesidad de tocar de inmediato la instalación dañada.

Entre las más conocidas están SystemRescue, con soporte para sistemas de archivos modernos (ext4, XFS, Btrfs, NTFS, ZFS) y herramientas como GParted, fsck, testdisk o ddrescue; Rescatux, con una interfaz gráfica muy enfocada a tareas comunes de reparación (GRUB, EFI, contraseñas de Windows y Linux) y Finnix, mucho más ligera y orientada a usuarios acostumbrados a la línea de comandos y a la administración remota.

Para un administrador de sistemas o cualquier usuario que quiera ir preparado, llevar siempre un USB con una distro de rescate actualizada es casi obligatorio. Hace la diferencia entre estar bloqueado horas y resolver el problema en pocos minutos.

Buenas prácticas para evitar que el sistema vuelva a fallar

Una vez has sobrevivido a un susto de este tipo, lo lógico es intentar reducir las probabilidades de revivir la misma película. No se puede blindar un sistema al 100 %, pero sí se pueden minimizar riesgos.

Lo primero es ser prudente con las actualizaciones de kernel y de paquetes críticos. Es recomendable leer brevemente las notas de cambio cuando se trata de kernels nuevos o de drivers sensibles (gráfica, RAID, etc.), y mantener al día el resto del sistema para beneficiarse de correcciones de errores y parches de seguridad.

También es muy útil adoptar la costumbre de hacer copias de los ficheros de configuración antes de editarlos. Guardar un archivo original con extensión .bak permite revertir fácilmente un cambio mal hecho desde un Live o un modo de rescate sin necesidad de recordar exactamente qué modificaste.

En cuanto a los datos, la recomendación estrella es separar la partición del sistema de la de los archivos personales y mantener copias de seguridad periódicas en otra unidad o en la nube. Así, el día que el disco principal falle físicamente, perderás como mucho lo que no se haya sincronizado en tu última copia.

Por último, cuidar un poco el hardware también ayuda: usar SSD en lugar de HDD mecánicos, ampliar la RAM cuando el equipo va justo, evitar apagar «a lo bruto» y vigilar temperaturas y alimentación prolonga la vida útil del sistema y reduce los fallos raros en el arranque.

Con todo esto en mente, un Linux que hoy parece completamente muerto suele convertirse en un sistema recuperable con paciencia, buen diagnóstico y las herramientas adecuadas, y una vez aprendido el proceso, afrontarás el siguiente fallo con mucha más tranquilidad y control.

Cómo mantener un sistema estable durante años
Artículo relacionado:
Windows Boot Recovery Toolkit: utilidades clave para rescatar tu PC

Add as preferred source