Amorçage UEFI

Mise à jour : Debian 10.9 / Buster

Ce document décrit la mise en œuvre de l'amorçage sur une plate-forme équipée d'un micrologiciel UEFI

Dans ce qui suit, on suppose le dispositif "Secure Boot" non activé. L'amorçage avec Secure Boot activé est décrit dans le document : Amorçage UEFI - Secure Boot

Sommaire

1 - Préalable

1.1 - Définitions

L'amorçage en mode UEFI repose sur 3 éléments principaux

La première étape consiste à accéder au menu de la plate-forme pour la configurer en mode UEFI.

2 - Accès à l'interface UEFI de la plate-forme

L'accès à l'interface peut s'effectuer de différentes façons

2.1 - Lors de la mise sous-tension

2.2 - Depuis un shell UEFI

SHELL>exit

2.3 - Depuis un shell Grub

grub> fwsetup

2.4 - Depuis un menu Grub

$ sudo update-grub
...
Adding boot menu entry for EFI firmware configuration
$ cat /boot/grub/grub.cfg |grep -A3 "BEGIN /etc/grub.d/30_uefi"
### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'System setup' $menuentry_id_option 'uefi-firmware' {
fwsetup
}

2.5 - Au redémarrage depuis un système Debian

$ sudo systemctl reboot --firmware-setup

3 - Configuration de la plate-forme

3.1 - Configuration de la plate-forme

La configuration de l'amorçage de la plate-forme peut varier d'un appareil à un autre. Typiquement, pour permettre l'amorçage UEFI en mode non Secure Boot d'un système Debian

3.2 - Vérification rapide de le configuration de la plate-forme

grub > echo $grub_platform
efi

4 - Configuration du media

4.1 - Partitionnement et système de fichier

$ sudo parted /dev/sdb -s mktable gpt mkpart ESP fat32 2MiB 512MiB set 1 esp on
$ sudo mkfs.vfat -F 32 -n ESP /dev/sdb1
$ sudo parted /dev/sdb unit MiB print |grep ESP
1 2,00MiB 512MiB 510MiB fat32 ESP boot, esp

lsblk -o NAME,LABEL,PARTLABEL,FSTYPE,SIZE /dev/sdb1
NAME LABEL PARTLABEL FSTYPE SIZE
sdb1 ESP ESP vfat 510M

4.2 - Application UEFI - Cas général

$ sudo mkdir -p /boot/efi/EFI/tetris
$ sudo cp tetris.efi /boot/efi/EFI/tetris/
$ sudo tree /boot/efi
/boot/efi
└── EFI
└── tetris
└── tetris.efi
....

4.3 - Grub UEFI

5 - Lancement

5.1 - Lancement "manuel"

Shell> FS0:
FS0:\> \EFI\tetris\tetris.efi

5.2 - Amorçage automatique

$ efibootmgr -v
BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000
Boot0000* debian HD(1,GPT,fe9xxxxxad,0x800,0x106000)/File(\EFI\debian\shimx64.efi)

l'entrée d'amorçage 0 a pour caractéristiques

5.3 - Vérification

En cas de doute, sur le mode de démarrage (Bios ou UEFI)

grub > echo $grub_platform
efi
$ ls /sys/firmware/efi/
config_table esrt fw_vendor runtime-map vars
efivars fw_platform_size runtime systab

ou rechercher la présence de EFI dans les messages du noyau

$ sudo dmesg |grep EFI
[ 0.000000] efi: EFI v2.70 by EDK II
[ 0.547825] fb0: EFI VGA frame buffer device
[ 1.945694] EFI Variables Facility v0.08 2004-May-17
[ 2.149638] fb: switching to bochsdrmfb from EFI VGA