Gestionnaire d'entrées d'amorçage Efibootmgr

Mise à jour : Debian 10.8 - Buster

Ce document décrit la gestion des entrées d'amorçage au moyen de la commande efibootmgr

Sommaire

1 - Préalable

$ sudo aptitude install efibootmgr

2 - Liste des entrées

La commande efbootmgr fournit des informations sur les entrées d'amorçage présentes dans la mémoire Nvme de la plate-forme

$ efibootmgr
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0002,0004,0001,0000
Boot0000* Windows Boot Manager
Boot0001* debian
Boot0002* debian
Boot0004* UEFI : Built-in EFI Shell

Dans l'exemple ci-dessus,

3 - Identification

Chaque entrée est associée à une adresse vers un fichier exécutable, cette adresse pouvant soit être affichée "en clair", soit sous la forme d'un identifiant

$ efibootmgr -v
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0002,0004,0001,0000
Boot0000* Windows Boot Manager VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot0001* debian HD(1,GPT,77ed79e1-ae0b-4979-827f-ad7b119d688b,0x1000,0xff000)/File(\EFI\DEBIAN\shimx64.efi)
Boot0002* debian HD(1,GPT,fe906d3a-ed18-4d9a-a6cd-41b14322b3ad,0x800,0x106000)/File(\EFI\debian\shimx64.efi)
Boot0004* UEFI : Built-in EFI Shell VenMedia(5023b95c-db26-429b-a648-bd47664c8012)..BO

3.1 - Identification par l'adresse

HD(1,GPT,77ed79e1-ae0b-4979-827f-ad7b119d688b,0x1000,0xff000)
/File(\EFI\DEBIAN\shimx64.efi)
$ lsblk -o NAME,FSTYPE,PARTUUID |grep vfat
├─sdb1 vfat 77ed79e1-ae0b-4979-827f-ad7b119d688b
├─nvme0n1p1 vfat fe906d3a-ed18-4d9a-a6cd-41b14322b3ad

3.2 - Identification par code vendeur

Boot0001* debian     VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)

L'adresse d'origine sera à nouveau affiché si le fichier est présent lors d'un prochain démarrage

Boot0004* UEFI : Built-in EFI Shell  VenMedia(5023b95c-db26-429b-a648-bd47664c8012)..BO

3.3 -Entrée par défaut

Lorsque le système a démarré sur une entrée par défaut (EFI/BOOT/boox64.efi), il crée automatiquement une entrée dans la NVME. Exemple d'une entrée de chargement de grub, sur un disque USB

Boot0005* UEFI : USB : ST9250410AS 0223 : PART 0 : OS Bootloader     PciRoot(0x0)/Pci(0x14,0x0)/USB(1,0)/HD(1,GPT,77ed79e1-ae0b-4979-827f-ad7b119d688b,0x1000,0xff000)..BO

4 - Création - activation - suppression des entrées

4.1 - Création

Les entrées d'amorçage sont généralement créées par grub lors de l'installation sur la partition ESP, il est néanmoins possible de créer "manuellement" une entrée dans la Nvme de la plate-forme.

La commande suivante

$ sudo efibootmgr --create --disk /dev/nvme0n1 --part 1 --label "grub" --loader /EFI/GRUB/grubx64.efi
BootOrder: 0004,0007,0006,0003,0000
...
Boot0004* grub
....
/EFI/GRUB/grubx64.efi                # Pas de quote ou double quote

'\EFI\GRUB\grubx64.efi' # Simple quote

\\EFI\\GRUB\\grubx64.efi # Pas de quote ou double quote
r.o.o.t.=.U.U.I.D.=.0.6.....e. .r.o. .q.u.i.e.t. .i.n.i.t.r.d.=.\.E.F.I.\.s.t.u.b.\.i.n.i.t.r.d...i.m.g.

voir Linux - Amorçage EFISTUB

4.2 - Activation

$ sudo efibootmgr |grep Boot0000
Boot0000* Windows Boot Manager
....
$ sudo efibootmgr -b 0 -A |grep Boot0000
Boot0000 Windows Boot Manager
$ sudo efibootmgr -b 0 -a |grep Boot0000
Boot0000* Windows Boot Manager

4.3 - Suppression

$ sudo efibootmgr -b 8 -B

5 - Délai et ordre d'amorçage

5.1 - Délai d'amorçage

$ sudo efibootmgr -t 3
$ sudo efibootmgr -T

5.2 - Ordre d'amorçage

$ sudo efibootmgr -O
$ sudo efibootmgr -o 7,6,3,8,0 |grep BootOrder
BootOrder: 0007,0006,0003,0008,0000

$ sudo efibootmgr -n 6