Cómo usar GRUB Rescue para reparar Linux

Publicado: 2023-05-14
Pantalla de inicio de Ubuntu Linux en una computadora portátil
Jordan Gloor / Instructores Geek
Si sus shells GRUB muestran un aviso "grub>", puede usar los comandos ls , set , linux e initrd para arreglar su sistema Linux. Si, en cambio, ve un mensaje de "rescate de grub>", use los comandos set , insmod , linux e initrd para iniciar su PC.

Si su computadora Linux no puede iniciarse en su sistema operativo, es probable que se encuentre frente a un mensaje en el shell de GRUB. Siga estos pasos para reparar sus procesos de arranque dañados.

Tabla de contenido

Cuando su gestor de arranque no arranca
Uso de la consola GRUB
Uso de la consola de rescate de GRUB
Otros posibles remedios

Cuando su gestor de arranque no arranca

Hay muy pocos problemas informáticos que hagan que su corazón se hunda tan profunda y rápidamente como la falta de arranque. Sin un sistema operativo que funcione, su computadora no es realmente una computadora.

Puede ser un problema muy opaco, sin una manera fácil de profundizar en la causa raíz. Sin acceso a Linux, no puede usar ninguna de las herramientas y procesos de diagnóstico habituales que usaría para investigar el problema. Y sin determinar cuál es el problema, ¿cómo puede solucionarlo?

En Linux, GRUB es el software que controla el proceso de arranque. Si tiene varios sistemas operativos instalados, le permite elegir el que desea iniciar.

GRUB está controlado por su configuración. También se basa en otros archivos de soporte para realizar sus funciones. Si alguno de estos falta o se corrompe, GRUB no funcionará. Los cambios en los discos duros y las particiones de su computadora deben reflejarse en la configuración de GRUB. Si este no es el caso, las instrucciones de GRUB no tendrán sentido y su proceso de arranque no funcionará.

Cómo grabar un archivo ISO en una unidad USB en Linux
RELACIONADO Cómo grabar un archivo ISO en una unidad USB en Linux

Como nota al margen, lo que todos llamamos GRUB es en realidad GRUB 2. Esta es una versión avanzada de GRUB que se lanzó en 2012. Entre otros cambios, cambió la forma en que se creó el archivo "grub.cfg" y le permitió arranque desde medios extraíbles.

Si GRUB no puede cargar un sistema operativo, se quedará mirando un aviso en el shell de GRUB. Este es un entorno minimalista que te permitirá realizar un puñado de acciones. Sin embargo, si se realizan correctamente, estos pasos pueden resucitar su computadora.

Hay dos shells GRUB diferentes. Dependiendo de la causa raíz del problema, es posible que se encuentre en un indicador de shell de GRUB:

 comida>

o en un indicador de shell de rescate de GRUB:

 rescate de larvas>

El shell de rescate de GRUB es aún más restringido que el shell de GRUB, pero aún así tiene suficiente potencia para que su computadora arranque. Una vez que su computadora haya arrancado, estará en una posición mucho mejor para curar la causa raíz.

Uso de la consola GRUB

El shell de GRUB es una interfaz de línea de comandos que le permite usar un pequeño subconjunto de comandos de Linux. Si se encuentra aquí en lugar de en su pantalla de inicio de sesión habitual, significa que su proceso de arranque está en mal estado.

El indicador de shell de GRUB

Los comandos a los que tiene acceso no son los mismos que en las versiones habituales de Linux. Por ejemplo, el comando ls de shell de GRUB no es el comando Bash ls . Tiene muy poco en común con él. Podemos ver esto usando la opción --help .

 ls--ayuda 

Uso de la opción --help con la versión de shell de GRUB de ls

Enumera solo cinco opciones. Eso está muy lejos de las docenas de opciones compatibles con ls en Bash. Sin embargo, incluso con nuestra paleta de comandos algo silenciada, aún podemos rectificar la situación.

Cuando se le solicite, escriba ls y presione "Enter".

 ls 

El resultado de la versión de shell de GRUB de ls, que muestra unidades y particiones

En esta computadora, enumera tres elementos.

  • (hd0) es el primer disco duro.
  • (hd0,gpt1) es la primera partición en el primer disco duro.
  • (hd0,gpt2) es la segunda partición en el primer disco duro.

La etiqueta "gpt" representa la tabla de particiones GUID. Necesitamos incluir los corchetes “ () ” cuando hacemos referencia a una partición, pero podemos omitir la etiqueta.

Para mirar las particiones a su vez, usaremos ls .

 ls (hd0,1)
 ls (hd0,2) 

Uso de la versión de shell de GRUB de ls para identificar la partición de Linux

Hemos encontrado que la segunda partición tiene un sistema de archivos Linux. Investigaremos un poco más al mirar el directorio raíz de esa partición.

 ls (hd0,2)/ 

Uso de la versión de shell de GRUB de ls para examinar una partición en particular

Claramente, esta es la partición de Linux, con el directorio de arranque en ella. Aquí es donde se almacenan los archivos GRUB, las imágenes de arranque de Linux y otros archivos de arranque.

En esta computadora, necesitaremos hacer referencia a la partición (hd0,2) cuando emitamos nuestros comandos. En su computadora, usaría cualquier partición en la que encuentre su instalación de Linux.

Podemos usar el comando cat para buscar archivos de texto agregando la ruta del directorio y el nombre del archivo al nombre de la partición, así:

 gato (hd0,2)/etc/problema 

Mirando la versión de Linux usando el comando cat en el shell de GRUB

En instalaciones de arranque múltiple, esta es una forma útil de verificar que está en la partición correcta. También es excelente para mirar dentro de los archivos de configuración.

Aquí, estamos usando el comando ls con las opciones -l (largo) y -h (tamaños legibles por humanos) para enumerar los archivos en el directorio "/ boot".

 ls -lh (hd0,2)/arranque 

Listado de archivos en el directorio /boot usando la versión GURB de ls

Para que esta computadora arranque, necesitamos decirle a GRUB que nuestra partición Linux recién descubierta contiene los archivos de arranque.

 establecer raíz = (hd0,2)

Necesitamos especificar desde qué kernel de Linux arrancar. Esto lo hacemos con el comando linux . Tenga en cuenta que también tenemos que proporcionar el directorio raíz utilizando el esquema habitual de nomenclatura de partición y disco duro de Linux.

 linux /boot/vmlinuz-6.2.0-20-raíz genérica=/dev/sda2

En nuestra computadora de ejemplo, estamos usando (hd0) , que es el primer disco duro. Esto se llama sda en la nomenclatura habitual de Linux. Descubrimos que la segunda partición es la partición de Linux, por lo que debemos especificar sda2 .

Su máquina puede ser diferente. Por ejemplo, si su partición de Linux se informa como (hd2,1) , eso significa que la partición uno en el tercer disco duro o sdc1 .

También debemos especificar qué imagen del sistema de archivos basada en RAM usar cuando se inicia la computadora. Esto debe usar el mismo componente numérico que el kernel de Linux que estamos usando.

 initrd /boot/initrd.img-6.2.0-20-genérico 

Configuración de los parámetros de arranque en el shell de GRUB

Ahora, para iniciar nuestro sistema, escriba "boot" y presione "Enter".

Esto debería iniciar su computadora en Linux. Eso nos tiene funcionando de nuevo, pero todavía tenemos que arreglar GRUB para que no tengamos que hacer esto cada vez que encendemos nuestra computadora.

Ejecutaremos update-grub . Esto escaneará nuestro sistema, identificará los sistemas operativos y creará una nueva configuración de GRUB. Necesitamos ejecutar esto como usuario root.

 sudo update-grub 

Ejecutando update-grub para reconstruir el archivo grub.cfg

En raras ocasiones, es posible que también deba reinstalar el cargador de arranque GRUB, usando grub-install .

 sudo grub-install /dev/sda

Tenga en cuenta que no necesita especificar en qué partición instalar, solo en qué unidad. En instalaciones normales, es la misma unidad en la que se encuentra su Linux.

La prueba del pudín viene con el próximo reinicio. Su computadora debería reiniciarse normalmente.

RELACIONADO: Cómo configurar los ajustes del cargador de arranque GRUB2

Uso de la consola de rescate de GRUB

Dependiendo de la naturaleza del problema de arranque, es posible que no lo coloquen en el shell de GRUB. Es posible que se quede en el modo de rescate de GRUB. Si ese es el caso, su aviso se verá así:

 rescate de larvas>

Los comandos que necesitamos emitir en este shell son diferentes. Necesitamos usar ls para encontrar la partición de Linux, como si estuviera usando el shell de GRUB. Una vez identificada la partición de Linux, puede continuar e ingresar estos comandos.

Recuerde usar los identificadores de unidad y los números de versión del kernel que sean correctos para su computadora. El comando insmod carga módulos del kernel.

 establecer prefijo=(hd0,2)/arranque/grub
 establecer raíz = (hd0,2)
 insmod normales
 insmod linux
 linux /boot/vmlinuz-6.2.0-20-raíz genérica=/dev/sda2
 initrd /boot/initrd.img-6.2.0-20-genérico 

Configuración de los parámetros de arranque en el shell de rescate de GRUB

Luego puede escribir "arranque" y presionar "Entrar" para reiniciar su computadora. Una vez que se haya reiniciado y haya iniciado sesión, actualice GRUB con el comando update-grub .

Otros posibles remedios

Si el problema resulta que faltan archivos de arranque, como los archivos "vmlinuz" e "initrd.img", puede arrancar su computadora desde un Live DVD o una unidad flash USB de arranque de Linux y copiar los archivos faltantes en su lugar.

Tenga en cuenta que los archivos "vmlinuz" e "initrd.img" deben tener los mismos números de versión porque funcionan como un par coincidente.

RELACIONADO: Cómo crear un Linux Live USB de arranque en su Mac