Cómo reparar GRUB sin LiveCD paso a paso

Última actualización: 15 de enero de 2026
  • GRUB suele romperse tras cambios en particiones, instalaciones de otros sistemas o actualizaciones, pero casi siempre es recuperable.
  • La propia consola de GRUB permite localizar /boot/grub, cargar el kernel manualmente y arrancar sin depender de un LiveCD.
  • Una vez iniciado el sistema, es esencial reinstalar y actualizar GRUB desde Linux para evitar que el fallo se repita.
  • En casos más graves, los métodos con LiveUSB, chroot y herramientas como Boot-Repair ofrecen una reparación más profunda.

Reparar GRUB sin LiveCD

Si alguna vez has encendido tu ordenador y, en lugar de ver el logo de tu distribución, te has topado con una pantalla negra y un mensaje del tipo «error: no such device» o «grub rescue», sabrás perfectamente la sensación de pánico que provoca. De repente parece que has perdido todo el sistema, que vas a tener que formatear y que tus datos están en el aire… pero la realidad es que, en la mayoría de casos, tiene arreglo sin llegar a esos extremos.

Lo bueno es que, aunque parezca un problema grave, reparar GRUB sin LiveCD es totalmente posible aprovechando la propia consola de GRUB, siempre que el daño no sea catastrófico en el disco. Con un poco de calma, unas cuantas órdenes bien tecleadas y entendiendo qué está pasando por detrás, puedes volver a arrancar tu Linux, reinstalar el gestor de arranque y dejarlo listo para futuros reinicios.

Qué es GRUB y por qué se estropea tan a menudo

Error de arranque GRUB

Antes de ponernos a teclear como locos, conviene tener claro qué papel juega GRUB en el arranque de tu equipo. GRUB 2 es el gestor de arranque que usan la mayoría de distribuciones GNU/Linux modernas: se instala normalmente en el MBR o en la cabecera de la partición y es el encargado de mostrar el menú con los sistemas operativos disponibles y de cargar el kernel de Linux con sus parámetros adecuados.

Este gestor de arranque se apoya en los archivos que residen, por norma general, en el directorio /boot/grub de tu instalación: módulos, ficheros de configuración, imágenes del kernel, initrd, etc. Si ese directorio deja de ser accesible, se mueve, se corrompe o cambia de disco sin que GRUB se entere, empiezan los errores de tipo “no such device”, “unknown filesystem” o el temido prompt de grub rescue>.

Las causas típicas de que el gestor se rompa son bastante conocidas: instalar Windows después de Linux y que sobrescriba el MBR, tocar las particiones (redimensionar, mover, borrar, crear nuevas) con herramientas tipo GParted o similares, o incluso una actualización de kernel o del propio sistema que, por alguna razón, deja referencias incoherentes en la configuración de GRUB.

A todo esto se suma que algunos usuarios prefieren instalar /boot en una partición separada, algo muy habitual en configuraciones avanzadas o en entornos donde se quiere cifrar el resto del disco. En esos casos, cualquier cambio en esa partición o en su numeración de disco puede dejar a GRUB sin saber dónde encontrar sus propios módulos y su configuración.

Tipos de errores y modos de consola de GRUB

Cuando GRUB falla, normalmente no desaparece sin más: suele dejarnos en algún tipo de consola o menú de rescate que podemos aprovechar para arrancar el sistema de forma manual. El comportamiento cambia ligeramente según la gravedad del problema y la versión de GRUB que tengas instalada.

En muchas distribuciones verás que el sistema intenta cargar GRUB y acaba cayendo en un prompt con el texto grub rescue>. Este modo es bastante limitado, pero permite lanzar algunos comandos clave como ls, set o insmod, suficientes para localizar la partición correcta y forzar la carga del módulo de Linux.

En otros casos, sí llegarás a ver el menú normal de GRUB (la lista de sistemas operativos), pero el intento de arrancar falla, o el menú aparece corrupto. Desde ahí puedes pulsar la tecla c para entrar a la línea de comandos completa de GRUB, mucho más potente que el modo rescue, con un conjunto más amplio de órdenes disponibles.

En instalaciones más veteranas todavía existen algunos sistemas con GRUB Legacy (no GRUB 2), como ciertas versiones de CentOS 5/6 u otras distribuciones antiguas. En ese caso, la sintaxis de las órdenes cambia un poco, aunque la idea general es la misma: localizar el directorio /boot, indicar a GRUB dónde está su raíz y cargar manualmente el kernel y el initrd.

Cómo reparar GRUB sin LiveCD usando el modo rescue

Cuando el equipo no encuentra el gestor de arranque correctamente configurado, es bastante habitual que veas un mensaje del estilo “Error: no such device” seguido de “grub rescue>”. Esto significa que GRUB ha llegado a ejecutarse, pero no sabe dónde están sus archivos de configuración o los módulos que necesita.

  Linux 6.14: Novedades, Mejoras de Seguridad y Soporte de Hardware

En este escenario dispones de un mini-intérprete de comandos desde el que podrás descubrir las particiones, localizar /boot/grub y cargar el kernel “a mano”. El proceso puede sonar largo, pero es bastante sistemático.

Listar discos y particiones disponibles

Lo primero es averiguar qué discos y particiones está viendo GRUB en tu máquina. Para ello, en el prompt grub rescue> escribe:

ls

El comando mostrará algo similar a (hd0) (hd0,1) (hd0,2) (hd0,3) (hd1) (hd1,1) (hd1,2). Cada hdX representa un disco duro distinto: hd0 sería el primer disco físico, hd1 el segundo, y así sucesivamente. Las variantes con coma, como (hd0,1), indican las particiones numeradas de ese disco.

Según tu equipo, verás tal vez un único disco como (hd0) con dos o tres particiones, o varios discos: (hd0,1) (hd1,1) (hd1,5) (hd2,1) (hd3,1). En cualquier caso, el objetivo ahora es simple: ir abriendo cada partición hasta encontrar la que contiene el directorio /boot/grub.

Localizar la partición con /boot/grub

Para inspeccionar el contenido de una partición, volvemos a usar ls pero añadiendo el nombre de la partición y una barra al final. Por ejemplo: inspeccionar el contenido te ayudará a identificar si es la correcta.

ls (hd0,1)/

Si esa partición tiene un sistema de archivos que GRUB reconoce, mostrará el listado de directorios: verás nombres como bin, etc, home, boot, root, etc. En ese caso, esa partición podría ser tu raíz (/) o una partición separada de /boot, según la estructura que tuvieras al instalar el sistema. Si el listado indica un sistema de archivos que GRUB reconoce, vas por buen camino.

Si al ejecutar el comando anterior ves entre los directorios uno llamado boot, puedes seguir profundizando y comprobar si contiene la carpeta grub:

ls (hd0,1)/boot/grub

Cuando encuentres un listado de archivos entre los que aparecen módulos como linux.mod u otros ficheros típicos de GRUB, ya tendrás localizada la partición que nos interesa. Si no aparece nada o da error, sigue probando con el resto de particiones: ls (hd0,2)/, ls (hd1,1)/, etc., hasta dar con la buena.

Indicar a GRUB dónde están sus archivos

Una vez identificada la partición correcta, hay que decirle a GRUB dónde están sus módulos y su configuración. Supongamos que hemos descubierto que /boot está en (hd0,1). El siguiente paso será fijar el prefijo:

set prefix=(hd0,1)/boot/grub

Con esta instrucción, el gestor sabrá que sus archivos de soporte se encuentran en esa ruta. También tenemos que decirle cuál es la partición raíz que debe utilizar para buscar el kernel y el resto de datos del sistema:

set root=(hd0,1)

Es importante escribir correctamente el par (disco,partición) y usar siempre la barra final / cuando listamos contenidos con ls. Ten presente también que el teclado en la consola de GRUB suele estar en distribución americana, así que las teclas de los paréntesis y la barra pueden no coincidir con lo que ves serigrafiado. Una buena práctica es asegurarte de fijar el prefijo correctamente antes de intentar cargar módulos.

Cargar los módulos de GRUB y el kernel de Linux

Con el prefijo configurado, el siguiente paso será forzar la carga del módulo de Linux de GRUB. En muchas guías verás algo como:

insmod (hd0,1)/boot/grub/linux.mod

En bastantes sistemas modernos el módulo apropiado puede ser normal.mod u otros, pero la idea es la misma: si dudas de los nombres exactos, utiliza el comando ls (hd0,1)/boot/grub para listar los archivos y elige el módulo que proceda según tu versión de GRUB. La función de insmod es cargar el módulo necesario para poder continuar el proceso de arranque. Ten en cuenta que insmod es la instrucción que realmente incorpora el módulo al cargador.

A continuación tendrás que cargar la imagen del kernel de Linux indicando su ruta dentro del sistema de archivos. Ejemplo de arranque: linux /boot/vmlinuz-4.13.3-generic root=/dev/sda1

El nombre exacto del kernel variará en tu máquina (puede ser vmlinuz-2.6.32-23-generic, vmlinuz-6.1.0-10-amd64 o cualquier otra versión). Puedes usar, de nuevo, ls /boot para ver qué imágenes tienes disponibles y escoger la más reciente. Lo importante es no olvidar el parámetro root=/dev/sdXn con la partición raíz correcta.

Para que no haya líos con la equivalencia entre la nomenclatura de GRUB y la de Linux, ten en cuenta que hd0 corresponde a /dev/sda, hd1 a /dev/sdb, hd2 a /dev/sdc, y así sucesivamente. El número de partición también cambia de formato: (hd0,1) se traduce en /dev/sda1, (hd1,2) en /dev/sdb2, etc.

En algunos casos, después de cargar la imagen del kernel, conviene cargar la imagen initrd (el disco RAM inicial) si tu distribución lo requiere. El comando típico sería:

initrd /initrd.img

Al igual que con el kernel, puedes consultar qué ficheros initrd tienes disponibles con ls / o ls /boot y usar la tecla TAB para autocompletar los nombres y evitar errores de escritura.

  La clasificación de los sistemas de información explicada de manera simple

Arrancar el sistema y reinstalar GRUB desde Linux

Con el kernel y el posible initrd cargados, solo falta decirle a GRUB que proceda a iniciar el arranque. Para ello, escribe simplemente:

Arrancar: boot

Si todo va bien, el kernel tomará el control, el sistema operativo arrancará como de costumbre y podrás iniciar sesión en tu Linux. Llegados a este punto, habrás conseguido salvar la situación sin necesidad de LiveCD, pero todavía queda un paso importante: reinstalar GRUB para que no vuelva a romperse en el siguiente reinicio.

Una vez dentro del sistema, abre un terminal con permisos de superusuario (root o usando sudo) y ejecuta:
grub-install /dev/sdX

donde /dev/sdX es el disco (no la partición) donde quieres colocar el gestor, por ejemplo /dev/sda o /dev/sdb si estás en otro disco. Recuerda que aquí no se debe indicar el número de partición: el comando escribe el gestor en el MBR o en el área de arranque del disco completo.

En muchas distribuciones basadas en Debian o Ubuntu es muy recomendable, además, regenerar el archivo de configuración de GRUB para asegurarte de que detecta todos los sistemas instalados correctamente. Para ello puedes usar:

Ejecuta: update-grub o update-grub2

y, si quieres dejar también al día la imagen de arranque inicial, actualizar initramfs con:

Comando: update-initramfs -u

Uso de la consola de GRUB desde el menú de arranque

En otras ocasiones, el problema con GRUB no es tan radical y sí llegas a ver el menú de arranque, pero algún sistema no arranca, aparece un error al seleccionar una entrada concreta o simplemente sospechas que el menú está mal configurado.

En estos casos, cuando veas el menú de GRUB al encender el equipo, puedes pulsar las flechas de dirección (arriba o abajo) para detener la cuenta atrás de arranque automático, y a continuación pulsar la tecla c para acceder a la línea de comandos completa.

Desde esa consola avanzada, los comandos son básicamente los mismos que en el modo rescue, pero dispondrás de más utilidades para inspeccionar el sistema. Por ejemplo, puedes usar ls para listar discos y particiones, set para ver y modificar las variables de entorno de GRUB, insmod para cargar módulos adicionales o incluso comandos como cat para leer el contenido de ficheros de texto.

Siguiendo el mismo esquema, primero determinarás qué discos y particiones tienes con:

ls

y verás una salida del tipo (hd0) (hd0,msdos1) (hd0,msdos5) o (hd0,1) (hd1,1) (hd1,5) (hd2,1), dependiendo de si tu tabla de particiones es MBR (msdos) o GPT, y del número de discos presentes en el equipo.

Luego irás comprobando cada partición con órdenes como:

ls (hd0,msdos1)/

hasta encontrar el directorio boot y dentro de él la carpeta grub. Una vez identificado, repetirás la jugada de fijar el prefijo y la raíz con:

set prefix=(hd0,msdos1)/boot/grub
set root=(hd0,msdos1)

A partir de ahí, buscarás qué kernels tienes disponibles, listando el contenido de /boot:

Lista /boot: ls /boot

y elegirás uno de ellos para cargarlo con:

linux /boot/vmlinuz-6.1.0-10-amd64 root=/dev/sda1

adaptando la versión del kernel y la partición raíz a tu caso. Recuerda nuevamente la correspondencia de discos: hd0 → /dev/sda, hd1 → /dev/sdb, hd2 → /dev/sdc, etc. Puedes usar la tecla TAB para autocompletar rutas y nombres de archivo.

Por último, cargarás el initrd si es necesario y ejecutarás el comando boot para iniciar el sistema. Una vez logueado, la operación a realizar es la misma que en el escenario anterior: reinstalar GRUB en el disco y actualizar su configuración usando grub-install /dev/sda y update-grub.

Reparar GRUB en sistemas con GRUB Legacy

Aunque hoy en día la mayoría de distribuciones han adoptado GRUB 2, todavía se pueden encontrar equipos viejos o sistemas específicos que usan GRUB Legacy. La interfaz en estos casos es algo diferente, pero el concepto de fondo no cambia: se puede usar una shell interactiva del cargador para volver a arrancar el sistema.

Al arrancar, este GRUB clásico suele permitir acceder a su línea de comandos pulsando una tecla concreta (a menudo la tecla c o la tecla e para editar entradas). Una vez delante del prompt, dispones de comandos como find que resultan especialmente útiles.

Por ejemplo, si quieres localizar dónde está el directorio /boot que contiene las imágenes del kernel y los initrd, puedes usar:

Comando find: find /boot/grub/stage1 o una ruta similar

Dependiendo de si /boot es una partición independiente o está dentro de la raíz, la ruta será /boot o simplemente / con otras subcarpetas. Cuando encuentres la partición correcta, GRUB Legacy suele mostrar algo como (hd0,0) u otro par disco/partición que podrás reutilizar.

  Cómo volver a un punto anterior en Windows sin perder datos

A continuación tendrás que definir la raíz de GRUB con una instrucción del estilo:

Ejemplo de root: root (hd0,0)

y decirle dónde están el kernel y el initrd. De nuevo, no suele ser necesario escribir los nombres completos de los archivos, ya que la tecla TAB hace de autocompletado y te ayuda a evitar errores de tecleo en rutas largas.

Para afinar todavía más, puedes utilizar el comando cat para leer el archivo de configuración de GRUB (por ejemplo, /boot/grub/menu.lst) y comprobar qué dispositivo se monta sobre el directorio raíz, qué parámetros de kernel se pasan, etc. Es una forma muy práctica de copiar la misma configuración que usaba el sistema cuando funcionaba bien.

Finalmente, cuando tengas las líneas root, kernel e initrd listas, bastará con ejecutar el comando boot para iniciar el sistema. Una vez dentro, el último paso será reinstalar GRUB desde el propio Linux con grub-install sobre el disco correspondiente, asegurando que en los siguientes reinicios no tengas que repetir el proceso manual.

Otros métodos habituales (con LiveCD, chroot y Boot-Repair)

Hasta aquí hemos visto cómo salvar la situación únicamente con la consola de GRUB, sin tener que recurrir a ningún medio externo. Sin embargo, conviene conocer también los métodos clásicos con LiveCD/LiveUSB y herramientas gráficas, porque en algunos casos el daño es tan grande que no queda otra que arrancar desde un sistema auxiliar.

Una técnica muy usada en distribuciones basadas en Debian y Ubuntu es arrancar desde un LiveCD o LiveUSB (por ejemplo, una imagen de Ubuntu, Linux Mint, Debian Live, etc.), montar la partición raíz del sistema dañado, montar también /boot si es una partición separada y luego hacer un chroot sobre ese sistema de archivos para reinstalar GRUB como si estuviéramos operando desde la propia instalación.

El proceso, a grandes rasgos, consiste en identificar las particiones con fdisk -l, determinar cuál es la raíz (por ejemplo, /dev/sda2) y cuál la partición de arranque si existe (por ejemplo, /dev/sda7). Después se montan con:

Montar particiones (ej.):
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda7 /mnt/boot (si tienes /boot separado)

y se hace el bind mount de /dev, /dev/pts, /proc y /sys dentro de /mnt:

Bind mounts:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys

A partir de aquí, se entra en el sistema instalado usando:

Accede con: sudo chroot /mnt

y ya desde dentro se puede ejecutar grub-install apuntando al disco:

Instalación desde chroot: grub-install --boot-directory=/boot/ --recheck /dev/sda

para volver a cargar el gestor de arranque en el MBR o en el área equivalente, seguido de:

Genera la configuración: grub-mkconfig -o /boot/grub/grub.cfg

para regenerar el archivo de configuración. Al salir de chroot con exit y reiniciar el equipo (sudo reboot), lo normal es que el menú de GRUB vuelva a aparecer con total normalidad.

Otra opción muy cómoda para usuarios que prefieren huir de la terminal es la herramienta Boot-Repair, que se puede instalar en un entorno Live de Ubuntu y ofrece una interfaz gráfica capaz de detectar instalaciones de sistemas operativos y reparar GRUB de forma casi automática. Basta con ejecutar la herramienta, seleccionar la “reparación recomendada” y dejar que analice y reescriba el cargador.

Aunque estas soluciones basadas en LiveCD o utilidades externas son muy prácticas, la ventaja de dominar las técnicas que hemos visto al principio es que no dependes de tener un USB o un disco a mano. Con la propia consola de GRUB puedes salir del paso en muchas situaciones, sobre todo cuando el problema es “solo” que el gestor ha perdido la referencia correcta a la partición donde reside /boot.

Con todo lo comentado, queda claro que un GRUB roto no significa necesariamente un sistema perdido: dispones de herramientas en el propio cargador, en la línea de comandos y en el entorno Live para localizar la partición correcta, cargar el kernel manualmente, arrancar tu GNU/Linux y reinstalar el gestor de arranque para que vuelva a funcionar como el primer día.

Linux modo Live ventajas
Artículo relacionado:
Linux en modo Live y Live USB: ventajas, usos y límites