Vemos en que consite efibootmgr y cómo utilizarlo para manejar el menú de arranque de UEFI.
Efibootmgr es una aplicación de espacio de usuario, que se utiliza para modificar el administrador de arranque para el Intel Extensible Firmware Interface (EFI). Con esta aplicación podemos crear y eliminar entradas del arranque, cambiar el orden de dicho arranque, cambiar la siguiente opción de arranque ejecución, entre otros.
Instalación y ejemplos de efibootmgr
Instalación de efibootmgr en GNU/Linux
Veamos cómo instalar esta herramienta en las distribuciones GNU/Linux más comunes:
Instalación en Debian, Ubuntu, Linux Mint y similares:
$ sudo apt install efibootmgr
Instalación en Fedora, Centos, RHEL y similares:
$ sudo dnf install efibootmgr
Instalación en OpenSUSE y SUSE:
$ sudo zypper install efibootmgr
Instalación en Arch Linux, Manjaro y similares:
$ sudo pacman -S efibootmgr
Ejemplos de uso de efibootmgr
1. Visualizar los ajustes actuales
Simplemente debemos ejecutar el siguiente comando. En algunas distribuciones GNU/Linux como Debian, se debe utilizar con permisos de sudo.
efibootmgr
Con este comando podemos ver la entrada de inicio predeterminada (BootCurrent), el orden de inicio y todas las entradas de inicio. Cada entrada de inicio se identifica mediante un número de inicio en hexadecimal. El asterisco (*) significa que la entrada de inicio está activa.
Si utilizamos el parámetro «-v» se nos ofrecerá la información de forma amplia:
efibootmgr -v
De esta manera podemos ver el número de partición del sistema EFI, el tipo de tabla de particiones (GPT), el UUID de la partición del sistema EFI y el archivo del cargador de arranque.
2. Cambiar el orden de arranque
Primero copiamos el orden actual, por ejemplo:
0013,0012,0014,0000,0001,0002,0003,000D,0011,0007,0008,0009,000A,000B,000C,000E
Para realizar el cambio usaremos el comando más el parámetro «-o«, de la siguiente manera:
$ sudo efibootmgr -o
Y agregamos el orden de arranque al comando anterior:
$ sudo efibootmgr -o 0013,0012,0014,0000,0001,0002,0003,000D,0011,0007,0008,0009,000A,000B,000C,000E
Supongamos que deseamos que 0012 sea la primera entrada de inicio. Todo lo que debemos hacer es moverlo a la izquierda de 0013, como sigue:
$ sudo efibootmgr -o 0012,0013,0014,0000,0001,0002,0003,000D,0011,0007,0008,0009,000A,000B,000C,000E
3.Añadir una nueva entrada
Si hemos instalado varias distribuciones en el mismo equipo, pero una de las distribuciones no tiene una entrada de arranque UEFI, se puede agregar de forma manual.
Debemos iniciar en la disitribución GNU/Linux que no tenga dicha entrada de arranque UEFI. Luego, nos debemos asegurar de que tenga instalada la versión EFI del cargar de arranque de GRUB.
En Debian, Ubuntu o Linux Mint
$ sudo apt install grub-efi
En Fedora:
$ sudo dnf install grub2-efi-modules
A continuación, debemos montar la partición del sistmea EFI en el directorio «/boot/efi», por ejemplo:
$ sudo mount /dev/sda3 /boot/efi/
Y realizamos la instalación del menú Grub
$ sudo grub-install /dev/sda --target=x86_64-efi --efi-directory=/boot/efi/
«x86_64-efi» significa que vamos a instalar Grub para el firmware UEFI. El destino predeterminado es i386-pc, que es para el firmware de BIOS tradicional.
Ahora deberíamos ver una nueva entrada en el menú de arranque de UEFI con el comando bootmgr, cómo hemos dicho antes. El instalador de Grub primero instala un archivo «.efi bootloader» en el directorio «/boot/efi/EFI/etiqueta«. Generalmente se llama «grubx64.efi«. En el siguiente comentado agregamos una nueva entrada en el menú de inicio de UEFI:
efibootmgr -c -d /dev/sda -p 3 -L "etiqueta" -l \EFI\"label"\grubx64.efi
4. Eliminar la entrada en el arranque
Si hemos instalado varias distribuciones de GNU/Linux en un disco duro, por lo que tenemos varias entradas de arranque. Y si hemos eliminado una de las distribuciones, la línea de dicha entrada aún continuará en lista del menú UEFI. Para eliminar la entrada de inicio correspondiente, debemos hacer:
$ sudo efibootmgr -b "bootnum" -B
Por ejemplo:
$ sudo efibootmgr -b 0014 -B
Con el parámetro «-b» se especifica el número de línea, con «-B» se elimina dicha línea.
5. Especificar una entrada activa o desactiva
Una entrada de inicio seguida de un asterisco indica que está activo. De los contrario, está inactivo. Para establecer una entrada de arranque activa, ejecutamos:
$ sudo efibootmgr -b "bootnum" -a
Para establecer una entrada de arranque inactiva, ejecutamos:
$ sudo efibootmgr -b "bootnum" -A