Grub2 - Installation - Amorçage UEFI

Mise à jour : Debian 10.8 / Buster

Ce document décrit l'installation du chargeur Grub2 dans le cas d'un amorçage en mode UEFI. L'installation s'effectue en mode compatible secure boot avec les applications signées shimx64.efi, grubx64.efi, le noyau et les modules linux

Sommaire

1 - Principe

2 - Configuration initiale

$ ls /sys/firmware/efi/
config_table esrt fw_vendor runtime-map
efivars fw_platform_size runtime systab
$ mokutil --sb-state
SecureBoot disabled
$ sudo blkid /dev/nvme0n1
/dev/nvme0n1: PTUUID="33b07ed8-b223-41d1-a880-dba78ecd4971" PTTYPE="gpt"
$ findmnt /boot/efi
TARGET SOURCE FSTYPE OPTIONS
/boot/efi /dev/nvme0n1p1 vfat rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shor

3 - Installation

3.1 - Installation du noyau

$ aptitude search ~ilinux-image-amd64
i linux-image-amd64 - Linux pour les ordinateurs 64 bits (métapaquet

$ aptitude search ~ilinux-image-$(uname -r)
i A linux-image-5.10.0-0.bpo.4-amd64 - Linux 5.10 for 64-bit PCs (signed)

3.2 - Installation de grub

$ sudo aptitude install grub-efi-amd64
$ aptitude search ~i-signed
i A grub-efi-amd64-signed - GRand Unified Bootloader, version 2 (amd64 UEFI signed by Debian)
i A shim-helpers-amd64-signed - boot loader to chain-load signed boot loaders (signed by Debian)
i shim-signed - Secure Boot chain-loading bootloader (Microsoft-signed binary)
i A shim-signed-common - boot loader to chain-load signed boot loaders under Secure Boot

3.3 - Mise à jour du fichier de configuration de grub

$ sudo update-grub
Création du fichier de configuration GRUB…
....
Adding boot menu entry for EFI firmware configuration
fait

Noter la création d'une entrée pour "EFI firmware configuration" qui permettra de sélectionner dans le menu Grub le menu du micrologiel UEFI

3.4 - Installation de grub dans l'ESP

$ sudo grub-install
$ sudo tree /boot/efi
/boot/efi
└── EFI
└── debian
├── BOOTX64.CSV
├── fbx64.efi
├── grub.cfg
├── grubx64.efi
├── mmx64.efi
└── shimx64.efi

2 directories, 6 files
$ sudo cat /boot/efi/EFI/debian/grub.cfg
search.fs_uuid f948cd31-18b2-4144-91f4-7840e122dfa7 root
set prefix=($root)'/grub'
configfile $prefix/grub.cfg
$ sudo cat /boot/efi/EFI/debian/BOOTX64.CSV
shimx64.efi,debian,,This is the boot entry for debian
$ efibootmgr -v
BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000
Boot0000* debian HD(1,GPT,feXXXX ad,0x800,0x106000)/File(\EFI\debian\shimx64.efi)

3.5 - Installation de grub dans un autre répertoire de l'ESP

$ sudo grub-install --bootloader-id=buster

3.6 - Mode amorçage par défaut

sudo grub-install --removable --uefi-secure-boot     
$ sudo tree /boot/efi/EFI/BOOT
/boot/efi/EFI/BOOT
├── BOOTX64.CSV
├── BOOTX64.EFI
├── fbx64.efi
├── grub.cfg
├── grubx64.efi
└── mmx64.efi
$ echo "bootx64.efi,debian,,Ceci est l'entrée d'amorçage automatique" |iconv -t UCS-2 | \
sudo tee /boot/efi/EFI/BOOT/BOOTX64.CSV

3.7 - Installation en mode non secure boot

$ sudo grub-install --no-uefi-secure-boot
$ sudo tree /boot/efi
/boot/efi
└── EFI
└─ debian
└── grubx64.efi

2 directories, 1 files

Le fichier grubx64 contient les informations nécessaires au lancement du menu grub dans le répertoire /boot/grub de la partition du système utilisé pour effectuer l'installation
Boot0000* grub       HD(1,GPT,fe9 XXXX ad,0x800,0x106000)/File(\EFI\debian\grubx64.efi)

4 - Redémarrage

$ sudo dmesg |grep secureboot
[ 0.000000] secureboot: Secure boot enabled
$ mokutil --sb-state
SecureBoot enabled
$ bootctl |grep "Secure Boot"
Secure Boot: enabled