Modifiez Grub 2 comme vous le voulez !

Publié le par JB

Comment est-ce qu'on modifie-t-on ce fichu GRUB ?

 

      Grub, c'est ce programme qui gère le boot (img) sur un pc avec plusieurs systèmes d'exploitation installés (Windows XP, Vista, Ubuntu, etc). Ce n'est pas le seul mais on le retrouve sur une majorité des PC, puisqu'intégré à Ubuntu, Debian, Suse, Mandriva, Fedora et j'en passe.

 

      Mais Grub, c'est tout pas beau, vous aimez pas voir des lignes imprononçables partout sur votre écran, et le memtest ne vous sera sûrement jamais utile ... Bienvenue au club !

Alors si Grub est votre bootloader, si vous voulez vous aventurer un peu dans les entrailles de votre PC, et si vous voulez des étoiles roses brillantes en fond d'écran ... Suivez-moi !

 

      La seconde condition, c'est d'avoir la version 2 (ou 1.97 et cie) de Grub. Elle est d'origine sur les distributions récentes, depuis Ubuntu 9.10. En revanche, si vous avez mis à jour Ubuntu depuis une 9.04 ou ultérieure, il y a de grandes chances pour que votre grub ne soit qu'en première version.

      Un passage à niveau n'est pas indispensable et alors il vous suffira de suivre l'ancien tutoriel de Jules. Néanmoins, Grub2 est très bien fait et bien plus pratique/simple à modifier !

 

1. Passage à niveau

 

Donc si Grub Legacy est encore installé sur votre PC, il suffit d'installer le paquet grub-pc :

 

apt://grub-pc

 

sudo apt-get install grub-pc

 

Ensuite, redémarrez votre ordinateur, et Grub Legacy vous proposera d'initialiser Grub 2 : sélectionnez "Chainload to Grub 2"

 

Pour remplacer Grub Legacy par la version récente, il ne reste plus qu'à exécuter le script : 

sudo upgrade-from-grub-legacy

 

La doc stipule :

Note : A un moment donné, vous devrez préciser dans quel disque dur GRUB 2 doit être installé (celui où est installé Ubuntu). À l'aide de la barre d'espacement du clavier, cochez ou décochez le disque dur concerné. Ne zappez pas cette étape, elle est obligatoire même si vous n'avez qu'un disque dur sinon vous risquez une Error 15 au redémarrage.

 

Donc je ne peux que vous le recommander :D

 

2. Nouveau fonctionnement

 

- Le nouveau Grub est composé de scripts qui génèrent l'équivalent du menu.lst dans la Legacy. On utilisera ces scripts pour trouver des systèmes d'exploitation, changer le fond d'écran, etc.

 

- La commande pour mettre à jour Grub est  sudo update-grub

 

- Le fichier /boot/grub/grub.cfg est ce fichier généré. Son édition est déconseillée.

 

inkscape.png

Mes schémas sont géniaux !

 

On utilisera différents fichiers :

 

Les scripts de /etc/grub.d/ :

  • 00_header : permet de gérer les options de /etc/default/grub.
  • 05_debian_theme : C'est là qu'on met un Blue Screen of Death en fond d'écran
  • 10_linux : pour lancer l'OS depuis lequel vous éditez sûrement ce fichier.
  • 20_memtest86+
  • 30_os-prober : pour rechercher d'autres systèmes d'exploitation
  • 40_custom : configuration perso des systèmes d'exploitation

 

/etc/default/grub : Les paramètres à modifier (compte à rebours, OS sélectionné par défaut, etc.)

Toutes les infos sont ici.

 

3. Configuration

 

Les fichiers à éditer nécessitent les droits super-utilisateur : root.

En console, on utilise sudo, voire gksudo pour le mode graphique.

 

Pour éditer le fichier /etc/default/grub, on ouvre un terminal et on tape :

Pour Gnome :

sudo gedit /etc/default/grub

Pour KDE :

sudo kate /etc/default/grub


*gedit et kate sont à remplacer par votre éditeur de texte favoris si ceux-ci ne sont pas installés*

 

Au niveau des modifications, il faut repérer les variables principales :

 

  • GRUB_DEFAULT=X : permet de modifier la ligne pré-sélectionnée au lancement de grub. Par défaut, c'est la première (0) qui se lancera. Attention à la liste qui commence toujours par 0 ! (Remplacer X par la ligne voulue)
  • GRUB_TIMEOUT=X : La durée du compte à rebours en secondes. Un 0 enlèvera le décompte. Un -1 n'en fera pas et attendra un choix de l'utilisateur pour charger l'OS voulu.
  • GRUB_DISTRIBUTOR={string} : permet de modifier le nom du noyau à charger. Les explications sont dans la doc.
  • GRUB_DISABLE_LINUX_RECOVERY={true/false} : une valeur true permet d'afficher systématiquement la ligne de réparation d'un noyau linux (recovery mode). La valeur false enlève cette ligne.
  • GRUB_GFXMODE=1600x1050x32 : Cette ligne permet de modifier la résolution de Grub. Pensez à la décommenter (enlever le # devant). Les résolutions possibles sont accessibles en tapant la touche 'c' dans Grub, au démarrage. Une fois la console atteinte, la commande vbeinfo affiche toutes les valeurs acceptées par le système. Le troisième nombre, ici x32, désigne la "qualité" de l'image. Le nombre de bits sur lequel sera codé une couleur. x8 est une mauvaise qualité, x16 devient bon, x32 est parfait, c'est l'image visible sur la plupart des écrans. (Attention, c'est bien un x et non un *). Si la valeur entrée est impossible, l'affichage revient en noir/blanc 640x480.

 

Pour aller plus loin dans la configuration de /etc/default/grub : http://grub.enbug.org/OptionsDeGrub

 

Ensuite, le plus intéressant est d'ajouter un fond d'écran. Cela se fait depuis /etc/grub.d/05_debian_theme.

Ici, un petit problème se pose ... deux versions très utilisées de grub fournies avec Ubuntu s'opposent. Je schématise ça (comme un Dieu) (!) :

 

ubuntu-copie-1.png

 

Encore une fois :

sudo gedit /etc/grub.d/05_debian_theme

ou

sudo kate /etc/grub.d/05_debian_theme

 

On commence par Grub 1.97 intégré à la 9.10 Karmic

 

  • ligne 16 : pour éditer le fond d'écran. grub 2 a l'avantage d'être beaucoup plus souple que Grub Legacy sur ce point là. Pour prendre l'exemple de la doc :
    for i in {/boot/grub,/usr/share/images/desktop-base}/00_image_de_fond.{png,tga,jpg,jpeg} ; do
    à la place de : for i in {/boot/grub,/usr/share/images/desktop-base}/moreblue-orbit-grub.{png,tga} ; do
  • lignes 39 et 40 : Les couleurs du texte / du fond du texte. Black n'est pas noir mais transparent La ligne 40 reprend les mêmes pparamètres mais pour la ligne sélectionnée.
    set color_normal=white/black
    set color_highlight=light-green/magenta

 

Dans Grub 1.98 intégré d'origine à la 10.04 Lucid, l'édition est encore plus simple :

Lignes 10, 11, 12


  • WALLPAPER="votre_image.jpg"
  • COLOR_NORMAL="white/black"
  • COLOR_HIGHLIGHT="light-green/magenta"

 

Vous n'avez plus qu'à prendre une image adaptée à la résolution choisie pour votre Grub ;)

L'outil convert peut aider en console, à moins d'utiliser Gimp :

 

convert fichier_de_départ.jpg -resize 1650x1080! -depth 16 image_grub.jpg

 

Puis, la copier dans le dossier Grub :

sudo cp $HOME/Images/image_exemple.jpg /boot/grub/00_image_de_fond.jpg

 

Vous avez donc un grub tout propre !

 

Pour finir, on n'oublie pas le fameux :

 

sudo update-grub

 

Et comme promis, une petite idée de Blue Screen of Death en fond de Grub :

 

bsod

(cliquer pour agrandir)

 

Un 800x600 suffit largement pour copier Windows !

 

A vos consoles !


La quasi totalité des infos vient de la doc Ubuntu

Vous y trouverez plein d'infos supplémentaires ainsi qu'une bonne dose d'autres modifications à effectuer.

Publié dans Trucs et astuces

Commenter cet article