Cómo recuperar GRUB en RHEL 8: EFI vs BIOS/Legacy

Ya sabéis que suelo utilizar la web muchas veces para mis apuntes personales, del día a día, de administrador de sistemas. Últimamente me estoy peleando con las subidas de versión, de sistemas antiguos Red Hat Enterprise Linux y similares, a versiones más modernas y con soporte. Algunas veces, tras la actualización, me encuentro con la shell de GRUB, motivo inequivoco que indica que hay reinstalar este componente esencial, para el arranque del sistema.

En sistemas GNU/Linux, GRUB (GRand Unified Bootloader) es el gestor de arranque que se encarga de cargar el kernel del sistema operativo y pasarle el control al sistema durante el inicio. Sin GRUB, tu sistema no podría arrancar, y es habitual encontrarse con problemas tras actualizaciones importantes o cambios en la partición de arranque.

En RHEL 8, tras una actualización desde RHEL 7 o tras reinstalar el sistema, puede ocurrir que el sistema caiga directamente en la shell de GRUB, como he comentado antes, sin cargar el sistema operativo. Esto generalmente indica que el gestor de arranque está dañado o mal configurado.

Logos de oficiales de GNU GRUB

¿Qué es GRUB y para qué sirve?

Veamos un poco el detalle:

  • GRUB es el primer software que se ejecuta después del BIOS/UEFI.
  • Permite seleccionar qué kernel iniciar o incluso qué sistema operativo (en caso de dual boot).
  • Gestiona las particiones y sabe cómo leer diferentes sistemas de archivos para localizar el kernel.
  • Sin un GRUB funcional, el ordenador no sabrá cómo iniciar tu instalación de GNU/Linux.

Diferencias entre EFI y BIOS/Legacy

Al instalar un sistema Linux moderno, el tipo de firmware de la máquina define cómo se instala GRUB:

UEFI (Unified Extensible Firmware Interface)
  • Usa una partición EFI (ESP) formateada en FAT32.
  • GRUB se instala en esta partición y se registra en la NVRAM del firmware.
  • Es común en máquinas modernas y servidores nuevos.
BIOS/Legacy
  • Usa el MBR (Master Boot Record) del disco y normalmente una partición /boot en ext4 o similar.
  • GRUB se instala directamente en el MBR o en la partición /boot.
  • Más habitual en hardware antiguo o configuraciones heredadas.

Cómo reinstalar GRUB en RHEL 8

Dependiendo de si tu sistema usa UEFI o BIOS, los pasos son diferentes.

Antes de continuar, **un apunte**, puedes saber si tu sistema utiliza UEFI o BIOS consultando este fichero:

ls /sys/firmware/efi

Si el fichero existe, pues es EFI, si no existe pues es BIOS

Caso A: Partición EFI (/dev/sda1 es FAT32)

Monta la partición EFI:

mount /dev/sda1 /boot/efi

Accede al sistema desde un entorno de rescate, por ejemplo, el DVD de RHEL 8.10

chroot /mnt/sysimage

Reinstala GRUB para EFI:

grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=redhat
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

Ya puedes salir, desmontar y reiniciar:

exit
umount -R /mnt/sysimage
reboot

Caso B: Partición /boot normal (ext4, BIOS/Legacy)

Monta la partición /boot:

mount /dev/sda1 /boot

Accede al sistema desde el sistema de rescate:

chroot /mnt/sysimage

Reinstala GRUB para BIOS/Legacy:

grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg

Ya podemos salir, desmontar y reiniciar:

exit
umount -R /mnt/sysimage
reboot

Conclusiones

Es cierto que esto es unas de las cosas que los usuarios de fuera del mundo GNU/Linux les tira para atrás, ya que pasa más de lo deseado. Por lo que siempre es importante tener a mano un DVD o un USB al rescate, con la distribución en cuestión.

En cualquier caso, si nos vemos en la necesidad, con esta guía siempre podrás recuperar tu preciado sistema, y poder volver a disfrutar de ese fósforo negro tan maravilloso 😉

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.