Comment vérifier si une option de démarrage du noyau (kernel) est activée 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), vous apprendrez à vérifier si une option de démarrage spécifique du noyau (kernel) est activée sous Linux. Nous allons explorer trois méthodes clés pour y parvenir.

Tout d'abord, vous utiliserez la commande cat /proc/cmdline pour afficher les arguments de ligne de commande transmis au noyau (kernel) lors de la session de démarrage actuelle. Ensuite, vous examinerez le fichier de configuration GRUB situé à l'emplacement /etc/default/grub pour comprendre où certaines de ces options de démarrage sont configurées. Enfin, vous inspecterez les journaux de démarrage à l'aide de la commande dmesg pour voir comment le noyau (kernel) a interprété et appliqué les options de démarrage. En effectuant ces étapes, vous acquerrez des compétences pratiques pour diagnostiquer et comprendre le processus de démarrage de votre système Linux.


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/BasicFileOperationsGroup -.-> linux/less("File Paging") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") subgraph Lab Skills linux/cat -.-> lab-558719{{"Comment vérifier si une option de démarrage du noyau (kernel) est activée sous Linux"}} linux/less -.-> lab-558719{{"Comment vérifier si une option de démarrage du noyau (kernel) est activée sous Linux"}} linux/grep -.-> lab-558719{{"Comment vérifier si une option de démarrage du noyau (kernel) est activée sous Linux"}} end

Vérifier les options de démarrage avec cat /proc/cmdline

Dans cette étape, nous allons explorer comment afficher les options de démarrage utilisées lors du démarrage de votre système Linux. Ces informations sont stockées dans un fichier spécial au sein du système de fichiers /proc.

Le système de fichiers /proc est un système de fichiers virtuel sous Linux qui fournit des informations sur les processus et d'autres informations système. Il ne contient pas de vrais fichiers sur votre disque, mais offre plutôt un aperçu des structures de données du noyau (kernel).

Le fichier qui nous intéresse est /proc/cmdline. Ce fichier contient les arguments de ligne de commande transmis au noyau (kernel) au moment du démarrage. Ces arguments peuvent influencer le comportement du noyau (kernel) et les périphériques matériels qu'il détecte.

Pour afficher le contenu de ce fichier, nous utiliserons la commande cat. La commande cat est un utilitaire simple utilisé pour afficher le contenu des fichiers.

Ouvrez votre terminal s'il n'est pas déjà ouvert. Vous pouvez le faire en cliquant sur l'icône Xfce Terminal sur le côté gauche de votre bureau.

Maintenant, tapez la commande suivante et appuyez sur Entrée :

cat /proc/cmdline

Vous verrez une sortie similaire à celle-ci :

BOOT_IMAGE=/boot/vmlinuz-... root=UUID=... ro console=ttyS0,... quiet splash vt.handoff=7

La sortie exacte variera en fonction de la configuration de votre système, mais elle affichera l'image du noyau (kernel) qui est démarrée (BOOT_IMAGE), l'emplacement du système de fichiers racine (root=), et d'autres options telles que ro (système de fichiers en lecture seule initialement), quiet et splash.

Comprendre ces options de démarrage peut être utile pour résoudre les problèmes de démarrage ou configurer des comportements spécifiques du noyau (kernel).

N'oubliez pas que /proc/cmdline est un fichier dynamique généré par le noyau (kernel), donc son contenu reflète la session de démarrage actuelle.

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

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

Dans l'étape précédente, nous avons examiné les arguments de ligne de commande transmis au noyau (kernel) après son démarrage. Maintenant, regardons d'où certains de ces arguments peuvent provenir : le fichier de configuration GRUB.

GRUB (GRand Unified Bootloader) est un chargeur de démarrage (boot loader). Son rôle principal est de charger le noyau (kernel) du système d'exploitation en mémoire et de lui transférer le contrôle. Le fichier de configuration GRUB détermine les options du menu de démarrage, le système d'exploitation par défaut et les paramètres du noyau (kernel).

Le fichier de configuration principal de GRUB sur de nombreux systèmes Linux est /etc/default/grub. Ce fichier contient les paramètres utilisés pour générer la configuration réelle du menu de démarrage GRUB.

Nous allons à nouveau utiliser la commande cat pour afficher le contenu de ce fichier.

Ouvrez votre terminal s'il n'est pas déjà ouvert.

Tapez la commande suivante et appuyez sur Entrée :

cat /etc/default/grub

Vous verrez une sortie similaire à celle-ci :

## Si vous modifiez ce fichier, exécutez 'update-grub' ensuite pour mettre à jour
## /boot/grub/grub.cfg.
## Pour une documentation complète des options de ce fichier, consultez :
##   info -f grub -n 'Simple configuration'

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=""

## Décommentez pour activer le démarrage depuis un écran graphique complet en utilisant grub-gfxpayload
#GRUB_GFXPAYLOAD_LINUX=keep

## Décommentez pour désactiver le terminal graphique (grub-pc uniquement)
#GRUB_TERMINAL=console

## La résolution utilisée sur le terminal graphique
## doit être au format par exemple 640x480 ou 800x600 ou 1024x768
## et votre carte graphique doit la supporter. Une liste de toutes les résolutions disponibles peut
## être trouvée avec la commande 'videoinfo' dans grub.
#GRUB_GFXMODE=640x480

## Décommentez si vous ne voulez pas que GRUB transmette le paramètre "root=UUID=xxx" à Linux
#GRUB_DISABLE_UUID=true

## Décommentez pour désactiver la génération d'entrées de menu en mode de récupération
#GRUB_DISABLE_RECOVERY="true"

## Décommentez pour obtenir un bip au démarrage de GRUB
#GRUB_INIT_TUNE="480 440 1"

Recherchez la ligne commençant par GRUB_CMDLINE_LINUX_DEFAULT. Les options listées ici (comme "quiet splash") sont souvent transmises au noyau (kernel) au moment du démarrage, et vous les avez peut - être vues dans la sortie de cat /proc/cmdline à l'étape précédente.

Ce fichier est important car il vous permet de configurer les paramètres par défaut du noyau (kernel) sans avoir à les taper manuellement à chaque démarrage.

Note importante : Si vous deviez apporter des modifications à ce fichier sur un système réel, vous devriez généralement exécuter sudo update-grub ensuite pour appliquer les modifications au fichier de configuration de démarrage réel (/boot/grub/grub.cfg). Cependant, dans cet environnement de laboratoire (lab), nous nous contentons d'inspecter le fichier.

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

Inspecter les journaux de démarrage avec dmesg

Dans cette étape finale, nous allons examiner les messages du tampon circulaire du noyau (kernel ring buffer) en utilisant la commande dmesg. Le tampon circulaire du noyau stocke les messages du noyau (kernel), y compris les informations sur la détection du matériel, les pilotes de périphériques et les événements système qui se produisent lors du processus de démarrage.

La commande dmesg est utilisée pour afficher ces messages. C'est un outil essentiel pour diagnostiquer les problèmes matériels ou comprendre ce qui s'est passé lors du démarrage du système.

Ouvrez votre terminal s'il n'est pas déjà ouvert.

Tapez la commande suivante et appuyez sur Entrée :

dmesg

Cette commande affichera potentiellement une très longue liste de messages. Ces messages sont générés par le noyau (kernel) lors de son initialisation et de son interaction avec le matériel et le logiciel du système.

Vous verrez une sortie similaire à celle-ci (la sortie exacte variera considérablement) :

[    0.000000] Linux version ... (buildd@lcy02-amd64-...) (gcc-...) #...-Ubuntu SMP ...
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-... root=UUID=... ro console=ttyS0,... quiet splash vt.handoff=7
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
...
[    1.234567] usbcore: registered new interface driver usbfs
[    1.234567] usbcore: registered new interface driver hub
[    1.234567] usbcore: registered new device driver usb
...

Notez que la sortie inclut la version du noyau (kernel) et les arguments de ligne de commande, similairement à ce que nous avons vu dans /proc/cmdline.

Étant donné que la sortie de dmesg peut être très longue, il est souvent utile de la rediriger vers un visualiseur (pager) comme less ou more pour la consulter écran par écran.

Essayez cette commande :

dmesg | less

Maintenant, vous pouvez utiliser les touches fléchées pour faire défiler la sortie vers le haut et vers le bas. Appuyez sur q pour quitter less.

Vous pouvez également filtrer la sortie en utilisant grep pour rechercher des mots - clés spécifiques, comme "error" ou le nom d'un périphérique matériel.

Par exemple, pour voir les messages liés aux périphériques USB :

dmesg | grep -i usb

Cette commande affichera uniquement les lignes contenant "usb" (sans tenir compte de la casse grâce au flag -i).

Explorer la sortie de dmesg est une compétence fondamentale pour l'administration et la résolution de problèmes de systèmes Linux.

Cliquez sur Continuer pour terminer ce laboratoire (lab).

Résumé

Dans ce laboratoire (lab), nous avons appris à vérifier si une option de démarrage du noyau (kernel) est activée sous Linux en examinant le fichier /proc/cmdline. Ce fichier offre une vue dynamique des arguments de ligne de commande transmis au noyau (kernel) lors de la session de démarrage actuelle, permettant de comprendre comment le système a démarré et sa configuration initiale.

Nous avons également commencé à explorer la source de ces options de démarrage en examinant le fichier de configuration GRUB, /etc/default/grub, qui est un emplacement clé pour définir les paramètres de démarrage du noyau (kernel) avant même le démarrage du système.