Introducción
GRUB (Grand Unified Bootloader) es una herramienta para iniciar y cargar kernels de sistemas operativos y el cargador de arranque predeterminado para sistemas basados en el kernel de Linux. Aunque se ejecuta primero cuando se enciende una máquina, los usuarios habituales rara vez ven GRUB en acción. Funciona automáticamente y no requiere intervención del usuario.
Sin embargo, al intentar arrancar otro sistema operativo junto con Linux en la misma máquina, el cargador de arranque del otro sistema puede sobrescribir GRUB, lo que hace que el sistema Linux no pueda arrancar.
Este artículo le mostrará cómo solucionar el error de arranque de Linux mediante los comandos de rescate de GRUB y la herramienta de reparación de arranque.
Requisitos previos
- Una cuenta con privilegios de sudo.
- Acceso a la línea de comandos.
Problemas de arranque de GRUB
La razón más común por la que GRUB no arranca en el sistema operativo es que el gestor de arranque de otro sistema operativo sobrescribe la configuración de arranque de GRUB. El problema ocurre durante un intento de arranque dual con una instalación de Linux existente. Otro motivo es la eliminación accidental de los archivos de configuración de GRUB.
Cuando GRUB no puede iniciar el sistema, aparece el aviso de GRUB Rescue.
El ejemplo anterior muestra que GRUB muestra el error "no existe tal partición" antes de mostrar el grub rescue
oportuno. Otro error común de GRUB es "sistema de archivos desconocido", seguido del mismo aviso.
A veces, la pantalla puede mostrar el grub
solo aviso.
Comandos de rescate de GRUB
A continuación se muestra la lista de los comandos GRUB Rescue más utilizados. Use los comandos en las indicaciones mencionadas en la sección anterior.
Comando | Descripción | Ejemplo |
boot | Comenzar a arrancar (accesos directos:F10 , CTRL + x ). | El comando se emite sin argumentos. |
cat | Escribe el contenido de un archivo en la salida estándar. | cat (hd0,1)/boot/grub/grub.cfg |
configfile | Cargar un archivo de configuración. | configfile (hd0,1)/boot/grub/grub.cfg |
initrd | Cargue el archivo initrd.img. | initrd (hd0,1)/initrd.img |
insmod | Cargar un módulo. | insmod (hd0,1)/boot/grub/normal.mod |
loopback | Montar un archivo de imagen como dispositivo. | loopback loop0 (hd0,1)/iso/image.iso |
ls | Muestra el contenido de un directorio o partición. | ls (hd0,1) |
lsmod | Mostrar una lista de módulos cargados. | El comando se emite sin argumentos. |
normal | Activar el módulo normal. | El comando se emite sin argumentos. |
search | Buscar dispositivos. Opción --file busca archivos, --label busca etiquetas, --fs-uuid busca el UUID del sistema de archivos. | search -file [filename] |
set | Establecer una variable de entorno. Si se emite sin argumentos, el comando imprime la lista de todas las variables de entorno y sus valores. | set [variable-name]=[value] |
Reparación de fallos de arranque
Este tutorial cubre dos formas de resolver problemas de arranque de GRUB, usando el mensaje de rescate de GRUB y la herramienta de reparación de arranque .
A través de Terminal Grub
1. Utilice el comando set sin argumentos para ver las variables de entorno:
set
El resultado del ejemplo muestra que GRUB está configurado para arrancar desde (hd0,msdos3)
partición:
2. El comando ls enumera las particiones disponibles en el disco.
ls
La salida muestra la lista de particiones.
Usa el ls
comando para encontrar la partición que contiene el boot
directorio.
ls [partition-name]
El ejemplo muestra el boot
directorio en el (hd0,msdos1)
partición.
3. Configure la partición de arranque como el valor de root
variable. El ejemplo usa la partición llamada (hd0,msdos1)
.
set root=(hd0,msdos1)
4. Cargue el normal
modo de arranque.
insmod normal
5. Inicie el normal
modo de arranque.
normal
Lo normal
le permite emitir comandos más complejos.
6. Cargue el kernel de Linux utilizando linux
dominio.
linux /boot/vmlinuz-4.2.0-16-generic root=/dev/sda1 ro
7. Ejecute el boot
comando.
boot
El sistema ahora arranca correctamente.
A través de imagen en vivo
Otra forma de solucionar los problemas de arranque de GRUB es usar una imagen en vivo de Linux para arrancar desde un dispositivo externo.
1. Descargue un instalador de Linux en vivo. Este ejemplo usa la imagen ISO de Ubuntu 20.04.
2. Use una herramienta como Etcher para escribir la imagen de Linux en una tarjeta SD o una unidad flash USB.
3. Inserte el dispositivo de arranque e inicie la computadora.
4. Seleccione Probar Ubuntu en la pantalla de bienvenida.
5. Cuando se inicie el sistema en vivo, conéctese a Internet.
6. Abra la terminal y escriba el siguiente comando para agregar el repositorio para la herramienta de reparación de arranque.
sudo add-apt-repository ppa:yannubuntu/boot-repair
Pulsa Intro y espere a que se agregue el repositorio.
7. Actualice los repositorios.
sudo apt update
8. Instale la herramienta de reparación de arranque.
sudo apt install boot-repair
9. Inicie la herramienta de reparación de arranque a través de la terminal.
boot-repair
10. Seleccione Reparación recomendada .
Espere a que la herramienta termine de reparar el gestor de arranque.
Actualizando el archivo de configuración de GRUB
Cuando el sistema se inicie correctamente, asegúrese de que la configuración de GRUB esté actualizada.
Ejecute este comando:
update-grub
Reinstalar GRUB
Siga los pasos a continuación para reinstalar GRUB en su sistema Linux.
1. Monte la partición que contiene la instalación del sistema operativo. El ejemplo monta el /dev/sda1
partición al /mnt
directorio.
sudo mount /dev/sda1 /mnt
2. Enlace el /dev
, /dev/pts
, /proc
y /sys
directorios a los directorios correspondientes en el /mnt
carpeta.
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
3. Instala GRUB.
sudo grub-install -root-directory=/mnt/ /dev/sda
4. Desmonte los directorios cuando la instalación se complete correctamente.
sudo umount /mnt/sys &&
sudo umount /mnt/proc &&
sudo umount /mnt/dev/pts &&
sudo umount /mnt/dev &&
sudo umount /mnt