Amorçage, démarrage du système

GRUB : Configurer le démarrage du PC

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

Introduction



Voici quelques astuces de paramétrage de GRUB 2.
C'est un peu en vrac mais bon !
La doc complète se trouve sur le site officiel : https://www.gnu.org/software/grub/manual/grub/html_node/Simple-configuration.html

Configurer Grub



Le fichier /boot/grub/grub.cfg (parfois situé dans /boot/grub2) est généré automatiquement par la commande grub-mkconfig (ou grub2-mkconfig).
Il n'est pas à modifier manuellement.
Pour configurer le GRUB, on va donc éditer le fichier /etc/default/grub

Une fois modifié, on regénèrera le fichier grub.cfg avec :

Code BASH :
grub-mkconfig -o /boot/grub/grub.cfg

ou
Code BASH :
grub2-mkconfig -o /boot/grub2/grub.cfg


A adapter en fonction de votre distribution.

Quelques modifications possibles dans GRUB



Ajouter des options au boot



Pour ajouter des options au kernel, pour fixer un paramètre, modifiez la ligne GRUB_CMDLINE_LINUX. Par exemple si je veux ajouter l'option usbcore.autosuspend=-1 :

Code TEXT :
GRUB_CMDLINE_LINUX=" usbcore.autosuspend=-1"



Modifier le temps d'affichage du menu



On peut modifier le temps d'affichage de la liste des systèmes à lancer.

Pour modifier ce timer, modifier la valeur de GRUB_TIMEOUT=. La valeur à indiquer est en secondes.
Une valeur de 0 bootera directement l'entrée par défaut.
Une valeur de -1 laissera affiché la liste jusqu’à ce que l'utilisateur indique son choix.

Activer ou désactiver le sous Menu



Si vous souhaitez que tous les anciens noyaux soient listés dans GRUB, vous pouvez définir l'option GRUB_DISABLE_SUBMENU :

Code TEXT :
GRUB_DISABLE_SUBMENU=true


Si vous voulez désactiver cette fonction, pour par exemple simplifier l'affichage en cas de dual boot, commentez la ligne (ne mettez pas à false) :

Code TEXT :
#GRUB_DISABLE_SUBMENU=true


Définir une entrée par défaut



Si vous avez par exemple Linux et Windows sur le même système, et que vous voulez définir le choix par défaut, sur Windows par exemple, voici comment faire.

Il est conseillé de désactiver le SUB_MENU comme vu plus haut.

Dans un premier temps, on va récupérer le "ID" du système à toujours démarrer dans le fichier grub.cfg :

Code BASH :
grep ^menuentry /boot/grub/grub.cfg

ou
Code BASH :
grep ^menuentry /boot/grub2/grub.cfg


Chez moi, la réponse est :
Code TEXT :
menuentry 'Fedora 31 (Workstation Edition)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-simple-05b61d0e-d062-4044-84af-a95b94cccef2' {
menuentry 'Windows 10 (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-28B66CC5B66C94DA' {


On repère donc l'ID des 2 systèmes :
- Fedora : gnulinux-simple-05b61d0e-d062-4044-84af-a95b94cccef2
- Windows 10 : osprober-chain-28B66CC5B66C94DA

On va donc définir dans /etc/default/grub la valeur de GRUB_DEFAULT :
Code BASH :
GRUB_DEFAULT=osprober-chain-28B66CC5B66C94DA


On regénère ensuite le grub.cfg et le tour est joué.

A noter, une valeur vide de GRUB_DEFAULT fera que GRUB sélectionnera la première entrée de la liste.

Masquer le menu de GRUB



Si vous voulez masquer GRUB 2, parce que vous utilisez toujours la première entrée, vous pouvez le faire en définissant une variable menu_auto_hide à 1 :

Code BASH :
grub-editenv - set menu_auto_hide=1

puis
Code BASH :
grub-mkconfig -o /boot/grub/grub.cfg


ou sur certaines distributions :

Code BASH :
grub2-editenv - set menu_auto_hide=1

puis
Code BASH :
grub2-mkconfig -o /boot/grub2/grub.cfg



Pour réafficher GRUB, on supprimera cette variable ainsi :

Code BASH :
grub-editenv - unset menu_auto_hide

puis
Code BASH :
grub-mkconfig -o /boot/grub/grub.cfg


ou sur certaines distributions :

Code BASH :
grub2-editenv - unset menu_auto_hide

puis
Code BASH :
grub2-mkconfig -o /boot/grub2/grub.cfg



Ajouter un thème à GRUB



C'est une demande que j'ai souvent.
Je met l'astuce ici, cependant, je n'ai pas trouvé d'utilité à décorer GRUB, on le voit si peu de temps...

Evidemment, si l'affichage de GRUB est désactivé, vous ne verrez pas le thème, reportez-vous au chapitre Masquer le menu de GRUB

Dans un premier temps, récupérez un thème qui vous plait sur le site https://www.gnome-look.org section GRUB THEMES : https://www.gnome-look.org/browse?cat=109&ord=latest

Pour cette démo, j'ai pris Darkmatter ( https://www.gnome-look.org/p/1603282 ) et plus particulièrement le fedora-1080p.

Téléchargez l'archive et décompressez-là.
Prenez le dossier du thème et déposez-le dans /boot/grub/themes ou /boot/grub2/themes.

Ensuite, éditez le fichier /etc/default/grub. Voici les variables à vérifier/modifier pour que le thème précédemment utilisé fonctionne :

Code TEXT :
GRUB_TIMEOUT=5
#GRUB_TERMINAL_OUTPUT="console"
GRUB_ENABLE_BLSCFG=false
GRUB_THEME="/boot/grub/themes/darkmatter/theme.txt"


GRUB_TIMEOUT : Oui sinon, vous n'avez pas le temps de voir le thème :D
#GRUB_TERMINAL_OUTPUT : doit être commenté, sinon, évidemment, GRUB s'affiche en mode terminal.
GRUB_ENABLE_BLSCFG=false : doit bien être positionné sur false si la variable existait et est sur true. Sinon, cela fait un conflit.
GRUB_THEME : Chemin du fichier .txt du thème, souvent nommé theme.txt et placé dans le dossier avec toutes les images.

Une fois modifié, on regénèrera le fichier grub.cfg avec :

Code BASH :
grub-mkconfig -o /boot/grub/grub.cfg

ou
Code BASH :
grub2-mkconfig -o /boot/grub2/grub.cfg