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

Maîtrisez l'art de la récupération de système Linux grâce à ce guide complet étape par étape pour diagnostiquer et résoudre les échecs de démarrage. Apprenez toute la séquence de démarrage, de l'initialisation BIOS/UEFI à l'étape du système init. Des étapes pratiques couvrent l'édition des entrées GRUB, l'utilisation du mode mono-utilisateur, la vérification de l'intégrité du système de fichiers avec FSCK, et l'exploitation d'un environnement Live CD pour reconstruire les composants de démarrage critiques tels que l'initramfs et la configuration GRUB.

36 vues

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

Les systèmes Linux sont généralement robustes, mais lorsqu'un échec de démarrage survient, il peut paralyser les 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 propose une approche structurée pour diagnostiquer la cause profonde d'un échec de démarrage Linux, allant des vérifications matérielles à l'inspection approfondie des étapes du chargeur de démarrage et du noyau.

La résolution réussie des problèmes de démarrage nécessite patience et investigation méthodique. Nous couvrirons les phases typiques de la séquence de démarrage Linux, identifierons où les échecs surviennent 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 du 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 d'initialisation (par exemple, systemd, SysVinit) : La dernière étape où les processus de l'espace utilisateur démarrent, menant à l'invite de connexion.

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

Phase 1 : Diagnostic initial (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 micrologiciel.

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 micrologiciel reconnaît les disques.

Inspection des messages de démarrage (s'ils sont partiellement visibles)

Si vous voyez de brefs messages avant un gel complet ou un redémarrage, notez-les. Recherchez les 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 pourraient être corrompues.

Accéder au menu GRUB

Au démarrage, appuyez plusieurs fois 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).

Modification des entrées GRUB

Une fois le menu apparu, surlignez 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 de shell racine (#), le noyau a 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 la phase 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 de corruption. Puisque 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 du 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 n'est pas 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 système de fichiers racine réel. S'il est corrompu, le système se bloque tôt.

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

En supposant que votre partition racine soit 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)
drconfig -v 

exit
# Démonter et redémarrer

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

Si vous ne parvenez à aucun mode de démarrage (même le mode mono-utilisateur), la méthode de récupération la plus fiable consiste à démarrer à partir d'une clé USB/CD Live Linux (par exemple, Ubuntu Live, Image de secours CentOS).

É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 du système

Identifiez votre partition racine (en utilisant 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 faire passer le répertoire racine du shell à votre système installé. Cela vous permet d'exécuter les outils natifs du système.

# Monter des répertoires système essentiels par liaison
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 les 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.
    bash grub-install /dev/sda update-grub # ou grub2-mkconfig -o /boot/grub2/grub.cfg
  3. Reconstruire l'initramfs (comme indiqué 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 média 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.

Résumé des indicateurs d'erreur courants

Symptôme Cause probable Action recommandée
Écran noir immédiat, pas de menu GRUB Défaillance matérielle, paramètre BIOS/UEFI, corruption GRUB dans le MBR/partition EFI Vérifier les connexions matérielles, tenter la réparation GRUB via Live CD.
Blocage après 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.
Chute vers 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émarrage mais échec du lancement des services Problèmes avec /etc/fstab ou services système défaillants Démarrer sur rescue.target et examiner les journaux (journalctl).

Le diagnostic systématique – en remontant de la couche matérielle au chargeur de démarrage, au noyau, puis à l'espace utilisateur – est la clé pour résoudre efficacement les échecs de démarrage Linux.