Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

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].

  1. Démontez la partition :

    ...@...:~$ sudo umount /dev/sda3

  2. 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


Basé sur « Article » par Auteur.