Cómo recuperar el GRUB2 e iniciar GNU-Linux en la BIOS

En ordenadores con doble sistema operativo, Windows y Linux, en muchas ocasiones, tras una actualización del Windows y/o por restauración del boot en la BIOS, se pierde la entrada GRUB de la BIOS, perdiendo la posibilidad de entra en el Sistema Operativo Linux.

En esta entrada vamos a explicar como hacer la recuperación, utilizando la propia BIOS, para entrar en Linux y recuperar la configuración del GRUB para que sea la entrada principal del boot. Se explica utilizando un portátil HP Envy TouchSmart 15 y distribución de Linux OpenSUSE.

Hay muchas situaciones en las que se pierde el GRUB, aquí veremos la más normal y comentaremos algunos otras. Iré sacando entrada conformes se me presenten y pueda realizar los pasos para su recuperación.

Entrar en el menú Boot de la BIOS al iniciar el Linux desde la entrada EFI correspondiente.

Con el ordenador apagado, pulsaremos el botón encendido e iremos pulsando el botón de entrar en el menú de inicio de la BIOS, en mi caso es la tecla F9, esta información aparece nada mas encender el equipo, sino consultar el manual del equipo.

Nos aparecerá el menú del BOOT de la BIOS:

Tendremos 3 posibilidades:

Cambio de orden sin eliminación de entrada en el menú principal


Por norma general lo que ocurre es un cambio en el orden de las entradas, es el caso que se muestra en la imagen, donde la entrada al sistema operativo Linux está, es la entrada 2 de la imagen.

Para entrar al GRUB solo tendremos que seleccionarla y pulsar intro.

Eliminación entrada en el boot, sin eliminación en la BIOS

Hay veces que la entrada no se muestra en la pantalla principal del Boot, pero sigue siendo un cambio en el orden, estando la entrada disponible en la BIOS. Para estos casos pulsaremos en la última opción «Boot from EFI File«, mostrando el siguiente menú:

Pulsaremos intro y nos mostrar una explorar de archivos. Entraremos en la opción o carpeta «EFI«

Nos mostrará una pantalla con los distintas carpetas, una por cada entrada configurada:

Iremos recorriendo las carpetas hasta llegar al archivo que pertenece a la entrada que queremos iniciar, en nuestro caso opensuse y nos mostrará la lista de archivo «EFI» disponibles para OpenSUSE

Elegiremos una de las opciones, recomendable las que tienen nombre «grub.efi» o «grubx64.efi» y pulsaremos intro.

Eliminación entrada EFI en la BIOS

Esta es la peor situación y las más compleja de restaurar, la abordaremos en otra entrada del blog.

Al pulsar intro, ya sea en la opción primera o segunda, se mostrará el GRUB de Linux con la configuración que tuviera antes de se eliminado, en mí caso:

Seleccionaremos la opción de entrar en Linux y pulsaremos intro. Con estos pasos iniciaríamos el sistema operativo Linux y nos quedaría hacer el proceso de recuperación o restauración.

Recuperación desde la línea de comandos

Una vez iniciado el sistema operativo Linux, abriremos una consola de comandos, con permisos de root y realizaremos los siguientes pasos:

Mostraremos la configuración actual:

# efibootmgr -v
BootCurrent: 0001
Timeout: 0 seconds
BootOrder: 0000,0001,3000,2001,2002,2003
Boot0000* Windows Boot Manager  HD(2,GPT,00455d83-2f18-11eb-a877-f08e1a00de0e,0xc8800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot0001* opensuse-secureboot   HD(2,GPT,00455d83-2f18-11eb-a877-f08e1a00de0e,0xc8800,0x82000)/File(\EFI\opensuse\shim.efi)
Boot2001* USB Drive (UEFI)      RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)      RC
Boot3000* Internal Hard Disk or Solid State Disk        RC
Boot3001* Internal Hard Disk or Solid State Disk        RC

Como se puede ver en la línea BootOrder, la primera entrada es la de Windows y por eso no se muestra el GRUB, entrando directamente en Windows

Para corregirlo se debe cambiar el orden, ejecutaremos para ello el siguiente comando, indicando el nuevo orden:

efibootmgr -v -o 0001,0000,3000,2001,2002
BootCurrent: 0001
Timeout: 0 seconds
BootOrder: 0001,0000,3000,2001,2002
Boot0000* Windows Boot Manager  HD(2,GPT,00455d83-2f18-11eb-a877-f08e1a00de0e,0xc8800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot0001* opensuse-secureboot   HD(2,GPT,00455d83-2f18-11eb-a877-f08e1a00de0e,0xc8800,0x82000)/File(\EFI\opensuse\shim.efi)
Boot2001* USB Drive (UEFI)      RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)      RC
Boot3000* Internal Hard Disk or Solid State Disk        RC
Boot3001* Internal Hard Disk or Solid State Disk        RC

Con esto resolveríamos el problema, aunque viendo que el nombre del fichero EFI que usa la entrada de Windows:

\EFI\Microsoft\Boot\bootmgfw.efi

Este fichero hace que al iniciar el Windows vuelva a sustituir el orden del boot, volviendo a poner como primera opción Windows, para evitarlo hay que editarla y cambiarla para usar una que no tenga en el nombre «fw«. Ésto también lo veremos en una próxima entrada del blog.