Comment vérifier si les paramètres de GRUB sont appliqués sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), nous apprendrons à vérifier si les modifications apportées à la configuration du chargeur de démarrage GRUB sous Linux ont été correctement appliquées. Nous explorerons le fichier de configuration principal de GRUB situé à /etc/default/grub pour comprendre ses paramètres.

Ensuite, nous examinerons le fichier de configuration du menu GRUB généré à /boot/grub/grub.cfg pour voir comment les paramètres du fichier par défaut sont traduits. Enfin, nous examinerons les paramètres de démarrage du noyau (kernel) à l'aide de la commande dmesg pour confirmer que les paramètres de GRUB sont reflétés dans le système en cours d'exécution.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") subgraph Lab Skills linux/cat -.-> lab-558789{{"Comment vérifier si les paramètres de GRUB sont appliqués sous Linux"}} linux/grep -.-> lab-558789{{"Comment vérifier si les paramètres de GRUB sont appliqués sous Linux"}} end

Vérifier la configuration de GRUB avec cat /etc/default/grub

Dans cette étape, nous allons explorer le fichier de configuration de GRUB. GRUB (GRand Unified Bootloader) est le chargeur de démarrage pour de nombreuses distributions Linux, y compris Ubuntu. C'est le premier logiciel qui s'exécute lorsque vous démarrez votre ordinateur, et il est responsable du chargement du noyau (kernel) du système d'exploitation.

Le fichier de configuration principal de GRUB se trouve à /etc/default/grub. Ce fichier contient des paramètres qui déterminent le comportement de GRUB, comme le système d'exploitation par défaut à démarrer, le délai d'attente avant le démarrage et les paramètres du noyau.

Voyons le contenu de ce fichier en utilisant la commande cat. La commande cat est utilisée pour afficher le contenu des fichiers.

Ouvrez votre terminal s'il n'est pas déjà ouvert. N'oubliez pas que vous pouvez trouver l'icône de Xfce Terminal sur le côté gauche de votre bureau.

Tapez la commande suivante et appuyez sur Entrée :

cat /etc/default/grub

Vous verrez le contenu du fichier /etc/default/grub affiché dans votre terminal. Cela ressemblera à ceci :

## If you change this file, run 'update-grub' afterwards to update
## /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

## Uncomment to enable graphical terminal (grub-gfxpayload is needed)
#GRUB_TERMINAL=gfxterm

## The resolution used on graphical terminal
## settings below may not work on your chipset but may be useful for EFI panel
## sizes
#GRUB_GFXMODE=640x480

## Uncomment to disable graphical terminal on boot problems
#GRUB_TERMINAL_INPUT=console

## Uncomment to disable menu scrolling
#GRUB_MENU_SCROLL_STYLE=menu

## Uncomment to enable hidden menu by default
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true

## Uncomment to enable BadRAM filtering, modify to suit your needs
## This works only with Linux 2.6.25 or later using pci_filter_enable=1
## and needs BadRAM filtering support in the kernel
#GRUB_BADRAM="0x0123456789abcdef,0xghijkllmnopqrstuvwxyz"

## Uncomment to disable graphical boot (use text mode)
#GRUB_DISABLE_GRAPHICS_OVERRIDE=true

## If you want to enable the GRUB boot menu at boot time, uncomment the following line:
#GRUB_ENABLE_CRYPTODISK=y

## The following lines are for the default grub menu entry
#GRUB_INIT_TUNE="480 440 1"

## Uncomment to set a custom theme
#GRUB_THEME=/path/to/grub/theme

## Uncomment to enable os-prober, which detects other operating systems
#GRUB_DISABLE_OS_PROBER=false

Ce fichier contient divers paramètres. Par exemple :

  • GRUB_DEFAULT : Spécifie l'entrée de menu par défaut à démarrer. 0 signifie la première entrée.
  • GRUB_TIMEOUT : Définit le temps en secondes avant que l'entrée par défaut soit démarrée automatiquement.
  • GRUB_CMDLINE_LINUX_DEFAULT : Contient les paramètres du noyau qui sont transmis au noyau lors du démarrage de l'entrée par défaut.

Comprendre ce fichier est crucial pour la configuration avancée de Linux et la résolution des problèmes de démarrage.

Cliquez sur Continuer pour passer à l'étape suivante.

Dans l'étape précédente, nous avons examiné le fichier /etc/default/grub, qui est le fichier de configuration principal de GRUB. Cependant, ce fichier n'est pas directement utilisé par GRUB lors du processus de démarrage. Au lieu de cela, les paramètres de /etc/default/grub sont utilisés pour générer le fichier de configuration du menu GRUB réel, qui se trouve à /boot/grub/grub.cfg.

Le fichier /boot/grub/grub.cfg est automatiquement généré par la commande update-grub (ou grub-mkconfig). Il contient les entrées de menu que vous voyez lorsque l'ordinateur démarre, vous permettant de choisir quel système d'exploitation ou noyau (kernel) démarrer.

Important : Vous ne devez jamais modifier manuellement le fichier /boot/grub/grub.cfg. Toute modification que vous apportez sera écrasée la prochaine fois que la commande update-grub sera exécutée. Modifiez toujours le fichier /etc/default/grub puis exécutez sudo update-grub pour appliquer vos modifications.

Voyons le contenu du fichier /boot/grub/grub.cfg en utilisant la commande cat.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

cat /boot/grub/grub.cfg

Vous verrez une sortie beaucoup plus longue et complexe que celle de /etc/default/grub. Ce fichier contient la configuration détaillée de chaque entrée du menu de démarrage, y compris le chemin du noyau, le chemin de l'initrd et les paramètres de ligne de commande du noyau.

#
## DO NOT EDIT THIS FILE
#
## It is automatically generated by grub-mkconfig using templates
## from /etc/grub.d and settings from /etc/default/grub
#

#### BEGIN /etc/grub.d/00_header ###
...
#### END /etc/grub.d/00_header ###

#### BEGIN /etc/grub.d/05_debian_theme ###
...
#### END /etc/grub.d/05_debian_theme ###

#### BEGIN /etc/grub.d/10_linux ###
...
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' {
	recordfail
	...
	linux	/boot/vmlinuz-*-generic root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro  quiet splash $vt_handoff
	initrd	/boot/initrd.img-*-generic
}
...
#### END /etc/grub.d/10_linux ###

#### BEGIN /etc/grub.d/20_linux_xen ###
...
#### END /etc/grub.d/20_linux_xen ###

#### BEGIN /etc/grub.d/30_os-prober ###
...
#### END /etc/grub.d/30_os-prober ###

#### BEGIN /etc/grub.d/30_uefi-firmware ###
...
#### END /etc/grub.d/30_uefi-firmware ###

#### BEGIN /etc/grub.d/40_custom ###
...
#### END /etc/grub.d/40_custom ###

#### BEGIN /etc/grub.d/41_custom ###
...
#### END /etc/grub.d/41_custom ###

Vous pouvez faire défiler la sortie pour voir les différentes entrées de menu et leurs configurations. Recherchez les lignes commençant par menuentry. Elles définissent les options qui apparaissent dans le menu de démarrage GRUB.

Ce fichier est complexe, et vous n'avez pas besoin de comprendre chaque ligne pour le moment. Le point clé à retenir est que /boot/grub/grub.cfg est le fichier que GRUB utilise réellement, et qu'il est généré à partir de /etc/default/grub et des scripts dans /etc/grub.d.

Cliquez sur Continuer pour passer à l'étape suivante.

Inspecter les paramètres GRUB dans dmesg

Dans les étapes précédentes, nous avons examiné les fichiers de configuration de GRUB /etc/default/grub et /boot/grub/grub.cfg. Nous avons vu que /etc/default/grub contient la variable GRUB_CMDLINE_LINUX_DEFAULT, qui spécifie les paramètres du noyau (kernel). Ces paramètres sont transmis au noyau Linux lors de son démarrage.

La commande dmesg est utilisée pour afficher les messages du tampon circulaire du noyau. Ces messages contiennent des informations sur le processus de démarrage du système, y compris les paramètres de ligne de commande du noyau qui ont été utilisés.

Utilisons dmesg pour voir les paramètres de ligne de commande du noyau qui ont été transmis par GRUB lors du démarrage de cette machine virtuelle.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

dmesg | grep "Kernel command line"

Voici une explication de la commande :

  • dmesg : Affiche les messages du noyau.
  • | : C'est un tuyau (pipe). Il prend la sortie de la commande de gauche (dmesg) et l'envoie en tant qu'entrée à la commande de droite (grep).
  • grep "Kernel command line" : Cette commande recherche les lignes contenant exactement la phrase "Kernel command line" dans l'entrée qu'elle reçoit (de dmesg).

La sortie montrera la ligne de commande du noyau qui a été utilisée pour démarrer le système. Elle ressemblera à ceci :

[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-*-generic root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro quiet splash vt.handoff=7

Vous pouvez voir les paramètres comme quiet et splash qui ont probablement été définis dans la variable GRUB_CMDLINE_LINUX_DEFAULT dans /etc/default/grub. Ces paramètres indiquent au noyau comment se comporter lors du démarrage. Par exemple, quiet réduit la quantité de sortie lors du démarrage, et splash active un écran de démarrage graphique.

Inspecter la ligne de commande du noyau avec dmesg est une technique utile pour vérifier que vos modifications de configuration de GRUB sont correctement appliquées et pour résoudre les problèmes de démarrage liés aux paramètres du noyau.

Vous avez maintenant exploré avec succès la configuration de GRUB et vérifié les paramètres du noyau en utilisant dmesg.

Cliquez sur Continuer pour terminer ce laboratoire.

Résumé

Dans ce laboratoire, nous avons appris à vérifier si les paramètres de GRUB sont appliqués sous Linux. Nous avons commencé par examiner le fichier de configuration principal de GRUB, /etc/default/grub, en utilisant la commande cat pour comprendre son contenu et les différents paramètres qui contrôlent le comportement de GRUB lors du processus de démarrage.

En visualisant le fichier /etc/default/grub, nous avons eu un aperçu des paramètres tels que l'entrée de démarrage par défaut, les valeurs de délai d'attente (timeout) et les arguments de ligne de commande du noyau (kernel). Cette étape initiale est cruciale pour comprendre la configuration prévue de GRUB avant de vérifier son application.