Linux — utilisation avancée et administration · Étape 16

Lis le démarrage, le noyau et l’initramfs

Reconstitue la chaîne firmware → bootloader → noyau → initramfs → PID 1, puis mesure le boot sans modifier la machine.

Durée indicative · ~1 h 30Niveau intermédiairePrérequis conseillé · Leçon 15 — édition sécurisée de configurationsPratique · TP
L’idée reçue

« Le BIOS démarre directement systemd. »

Le firmware charge un bootloader. Celui-ci charge le noyau et souvent un initramfs. Le noyau monte ensuite le système racine et lance le premier processus de l’espace utilisateur.

01Prépare le laboratoire

chmod +x module4-systemd-boot-lab.sh
./module4-systemd-boot-lab.sh setup
./module4-systemd-boot-lab.sh status

Le rapport est produit sans modifier le bootloader, les unités systemd ou la cible par défaut.

02Reconstitue la chaîne de démarrage

Étape
Responsabilité
Preuve utile
Firmware
initialiser le matériel et choisir un support
mode BIOS/UEFI, variables EFI
Bootloader
choisir et charger noyau/initramfs
configuration GRUB et entrée sélectionnée
Noyau
pilotes, mémoire, ordonnanceur, racine initiale
/proc/cmdline, dmesg
initramfs
préparer stockage, chiffrement, LVM et vraie racine
image initrd, journaux early boot
PID 1
lancer et superviser l’espace utilisateur
ps -p 1, unités systemd

03Lis la commande du noyau

cat /proc/cmdline
uname -r
find /boot -maxdepth 1 -type f ( -name 'vmlinuz*' -o -name 'initr*' ) -printf '%f
' 2>/dev/null | sort

Les paramètres de /proc/cmdline sont ceux effectivement reçus par le noyau courant. Ils peuvent préciser la racine, le mode lecture seule, la console, le niveau de verbosité ou des options de dépannage.

04Identifie PID 1

ps -p 1 -o pid,ppid,comm,args
readlink -f /proc/1/exe
cat /proc/1/comm
systemd --version | sed -n '1,3p'
Dans un conteneur, PID 1 peut ne pas être systemd. Il faut distinguer l’environnement observé d’une VM ou d’un serveur démarré normalement.

05Mesure le boot

systemd-analyze time
systemd-analyze blame | sed -n '1,20p'
systemd-analyze critical-chain
systemctl --failed

blame classe les durées mais ne prouve pas qu’une unité bloque le boot. critical-chain montre la chaîne temporelle déterminante.

06Lis les journaux du démarrage

journalctl -b --no-pager | sed -n '1,80p'
journalctl -b -p warning..alert --no-pager
journalctl -k -b --no-pager | sed -n '1,80p'
last -x | sed -n '1,12p'

-b sélectionne le boot courant. -k limite aux messages du noyau. La priorité réduit le bruit mais ne remplace pas la chronologie complète.

07Localise une panne hypothétique

Challenge autonome

Construis un arbre de diagnostic

Pour chacun des symptômes suivants, indique l’étape probable et la preuve à collecter : aucun écran après firmware, menu GRUB visible mais noyau non chargé, shell initramfs, emergency.target, service applicatif en échec après boot.

Ce que tu retiens

Diagnostiquer le démarrage consiste à identifier la dernière étape réussie. La ligne du noyau, PID 1, les unités en échec et les journaux du boot permettent de réduire rapidement le périmètre.

Ta progression

Chargement de l’état… Se connecter pour synchroniser.