E2fsck
| Fiche express | |
|---|---|
| Domaine | Systèmes de fichiers (ext2/ext3/ext4) |
| Commande | e2fsck
|
| Contexte | Vérification/réparation d'un système ext2/3/4 — ⚠️ jamais sur un volume monté en lecture-écriture |
| Voir aussi | Dumpe2fs, Tune2fs, Shutdown |
e2fsck (« ext2/3/4 filesystem check ») vérifie la cohérence d'un système de fichiers ext2, ext3 ou ext4 et répare les erreurs détectées : inodes orphelins, compteurs de blocs libres incohérents, structures endommagées après un arrêt brutal ou une coupure d'alimentation. C'est l'implémentation ext* de fsck, qui délègue à e2fsck sur ce type de systèmes de fichiers ; il reste possible de l'invoquer directement.
⚠️ Jamais sur un système de fichiers monté en lecture-écriture
Lancer e2fsck -f -v -C0 sur une partition montée en lecture-écriture peut corrompre le système de fichiers : e2fsck réécrit des structures internes (bitmaps, inodes, superbloc) pendant que le noyau et les processus en cours continuent d'écrire dessus, ce qui produit des incohérences irréversibles plutôt que des réparations. Il faut impérativement démonter la partition avant de lancer la vérification, ou rebooter en mode single-user/rescue si c'est le système de fichiers racine qui doit être vérifié (il ne peut pas être démonté tant qu'il est utilisé pour le boot).
umount /dev/sda1
e2fsck -f -v -C0 /dev/sda1
-f: force la vérification même si le système de fichiers est marqué propre (clean) — sans cette option, e2fsck se contente de vérifier les flags et sort immédiatement si tout semble correct.-v: mode verbeux, affiche des statistiques (inodes utilisés, fragmentation, etc.).-C0: affiche une barre de progression sur le file descriptor 0 (stdout).
Réparation automatique (-y)
En usage interactif, e2fsck pose une question à chaque anomalie trouvée (« Fix? yes/no »). Pour un script ou une intervention non surveillée, -y répond automatiquement oui à toutes les réparations proposées :
e2fsck -f -v -y /dev/sda1
⚠️ Pratique en dépannage rapide, mais -y masque le détail des corrections effectuées — sur un système de fichiers critique, il est plus prudent de répondre au cas par cas (sans -y) pour repérer une éventuelle corruption plus large qui mériterait une investigation (disque défaillant, contrôleur RAID, etc.) avant de tout réparer aveuglément.
Forcer un fsck au prochain reboot
touch /forcefsck
reboot
Le mécanisme historique vient des initscripts SysV/Debian : au démarrage, le script de vérification des systèmes de fichiers (checkroot/checkfs) teste la présence de /forcefsck à la racine et, si le fichier existe, passe l'option -f à tous les fsck lancés pour ce boot, quel que soit le compteur de montages ou l'intervalle configuré sur chaque système de fichiers. Le fichier est supprimé automatiquement une fois le check effectué.
Sous systemd, systemd-fsck reste compatible avec ce fichier legacy (il teste aussi /forcefsck avant de décider de forcer ou non la vérification), donc touch /forcefsck && reboot fonctionne toujours sur les distributions modernes. L'alternative native systemd est de passer fsck.mode=force sur la ligne de commande du noyau (GRUB) pour un boot ponctuel, sans laisser de fichier derrière soi.
Pour vérifier le compteur de montages et l'intervalle qui déclenchent normalement un fsck automatique (indépendamment de /forcefsck), voir Tune2fs :
tune2fs -l /dev/sda1 | grep -i "mount count\|check interval"
Sur les systèmes récents, e2fsprogs désactive souvent ce déclenchement automatique par défaut (valeurs à -1/0) : c'est alors /forcefsck ou fsck.mode=force qui restent les seuls leviers pour forcer une vérification au reboot.
Forcer avec shutdown
shutdown -rF now
L'option -F de Shutdown force un fsck au redémarrage suivant (elle dépose l'équivalent de /forcefsck automatiquement) — pratique pour ne pas avoir à créer le fichier à la main. À l'inverse, -f (minuscule) fait l'opposé et saute le fsck même s'il serait normalement déclenché.