Quand Linux refuse de démarrer correctement et vous affiche une invite busybox pendant l’initialisation d’initramfs, c’est plutôt frustrant. Souvent, la cause principale est un problème de système de fichiers, comme une corruption du superbloc ou une incohérence dans les UUID des disques. En effet, ce n’est pas toujours évident : parfois, le système affiche des messages cryptiques du type « INCOHÉRENCE INATTENDUE » ou indique simplement que /dev/sda1 n’existe pas. Cela s’explique par le fait que Linux ne trouve pas le volume nécessaire, probablement parce que le fichier fstab n’est pas aligné avec les UUID actuels de vos disques ou parce qu’un superbloc est corrompu. La bonne nouvelle ? Une fois la panique passée, la résolution du problème se résume généralement à quelques commandes fsck manuelles ou à quelques ajustements de configuration, et le système peut redémarrer. Ce n’est pas toujours simple et il arrive parfois que des choses étranges se produisent, comme des erreurs de montage ou le passage du système en mode d’urgence. Maîtriser les bases peut vous éviter bien des maux de tête.
Comment résoudre les problèmes de système de fichiers ou de démarrage sous Linux en cas de blocage sur BusyBox ?
Vérifiez si le système de fichiers racine nécessite une vérification manuelle du système de fichiers (fsck).
C’est un problème courant. Si votre message d’erreur indique un /dev/sda1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLYproblème avec le système de fichiers, cela signifie généralement que # fsck /dev/sda1 -yce dernier rencontre des difficultés. En règle générale, l’exécution de fsck dans l’initramfs permet de corriger la corruption, mais vous devez d’abord démonter le volume s’il est monté. Il arrive parfois que le volume soit déjà monté ou que le système ne permette pas d’exécuter fsck directement.
- Démarrez dans l’interface BusyBox, puis essayez de démonter le volume racine
# umount /dev/sda1. S’il est monté, c’est à vous de jouer. Sans succès ? Vous devrez peut-être démarrer depuis une clé USB live ou un disque de secours externe et exécuter fsck à partir de là. - Après le démontage, exécutez la commande
# fsck /dev/sda1 -y. Elle analysera et corrigera les erreurs du système de fichiers. Des invites de confirmation s’afficheront, mais l’option `-y` permet une confirmation automatique des réparations. Sur certaines configurations, cette commande suffit à restaurer le système.
Réparer manuellement un superbloc défectueux
Si fsck signale une erreur ou si vous obtenez un message d’erreur concernant un superbloc endommagé, vous pouvez également le réparer. Commencez par identifier les superblocs de sauvegarde # sudo dumpe2fs /dev/vda2 | grep superblock. Recherchez leur emplacement, généralement autour du bloc 98304 ou d’un bloc similaire.
- Ensuite, effectuez une vérification avec l’un de ces superblocs de sauvegarde, par exemple :
# sudo fsck -b 98304 /dev/vda2 -y. - Si fsck signale des problèmes et vous pose la question, répondez « oui ». Le système effectuera les réparations nécessaires et, normalement, le volume sera de nouveau propre.
Sur certaines machines, le volume peut encore être monté, ou fsck peut refuser de s’exécuter. Dans ce cas, vous devrez démarrer à partir d’un environnement live et y effectuer les réparations. Car, bien sûr, Linux se doit de compliquer les choses inutilement.
Problèmes de correspondance de l’UUID du volume de démarrage ou du fichier fstab
Si vous constatez ALERT! /dev/sda1 does not exist. Dropping to a shell.ce problème, il se peut que fstab référence un périphérique incorrect d’après les UUID. Pour le résoudre, démarrez à partir d’un support live et exécutez la commande ` # sudo blkidfstab` pour lister les UUID des disques. Vérifiez l’UUID de votre partition montée et comparez-le avec celui indiqué dans `/etc/fstab`.
- Montez votre partition racine :
# sudo mount /dev/sda2 /mnt. - Vérifiez
/mnt/etc/fstabet mettez à jour la ligne UUID si elle est incorrecte. Par exemple :UUID=36cce3d5-cbdb-46f4-adbf-3f9aaa01d729 / ext4 errors=remount-rw 0 1 - Enregistrez et démontez le disque, puis redémarrez. Les erreurs devraient disparaître si c’était bien la cause du problème.
Résoudre les problèmes matériels ou de port SATA via GRUB
Si la configuration du BIOS ou du matériel de votre système perturbe la détection des disques (par exemple, en utilisant des numéros de port SATA aléatoires), la modification des paramètres de démarrage de GRUB peut résoudre le problème. Démarrez en mode d’urgence ou à partir d’un disque Live, puis modifiez le fichier /boot/grub/grub.cfg.
- Trouvez la ligne qui ressemble à :
Linux /boot/vmlinuz-4.15.0-70-generic root=/dev/sda1 rw quiet elevator=noop fsck.repair=yes - Pour plus de stabilité, remplacez le chemin d’accès au périphérique racine par son UUID, comme ceci :
Linux /boot/vmlinuz-4.15.0-70-generic root=UUID=36cce3d5-cbdb-46f4-adbf-3f9aaa01d729 ro quiet elevator=noop fsck.repair=yes
Cela évite les erreurs de démarrage dues à des noms de périphériques incompatibles, notamment en cas de réaffectation inattendue des ports SATA. Soyez vigilant lors de la mise à jour du noyau ou de GRUB : ces configurations peuvent parfois être rétablies et nécessiter une nouvelle configuration.
Ces solutions ne sont pas garanties à tous les coups, mais elles m’ont permis de sauver quelques systèmes sur lesquels j’ai bidouillé.Éplucher les journaux et les commandes est un peu fastidieux, mais au moins c’est mieux que de réinstaller Linux à chaque fois.
Résumé
- Vérifiez manuellement fsck si des erreurs de système de fichiers surviennent au démarrage.
- Utilisez dumpe2fs pour trouver les superblocs de sauvegarde et les restaurer si nécessaire.
- Faites correspondre les UUID dans /etc/fstab
blkidlorsque des incohérences d’UUID provoquent des problèmes de démarrage. - Modifiez les configurations de GRUB pour tenir compte des particularités matérielles ou des réaffectations SATA.
Conclure
Honnêtement, résoudre les problèmes de démarrage sous Linux peut donner l’impression de tourner en rond, surtout avec toutes les variables : corruption du système de fichiers, incohérences d’UUID, particularités matérielles. Mais une fois qu’on a compris quelle commande exécuter et où chercher, le problème est généralement résolu sans réinstallation complète. Il faut juste un peu de patience et une approche logique. J’espère que cela permettra à certains de gagner du temps et d’éviter bien des frustrations.