Mise à jour : Debian 10.0
L'objectif est de disposer d'une clé USB, amorçable sur une plate-forme UEFI, avec Secure Boot désactivé
Pour une clé USB amorçable sur une plate-forme Bios/MBR, voir Clé autonome Grub - Amorçage Bios/MBR
Pour une clé USB amorçable sur une plate-forme UEFI avec Secure Boot activé ou non activé, voir Clé autonome Grub - Amorçage UEFI Secure Boot
Référence : Manuel Grub2 (en anglais)
SommaireLa création de la clé comprend deux étapes :
$ lsblk -f /dev/sdb
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
sdb
└─sdb1 vfat ESP 311C-4029
$ sudo mount /dev/sdb1 /mnt
$ sudo mkdir -p /mnt/EFI/BOOT
Lancer la création et le chargement de l'image standard dans la partition ESP de la clé USB avec
$ sudo grub-mkstandalone --output=/mnt/EFI/BOOT/bootx64.efi --format=x86_64-efi --modules="part_gpt part_msdos luks"
où les options de la commande permettent de préciser
Le nom du fichier à créer
--output=bootx64.efi
Le format de l'image, dans le cas d'un système x86_64 avec amorçage efi
--format=x86_64-efi
Les modules supplémentaires à précharger
--modules="part_gpt part_msdos luks"
Note :
Tous les modules grub présents dans /usr/lib/grub/x86_64-efi/ seront présents dans l'image, les modules part_gpt, part_msdos, luks seront chargés
Une police ASCII sera chargée (qui ne prend pas en compte les caractères hors ASCII), mais il sera possible de charger la police Unicode
Les messages seront en anglais, mais toutes les locales sont présentes dans /usr/share/locale
Le clavier sera du type "QWERTY"
Alternativement, créer une image personnalisée par l'ajout de fichiers embarqués dans l'image grub.
"La syntaxe de point de greffe est acceptée", ce qui facilite l'addition des fichiers dans l'image dans le respect de l'arborescence (memdisk)/boot/grub/ standard.
Dans l'exemple ci-dessous, on ajoute :
Les fichiers doivent être présents dans le répertoire courant à partir duquel est lancé la commande grub_mkstandalone
$ sudo mount /dev/sdb1 /mnt
$ sudo grub-mkstandalone --output=/mnt/EFI/BOOT/bootx64.efi --format=x86_64-efi --modules="part_gpt part_msdos luks" \"boot/grub/grub.cfg=grub.cfg"
\
"boot/grub/splash.png=splash.png" \"boot/grub/layouts/fr.gkb=fr.gkb"
Dans l'exemple ci-dessous, la personnalisation consiste à passer la console grub en mode graphique, afficher un papier peint et les textes en français, passer le clavier en disposition azerty
Le fichier grub.cfg contient les commandes qui seront exécutées à la fin du lancement de grub. Pour une description détaillée des commandes grub, voir Console Grub - Utilisation
# Clavier en dispositition française
# Fonctionne sur qemu -
# Ne fonctionne pas sur PC NUC (clavier USB non reconnu?), ne pas utiliser!
insmod keylayouts
insmod at_keyboard
terminal_input at_keyboard
keymap fr
# Mode graphique
insmod all_video
set gfxmode=auto
insmod gfxterm
insmod terminal
terminal_output gfxterm
# Papier peint
insmod png
insmod gfxterm_background
background_image $prefix/splash.png
# Couleurs de texte
set color_normal=white/black
set color_highlight=black/white
# Textes en français (Note : La police unicode est chargée pour prendre en compte
# l'affichage des caractères français sépcifiques (é,è,ç, ...)
insmod font
loadfont unicode
insmod gettext
set locale_dir=/boot/grub/locale
set lang=fr_FR
# Divers options utiles
set pager=1
insmod linux
insmod boot
insmod halt
insmod reboot
$ grub-kbdcomp -o fr.gkb fr
Le nom du fichier est arbitraire, mais l'extension gkb est obligatoire
$ cp /usr/share/images/desktop-base/desktop-grub.png splash.png
$ sudo tree /mnt
/mnt
└── EFI
└── BOOT
└── bootx64.efi
2 directories, 1 file
Démonter la clé
$ sudo umount /mnt