lalahop

GRUB2 : Impossible d’avoir une image de fond

À 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 !

Les commentaires sont fermés