Ceci est une ancienne révision du document !
Table des matières
Survivre aux pannes d'un système de fichiers Linux
Par pannes du système de fichiers, nous entendons des structures de données du système de fichiers corrompues (ou des objets tels que des inodes, des répertoires, des superblocs, etc.) Cela peut être dû à l'une des raisons suivantes :
- Erreurs de l'administrateur système Linux / UNIX
- Pilote de périphérique ou utilitaires fautifs (en particulier les utilitaires tiers)
- Panne de courant (très rare sur le système de production) due à une panne de l'UPS
- Bogues du noyau (généralement, utilisez la version stable du noyau)
Signes d'une défaillance du système de fichiers :
- Le système de fichiers refuse de se monter
- L'ensemble du système se bloque
- Même si le montage du système de fichiers aboutit, comportement étrange lors du montage (redémarrage du système, caractères chaotiques dans les listes de répertoires, etc.)
Alors, comment allez-vous survivre à une défaillance du système de fichiers ?
Pré-requis
Première étape
Pour la démonstration nous supposons la partition /home [/dev/sda3].
- Démontez la partition :
...@...:~$ sudo umount /dev/sda3
- puis lancez :
...@...:~$ sudo e2fsck -f /dev/sda3
- -f : Force la vérification même si le système de fichiers semble propre
Si le superbloc n'est pas trouvé, e2fsck se termine par une erreur fatale.
Autres étapes
Si le superbloc n'a pas été trouvé, e2fsck s'est terminé par une erreur fatale.
Mais Linux conserve plusieurs copies redondantes du superbloc dans chaque système de fichiers, vous pouvez donc utiliser l'option -b {alternative-superblock} pour vous débarrasser de ce problème.
L'emplacement du superbloc de sauvegarde dépend de la taille de bloc du système de fichiers
- Pour les systèmes de fichiers avec des tailles de blocs de 1k, un superbloc de sauvegarde peut être trouvé au bloc 8193
- Pour les systèmes de fichiers avec des tailles de blocs 2k, au bloc 16384
- Pour des blocs de 4k, au bloc 32768
Déterminez les emplacements alternatifs des superblocs :
...@...:~$ sudo mke2fs -n /dev/sda3
Pour réparer le système de fichiers par un autre superbloc, utilisez la commande comme suit :
...@...:~$ sudo e2fsck -f -b 8193 /dev/sda3
Il est fortement recommandé de faire une sauvegarde avant d'exécuter la commande fsck ; utilisez la commande dd pour créer une sauvegarde (si vous ayez de l'espace libre sous /disk2) :
...@...:~$ sudo dd if=/dev/sda2 of=/disk2/backup-sda2.img
Les choses se compliquent si le disque dur participe à une matrice RAID logicielle.
Jetez un œil au HOWTO Software-RAID - Error Recovery.
Cet article fait partie (c'est la partie III) de la série Understanding UNIX/Linux file system, Continuez à lire le reste de la série Understanding Linux file system :
- Partie I – Comprendre les superblocs Linux
- Partie II – Comprendre le superbloc Linux
- Partie III – Un exemple de survie à une défaillance du système de fichiers Linux
- Partie IV – Comprendre les inodes du système de fichiers
- Partie V – Comprendre les répertoires du système de fichiers
- Partie VI – Comprendre les liens symboliques (logiciels) et matériels UNIX / Linux
- Partie VII – Pourquoi n'est-il pas possible de créer des liens physiques au-delà des limites du système de fichiers ?
Conclusion
Problèmes connus
Voir aussi