Diagnostic et résolution des problèmes de démarrage Linux : un guide étape par étape

Récupérez les échecs de démarrage Linux en vérifiant le firmware, GRUB, les paramètres du noyau, les systèmes de fichiers, l'initramfs, les journaux et les supports de secours.

Diagnostic et résolution des problèmes de démarrage Linux : un guide étape par étape

Les systèmes Linux sont généralement robustes, mais lorsqu'un échec de démarrage se produit, il peut interrompre des opérations critiques. Comprendre le processus de démarrage et connaître les étapes de dépannage systématiques sont des compétences essentielles pour tout administrateur système. Ce guide fournit une approche structurée pour diagnostiquer la cause racine d'un échec de démarrage Linux, allant des vérifications matérielles à l'inspection approfondie du chargeur de démarrage et des étapes du noyau.

Résoudre avec succès les problèmes de démarrage nécessite de la patience et une investigation méthodique. Nous couvrirons les phases typiques de la séquence de démarrage Linux, identifierons où les échecs se produisent couramment, et détaillerons les étapes pratiques et les commandes nécessaires pour récupérer votre système.

Comprendre la séquence de démarrage Linux

Avant de dépanner, il est crucial de savoir ce qui devrait se passer. Le processus de démarrage Linux est séquentiel, et un échec à n'importe quelle étape empêche le système d'atteindre l'invite de connexion. Les étapes clés sont :

  1. Initialisation BIOS/UEFI : POST matériel (Power-On Self-Test).
  2. Étape du chargeur de démarrage (par exemple, GRUB) : Charge le noyau et le disque RAM initial (initrd/initramfs).
  3. Initialisation du noyau : Le noyau démarre, monte le système de fichiers racine et initialise les pilotes essentiels.
  4. Étape du système Init (par exemple, systemd, SysVinit) : L'étape finale où les processus de l'espace utilisateur démarrent, menant à l'invite de connexion.

La plupart des échecs de démarrage se produisent aux étapes 2, 3 ou 4.

Phase 1 : Diagnostics initiaux (avant le chargeur de démarrage)

Si le système n'atteint même pas le menu GRUB, le problème est probablement lié au matériel ou au niveau du firmware.

Vérifications matérielles

  • Alimentation et périphériques : Assurez-vous que l'alimentation est stable et que les périphériques inutiles sont déconnectés. Un disque dur défaillant ou une RAM défectueuse peut se manifester par un échec de démarrage.
  • Paramètres BIOS/UEFI : Vérifiez que le bon périphérique de démarrage est sélectionné comme principal. Si vous avez récemment changé de matériel, assurez-vous que le firmware reconnaît les disques.

Inspection des messages de démarrage (si partiellement visibles)

Si vous voyez des messages brefs avant un blocage complet ou un redémarrage, notez-les. Recherchez des erreurs liées aux contrôleurs de disque ou à l'allocation mémoire.

Phase 2 : Dépannage du chargeur de démarrage (GRUB/LILO)

Si vous voyez le menu GRUB mais que la sélection d'une entrée entraîne un échec (par exemple, panique du noyau ou blocage), la configuration du chargeur de démarrage ou les images du noyau/initrd peuvent être corrompues.

Accéder au menu GRUB

Lors du démarrage, appuyez à plusieurs reprises sur Shift (pour les systèmes BIOS) ou Esc (pour les systèmes UEFI) pour vous assurer que le menu GRUB apparaît. S'il n'apparaît pas, vous devrez peut-être réparer le secteur de démarrage ou l'entrée UEFI (couvert dans la récupération ci-dessous).

Modifier les entrées GRUB

Une fois le menu apparu, mettez en surbrillance l'entrée du noyau souhaitée et appuyez sur e pour modifier. Cela permet une modification temporaire sans dommage permanent.

Paramètres clés à vérifier :

  1. Lignes linux ou linuxefi : Vérifiez le chemin vers l'image du noyau (vmlinuz-*).
  2. Paramètre root= : Assurez-vous qu'il pointe correctement vers votre partition du système de fichiers racine (par exemple, root=/dev/sda2). Si vous utilisez des UUID, vérifiez qu'ils sont corrects.

Démarrer en mode mono-utilisateur (mode de récupération)

Pour ignorer de nombreux services de démarrage et entrer dans un environnement shell minimal, ajoutez la directive suivante à la fin de la ligne du noyau :

init=/bin/bash
# OU
single
# OU (pour les systèmes systemd)
systemd.unit=rescue.target

Si le système démarre sur une invite shell root (#), le noyau s'est chargé avec succès et le problème réside dans la séquence de démarrage des services ou l'intégrité du système de fichiers.

Phase 3 : Problèmes de système de fichiers et de noyau

Si vous avez réussi à accéder à un shell (ou si le système se bloque pendant l'étape initramfs), l'attention se porte sur l'intégrité du système de fichiers racine ou les modules manquants.

Vérification de l'intégrité du système de fichiers

Si le système se bloque tôt, il peut être incapable de monter le système de fichiers racine, souvent en raison d'une corruption. Comme vous ne pouvez probablement pas monter la partition en lecture/écriture, vous devez utiliser un environnement de récupération (comme un Live CD/USB ou le shell en mode mono-utilisateur).

Exécutez une vérification du système de fichiers (FSCK) sur la partition corrompue (par exemple, /dev/sda2) :

# En supposant que vous êtes dans un environnement de récupération et que la partition est démontée
e2fsck -f /dev/sda2 

Si la partition est montée (par exemple, en mode mono-utilisateur), vous devrez peut-être d'abord la remonter en lecture seule, ou démarrer à partir d'un support externe.

Initramfs manquant ou corrompu

L'initramfs (Initial RAM File System) contient les pilotes nécessaires pour monter le véritable système de fichiers racine. S'il est corrompu, le système se bloque tôt.

Résolution : Reconstruire l'initramfs à partir d'un environnement fonctionnel (Live CD ou shell de secours).

En supposant que votre partition racine est montée sur /mnt :

# Chroot dans le système installé
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
chroot /mnt

# Reconstruire l'initramfs pour votre version actuelle du noyau
update-initramfs -u -k all 
# OU (sur les systèmes RHEL/CentOS)
dracut -f 

exit
# Démonter et redémarrer

Phase 4 : Récupération à l'aide d'un environnement Live

Si vous ne pouvez atteindre aucune forme de mode mono-utilisateur, la méthode de récupération la plus fiable consiste à démarrer à partir d'une clé USB/CD Linux Live (par exemple, Ubuntu Live, CentOS Rescue Image).

Étape 1 : Démarrer dans l'environnement Live

Démarrez le système à l'aide du support externe et assurez-vous de pouvoir accéder à la ligne de commande.

Étape 2 : Monter les partitions système

Identifiez votre partition racine (à l'aide de lsblk ou fdisk -l). Montez-la dans un emplacement temporaire, par exemple /mnt/rescue.

# Exemple : En supposant que la racine est /dev/sda2
mkdir /mnt/rescue
mount /dev/sda2 /mnt/rescue

Si vous avez une partition /boot séparée, montez-la également :

mount /dev/sda1 /mnt/rescue/boot

Étape 3 : Chroot et réparation

Utilisez chroot pour transiter le répertoire racine du shell vers votre système installé. Cela vous permet d'exécuter les outils natifs du système.

# Lier les répertoires système essentiels
for dir in dev proc sys run; do mount --bind /$dir /mnt/rescue/$dir; done

# Entrer dans l'environnement du système
chroot /mnt/rescue

Une fois dans l'environnement chroot (#), vous pouvez exécuter des commandes de réparation :

  1. Vérifier les journaux : journalctl -xb (si systemd est disponible).
  2. Réinstaller/Mettre à jour GRUB : Cela corrige les problèmes de secteur de démarrage.
    grub-install /dev/sda
    update-grub  # ou grub2-mkconfig -o /boot/grub2/grub.cfg
    
  3. Reconstruire Initramfs (comme montré ci-dessus) : update-initramfs -u -k all

Étape 4 : Nettoyage et redémarrage

Quittez le chroot (exit), démontez toutes les partitions et redémarrez sans le support Live.

Meilleure pratique : Sauvegardez toujours les fichiers de configuration critiques (/etc/fstab, /boot/grub/grub.cfg) avant de tenter des réparations majeures, même si vous utilisez un environnement Live.

Indicateurs d'erreur courants

Symptôme Cause probable Action recommandée
Écran noir immédiatement, pas de menu GRUB Panne matérielle, paramètre BIOS/UEFI, corruption GRUB dans la partition MBR/EFI Vérifier les connexions matérielles, tenter la réparation GRUB via Live CD.
Blocage après l'affichage des entrées du menu GRUB Paramètres du noyau incorrects, initrd corrompu Modifier l'entrée GRUB (e) pour changer root= ou ajouter single.
Retour à l'invite initramfs Pilotes de système de fichiers manquants, corruption du système de fichiers Exécuter fsck ou reconstruire initramfs après avoir monté le système.
Démarre mais échoue à lancer les services Problèmes avec /etc/fstab ou services système défaillants Démarrer sur rescue.target et examiner les journaux (journalctl).

Travaillez de bas en haut : firmware, chargeur de démarrage, noyau, système de fichiers, puis services. Cet ordre vous évite de reconstruire GRUB alors que le vrai problème est une mauvaise ligne /etc/fstab ou un système de fichiers nécessitant une réparation.