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 / UNIXPilote 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'UPSBogues 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 monterL'ensemble du système se bloqueMê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 propreSi 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 8193Pour les systèmes de fichiers avec des tailles de blocs 2k, au bloc 16384Pour des blocs de 4k, au bloc 32768Dé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 LinuxPartie II – Comprendre le superbloc LinuxPartie III – Un exemple de survie à une défaillance du système de fichiers LinuxPartie IV – Comprendre les inodes du système de fichiersPartie V – Comprendre les répertoires du système de fichiersPartie VI – Comprendre les liens symboliques (logiciels) et matériels UNIX / LinuxPartie 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

(fr) surviving_a_linux_filesystem_failures

Basé sur << Article >> par Auteur.