À chaque installation d'une Debian sur une de mes machines personnelles, c'est la même chose : GRUB2 apparaît avec son thème bleu old-school au lieu d'une image. Je n'ai jamais eu le temps de m'occuper de ce problème d'autant plus que lors d'une mise à jour de GRUB via les dépôts, ce problème se corrige de lui-même et le fond du menu de boot devient aux couleurs de Debian.
Mais cette fois-ci, j'ai voulu comprendre.
Après avoir éclusé les forums et essayé un tas de commandes (update-alternatives, ajout de "GRUB_BACKGROUND" dans /etc/default/grub, ...), j'ai décidé d'étudier le script le plus directement responsable : /etc/grub.d/05_debian_theme.
Après analyse (echo "" > /home/guigui/test étape par étape dans la fonction set_background_image()), il s'avère que je ne dépassais pas la première étape c'est-à-dire la recherche d'un mode d'output compatible avec l'affichage d'un background :
# Step #1: Search all available output modes ... local output for output in ${GRUB_TERMINAL_OUTPUT}; do if [ "x$output" = "xgfxterm" ]; then break fi done |
À partir de là, la solution devient évidente : on édite le fichier /etc/default/grub pour que le mode d'output corresponde à ce qui est attendu.
La ligne :
#GRUB_TERMINAL=console |
devient :
GRUB_TERMINAL=gfxterm
|
-----
La ligne :
#GRUB_GFXMODE=640x480 |
devient :
GRUB_GFXMODE=640x480
|
Adaptez la définition à votre situation (vbeinfo, tout ça).
On met l'image de son choix dans /boot/grub. L'image doit être au format jpg|tga|png et doit être des dimensions spécifiées dans GRUB_GFXMODE. ImageMagick est votre ami. Normalement, Debian permet de choisir l'image via la commande update-alternatives --config desktop-grub mais cela ne semble pas fonctionner chez moi.
On lance :
sudo update-grub
|
ÉDIT du 24/05/2013 à 18h05 :
Si, lors de l'update-grub, vous avez ce message d'erreur :
No font for gfxterm found. |
Il suffit d'utiliser les commandes suivantes :
apt-get install unifont sudo grub-mkfont /usr/share/fonts/truetype/unifont/unifont.ttf -o /boot/grub/unifont.pf2 |
Puis de relancer l'update-grub.
Fin de l'édit
On reboot pour admirer le résultat !