Clé autonome Grub - Amorçage BIOS/MBR ou UEFI

Dernière mise à jour : Debian 10.10

L'objectif est de disposer, sur une clé USB, d'un système Grub autonome, utilisable pour dépanner un système debian sur lequel GRUB est endommagé ou absent.

La création de la clé s'effectue depuis un système debian opérationnel avec grub2 installé.

La clé sera disponible dans la même version d'amorçage (bios/mbr ou efi) que celle du système utilisé pour créer la clé.

Sommaire

1 - Préalable

$ sudo aptitude install xorriso
$ sudo aptitude install mtools

2 - Clé autonome Grub - Configuration standard

2.1 - Création de l'image

$ grub-mkrescue -o grub.iso

2.2 - Contenu de l'image

$ sudo mount grub.iso /mnt
$ ls /mnt/boot/grub/
fonts/ i386-pc/ locale/ roms/
$ sudo mount grub.iso /mnt
$ ls /mnt/boot/grub/
fonts/ x86_64-efi/ locale/ roms/
grub> insmod <nom_module_sans_extension>

2.3 - Utilisation

$ sudo dd if=grub.iso of=/dev/sdb; sync

Grub console en français

3 - Clé autonome Grub - Configuration personnalisée

3.1 - Principe

$ grub-mkrescue -o grub.iso SOURCE 

qui accepte "la syntaxe de point de greffe", ce qui facilite l'addition des fichiers dans l' arborescence standard (memdisk)/boot/grub/

3.2 - Création de l'image

$ mkdir -p SOURCE/boot/grub/{layouts,fonts}
$ cp /usr/share/images/desktop-base/desktop-grub.png SOURCE/boot/grub/splash.png 
$ sudo aptitude install ttf-unifont
$ grub-mkfont --verbose --size=16 --range=0x0-0x800,0x2000-0x207F -o SOURCE/boot/grub/fonts/fr.pf2 /usr/share/fonts/truetype/unifont/unifont.ttf
$ grub-kdbcomp -o SOURCE/boot/grub/layouts/fr.gkb fr
$ cat <<EOF> |sed '/#/d' |tee SOURCE/boot/grub/grub.cfg
# Fichier configuration grub personnalisé
# Les lignes commentaires et vides doivent être supprimées

# Mode graphique nécessaire pour afficher les caractères français
insmod all_video
set gfxmode=auto
insmod gfxterm
insmod terminal
terminal_output gfxterm

# Image de fond d'écran
insmod png
insmod gfxterm_background
background_image $prefix/splash.png

# Couleur texte
set color_normal=white/black
set color_highlight=black/white

# Fonte française
insmod font
loadfont fr

# Texte en français
insmod gettext
set locale_dir=$prefix/locale
set lang=fr

# Clavier disposition française
# On suppose que le mode at_keyboard est disponible sur le système
# Si ce n'est pas le cas, supprimer les 4 lignes suivantes
insmod keylayouts
insmod at_keyboard
terminal_input at_keyboard
keymap fr

# Diverses commandes utiles
set pager=1
insmod linux
insmod boot
insmod halt
insmod reboot
insmod luks
EOF
$  grub-mkrescue -o grub.iso SOURCE

3.2 - Utilisation

$ sudo dd if=grub.iso of=/dev/sdb; sync

Grub console en français