Mise à jour : Debian 10.8
la présentation générale du menu affichée par Grub lors du démarrage (image de fond, fonte, couleurs du texte)
la méthode de lancement des entrées de menu (temps d'attente avant lancement automatique, sélection par défaut du dernier système lancé)
la présentation et le contenu des entrées (intitulés, positions respectives, paramètres de lancement)
Le terme "entrée de menu " ou "entrée" désigne le système d'exploitation à lancer.
Attention : Avant toute modification des fichiers de configuration de Grub, il est recommandé de savoir redémarrer un système sur lequel Grub n'est plus fonctionnel
Sommaire
du fichier de paramètres /etc/default/grub
00_header : sélection du mode d'affichage et de la fonte
05_theme : couleur du texte
10_linux : génération des entrées correspondant au linux utilisé sur la partition courante
30_os-prober : recherche des systèmes d'exploitation sur le système et génération des entrées correspondantes
40_custom : modèle de fichier utilisé pour inclure des lignes dans le fichier de configuration final "grub.cfg"
La modification de la configuration par défaut s'effectue de préférence
par la modification des fichiers /etc/default/grub et des fichiers /etc/grub.d/*
par la création de contenu dans /boot/grub/custom.cfg (par exemple addition d'entrées de menu)
Pour forcer le mode texte, dans le fichier /etc/default/grub, décommenter la ligne GRUB_TERMINAL=console
$ sudo nano /etc/default/grub
.....
GRUB_TERMINAL=console
Éviter le défilement automatique de l'affichage avec
set pager=1
vbeinfo
.....
* 0x142 640 x 480 x 32 (2560) Couleur directe, masque : 8/8/8/8
.....
GRUB_GFXMODE=1280x1024x24
$ sudo update-grub
$ cat /boot/grub/grub.cfg |grep "set gfxmode"
set gfxmode=1280x1024x24
/usr/share/images/desktop-base/desktop-grub.png
$ sudo mv mon_image.png /boot/grub/splash.png
$ sudo update-grub
$ cat /boot/grub/grub.cfg |grep background_image if background_image /boot/grub/splash.png; then
$ sudo grub-mkfont --output=/boot/grub/ma_fonte.pf2 --size=12 /usr/share/fonts/truetype/droid/DroidSerif-BoldItalic.ttf
fonctionnalité gsub 0x63636d70 inconnue (ccmp)
fonctionnalité gsub 0x63636d70 inconnue (ccmp)
fonctionnalité gsub 0x63636d70 inconnue (ccmp)
$ sudo nano /etc/default/grub
et y ajouter la ligne suivante
GRUB_FONT=/boot/grub/fonts/ma_fonte.pf2
où /boot/grub/fonts/ma_fonte.pf2 est l'emplacement de la fonte créée précédemment.
$ sudo aptitude update
$ cat /boot/grub/grub.cfg |grep loadfont
if loadfont /boot/grub/fonts/ma_fonte.pf2 ; then
et redémarrer la machine pour visualiser le résultat.
La couleur du texte du titre et du bas de page du menu, et de la console sont définies par le paramètre color_normal
La couleur du texte des entrées est définie par les paramètres menu_color_normal (ligne de texte non sélectionnée) et menu_color_highlight (ligne de texte sélectionnée).
Les couleurs sont redéfinissables, avec les commandes :
set color_normal=couleur/couleur_fond
set menu_color_normal=couleur/couleur_fond
set menu_color_highlight=couleur/couleur_fond
dans lesquelles couleur désigne la couleur du texte et couleur_fond désigne la couleur du fond. Par convention, la couleur de fond "black" indique l'absence de couleur (transparence).
La liste des couleurs supportées par grub est :
black
blue
brown
cyan
dark-gray
green
light-cyan
light-blue
light-green
light-gray
light-magenta
light-red
magenta
red
white
yellow
Pour tester les différentes combinaisons, rebooter, lors de l'affichage du menu, ouvrir une console grub en tapant c et utiliser les commandes précédentes. Par exemple :
grub >set menu_color_normal=blue/black grub >set menu_color_highlight=black/white
La modification de la couleur du texte de la console est immédiate.
Pour afficher le menu grub et visualiser les modifications de couleur du texte des entrées, taper esc.
Les commandes de définition de couleur doivent être intégrées dans le fichier de configuration grub.cfg. Deux possibilités :
soit modifier directement le fichier grub.cfg, en sâchant que la modification sera écrasée à la prochaine génération de grub par la commande update-grub.
Créer un fichier 05_debian_theme_custom à partir du fichier exemple 40_custom et y intégrer les lignes de commandes, l'objectif étant d'obtenir un fichier du type :
$ cat /etc/grub.d/05_debian_theme_custom
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
# Couleur du texte de la console
set color_normal=black/black
# Couleurs du texte des entrées
set menu_color_normal=blue/black
set menu_color_highlight=black/white
Vérifier l'intégration dans grub.cfg
$ cat /boot/grub/grub.cfg |grep menu_color set menu_color_normal=cyan/blue set menu_color_highlight=white/blue
set color_normal=black/black
set menu_color_normal=blue/black set menu_color_highlight=black/white
Les deux premières lignes correspondent à la définition du thème par défaut. Les lignes suivantes correspondent aux couleurs souhaitées et prendront le pas sur les précédentes.
Par défaut, la disposition du clavier, dans la console grub, est qwerty. La méthode décrite ci-dessous permet de modifier la disposition du clavier pendant la phase 2 de grub.
l'utilisation du répertoire "layouts" évite à avoir à spécifier le chemin complet du fichier du clavier
le nom du fichier du clavier généré (FR.kgb) est libre, mais l'extension gkb est imposée
le fichier est généré à partir du clavier français (fr). La liste des claviers est disponible dans /usr/share/X11/xkb/symbols/
$ sudo mkdir /boot/grub/layouts
$ sudo grub-kbdcomp -o /boot/grub/layouts/FR.gkb fr
Modifier /etc/default/grub, afin de remplacer le terminal d'entrée par défaut (console) par un terminal type at_keyboard (clavier interne laptop) ou usb_keyboard (clavier externe usb)
$ sudo echo "GRUB_TERMINAL_INPUT=at_keyboard" >>/etc/default/grub
$ cat <<EOF>>/etc/grub.d/40_custom
insmod keylayouts
keymap FR
EOF
$ sudo update-grub
Le clavier de la console grub sera directement en français.
Limitations : La modification de la disposition du clavier n'interviendra que si le répertoire grub est accessible, ce qui n'est pas le cas pendant la phase 1 de grub, par exemple, lors de la demande du mot de passe lorsque la partition de boot est chiffrée. Dans ce cas, il faudra embarquer les modifications ci-dessus dans l'image grub : voir Grub2 - Personnalisation Phase 1
$ grep "export GRUB" -B2 -A40 /usr/sbin/grub-mkconfig
# These are defined in this script, export them here so that user can
# override them.
export GRUB_DEVICE \
GRUB_DEVICE_UUID \
GRUB_DEVICE_BOOT \
GRUB_DEVICE_BOOT_UUID \
GRUB_FS \
GRUB_FONT \
GRUB_PRELOAD_MODULES \
GRUB_ACTUAL_DEFAULT
# These are optional, user-defined variables.
export GRUB_DEFAULT \
GRUB_HIDDEN_TIMEOUT \
GRUB_HIDDEN_TIMEOUT_QUIET \
GRUB_TIMEOUT \
GRUB_TIMEOUT_STYLE \
GRUB_DEFAULT_BUTTON \
GRUB_HIDDEN_TIMEOUT_BUTTON \
GRUB_TIMEOUT_BUTTON \
GRUB_TIMEOUT_STYLE_BUTTON \
GRUB_BUTTON_CMOS_ADDRESS \
GRUB_BUTTON_CMOS_CLEAN \
GRUB_DISTRIBUTOR \
GRUB_CMDLINE_LINUX \
GRUB_CMDLINE_LINUX_DEFAULT \
GRUB_CMDLINE_XEN \
GRUB_CMDLINE_XEN_DEFAULT \
GRUB_CMDLINE_LINUX_XEN_REPLACE \
GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT \
GRUB_CMDLINE_NETBSD \
GRUB_CMDLINE_NETBSD_DEFAULT \
GRUB_CMDLINE_GNUMACH \
GRUB_TERMINAL_INPUT \
GRUB_TERMINAL_OUTPUT \
GRUB_SERIAL_COMMAND \
GRUB_DISABLE_LINUX_UUID \
GRUB_DISABLE_RECOVERY \
GRUB_VIDEO_BACKEND \
GRUB_GFXMODE \
GRUB_BACKGROUND \
GRUB_THEME \
GRUB_GFXPAYLOAD_LINUX \
GRUB_DISABLE_OS_PROBER \
GRUB_INIT_TUNE \
GRUB_SAVEDEFAULT \
GRUB_ENABLE_CRYPTODISK \
GRUB_BADRAM \
GRUB_OS_PROBER_SKIP_LIST \
GRUB_DISABLE_SUBMENU \
GRUB_RECORDFAIL_TIMEOUT \
GRUB_RECOVERY_TITLE