Mettre une image en fond sur grub 2

Ubuntu a une fâcheuse habitude depuis quelques version qui est de mettre un HORRIBLE fond violet en fond de base sur grub. Je remplaçais déjà avant le fond par une jolie image mais là en plus ça permet de corriger ce problème.

Pour ce faire,il n’y a rien de plus simple. Il suffit de mettre une image en JPG, PNG, TGA ou l’un des formats supportés par grub dans le dossier /boot/grub/. Une fois ceci fait, il suffit de réexécuter la commande :

update-grub

pour qu’il régénère le fichier /boot/grub/grub.cfg avec la première image rencontrée dans le dossier /boot/grub/ par ordre alphabétique.

Il m’est arrivé une fois de passer plus d’une heure à chercher d’où pouvait venir le fait que l’image ne s’affichait pas au démarrage alors que le fichier grub.cfg était bien configuré. En réalité le problème venait de certains format de compression de JPG qui ne sont pas pris en compte par grub. Ainsi, de manière global je conseil de mettre une image au format PNG afin d’éviter tout problème de ce genre.

Enlever les memtests de grub

Utilisant Xubuntu comme distribution principale, je me retrouve, comme avec Ubuntu d’ailleurs, avec memtest86+ d’installé par défaut. Or cette option me surcharge inutilement mon menu de boot grub alors que je ne suis amené à l’utiliser qu’une fois de temps en temps ou lors d’un gros crash de la machine dans lequel je soupçonne une défaillance matérielle (autant dire rarement).

Jusqu’ici, je supprimais purement et simplement memtest86+ de ma machine sans plus me poser de question puis j’actualisais mon menu avec grub-mkconfig.

Depuis ma dernière mise à jour de Xubuntu qui m’a réinstallé ce délicieux paquet, j’y ai réfléchis à deux fois et je me suis dit que je pouvais être amené à l’utiliser autrement qu’avec un liveCD (en vacances par exemple) et que ce n’était finalement pas une mauvaise chose de le conserver. Je ne voulais cependant toujorus pa qu’il figure dans mon menu de boot.

La solution s’est révélée simple puisqu’il m’a suffit de créer un dossier dans /etc/grub.d/, que j’ai nommé deactivate, mais le nom importe peu, et d’y mettre tous les scripts de /etc/grub.d/ que l’on ne souhaite plus voir exécuté. En l’occurence 20_memtest86+. Une fois ce petit déplacement fait, il suffit de regénérer son fichier /boot/grub/grub.cfg avec la commande :

grub-mkconfig -o /boot/grub/grub.cfg

pour ne plus voir apparaître cet énervant memtest au démarrage. Pour le réactiver, il me suffit de remettre 20_memtest86+ à sa place d’origine et à refaire la commande si dessus.

Configuration de grub

Installant toujours plusieurs systèmes d’exploitations sur mon ordinateur portable, j’ai besoin d’un bootloader me permettant de switcher facilement entre eux. Je détaillerais dans un prochain article les différents systèmes d’exploitation que j’utilise.

La version de grub que j’utilise est la version Grub 2 aussi connue sous le nom de grub-pc  (à l’opposé de la version 1, aussi nommée, grub-legacy).

Le fichier de configuration qui sera lu à chaque démarrage est le fichier /boot/grub/grub.cfg. Ce fichier est reconstruit à chaque fois qu’une nouvelle version du noyau est installée, ou, plus globalement à chaque fois que la commande grub-mkconfig est exécutée. Elle se sert des scripts situés dans /etc/grub.d/ pour générer le fichier de boot, ainsi que de /etc/default/grub.

Mes besoins de personnalisation de grub se limitent à l’édition de /etc/default/grub que je modifie comme ceci :

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=5
GRUB_GFXMODE=1920×1080
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT= »quiet splash »
GRUB_CMDLINE_LINUX= » »

Je boot ainsi sur le premier élément de ma liste par défaut après 5 secondes si aucune touche n’est pressée.

Pour avoir plus de détail sur les options de ce fichier, on peut lancer la commande :

info -f grub -n 'Simple configuration'

Je rajoute depuis peu une image de fond à grub. Contrairement à grub-legacy, ceci est d’une simplicité déconcertante puisqu’il suffit de copier une image dans /boot/grub pour qu’elle soit automatiquement détectée et ajoutée à grub.cfg lors de sa génération. La première image rencontrée par ordre alphabétique est utilisée. Les formats jpg, png et tga sont supportés. Si l’on souhaite le faire manuellement, il est possible de spécifier le chemin de l’image avec l’option « GRUB_BACKGROUND=« .

Enfin, je supprime toujours memtest86+ dans /boot/ pour ne pas avoir une entrée dans le menu alors que je ne fais des tests mémoires que quand je rencontre des problèmes matériels (autant dire presque jamais).

Je compte rajouter un mot de passe sous peu pour bloquer l’accès à l’édition des commandes de boot. Ceci permet en effet de pallier à une faille de sécurité importante, conservée pour permettre le changement du mot de passe root en cas d’oublie, et qui permet de lancer un shell en super utilisateur, sans demander de mot de passe.