Manière appropriée de traiter les systèmes de fichiers XFS corrompus

19

J'ai récemment eu un système de fichiers XFS corrompu en raison d'une panne de courant. (Système CentOS 7). Le système ne démarrerait pas correctement.

J'ai démarré à partir d'un CD de secours et j'ai essayé xfs_repair, il m'a dit de monter la partition pour gérer le journal.

J'ai monté la partition et fait une lsvérification pour vérifier que oui, elle semble être là. J'ai démonté la partition et j'ai réessayé xfs_repairet j'ai reçu le même message.

Que dois-je faire dans cette situation? Y a-t-il un problème avec mon CD de secours (System Rescue CD, version 4.7.1)? Y a-t-il une autre procédure que j'aurais dû utiliser?

J'ai fini par simplement restaurer le système à partir de sauvegardes (c'était rapide et facile dans ce cas), mais j'aimerais savoir quoi faire à l'avenir.

Michael Kohne
la source

Réponses:

22

Si vous essayez d'exécuter xfs_repair , en obtenant le message d'erreur qui suggère de monter le système de fichiers pour relire le journal, et après avoir toujours reçu le même message d'erreur, vous devrez peut-être effectuer une réparation forcée (en utilisant l' -Lindicateur avec xfs_repair). Cette option devrait être un dernier recours.

Par exemple, je vais utiliser un cas où j'avais une partition racine corrompue sur mon installation CentOS 7. Lors de la tentative de montage de la partition, j'ai toujours reçu le message d'erreur ci-dessous:

montage: échec du montage / dev / mapper / centos-root sur / mnt / centos-root: la structure doit être nettoyée

Malheureusement, forcer une réparation impliquerait de mettre à zéro (détruire) le journal avant de tenter une réparation. Lorsque vous utilisez cette méthode, il existe un potentiel de se retrouver avec plus de données corrompues que prévu initialement; cependant, nous pouvons utiliser les outils xfs appropriés pour voir quels types de dommages peuvent être causés avant d'apporter des modifications permanentes.

À l'aide de xfs_metadump et xfs_mdrestore , vous pouvez créer une image de métadonnées de la partition affectée et effectuer la réparation forcée sur l'image plutôt que sur la partition elle-même. Les avantages de ceci sont la possibilité de voir les dommages qui accompagnent une réparation forcée avant de l'exécuter sur la partition.

Pour ce faire, vous aurez besoin d'un disque dur USB ou externe de taille décente. Commencez par monter la clé USB - mon clé USB se trouvait à /dev/sdb1, la vôtre peut être nommée différemment.

mkdir -p /mnt/usb
mount /dev/sdb1 /mnt/usb

Une fois monté, exécutez xfs_metadumppour créer une copie des métadonnées de partition sur l'USB - encore une fois, votre partition affectée peut être différente. Dans ce cas, j'avais une partition racine corrompue située à /dev/mapper/centos-root:

xfs_metadump /dev/mapper/centos-root /mnt/usb/centos-root.metadump

Ensuite, vous souhaiterez restaurer les métadonnées dans une image afin que nous puissions effectuer une réparation et mesurer les dommages.

xfs_mdrestore /mnt/usb/centos-root.metadump /mnt/usb/centos-root.img

J'ai trouvé qu'en mode de secours xfs_mdrestoren'est pas disponible, et à la place, vous devrez être en mode de secours d'un CD CentOS en direct.

Enfin, nous pouvons effectuer la réparation sur l'image:

xfs_repair -L /mnt/usb/centos-root.img

Une fois la réparation terminée et après avoir évalué la sortie et les dommages potentiels, vous pouvez déterminer si vous souhaitez effectuer la réparation sur la partition.

Pour exécuter la réparation sur la partition, exécutez simplement:

xfs_repair -L /dev/mapper/centos-root

N'oubliez pas de vérifier également les autres partitions. Après les réparations, redémarrez le système et vous devriez pouvoir démarrer avec succès.

N'oubliez pas que le -Ldrapeau doit être utilisé en dernier recours lorsqu'il n'y a aucune autre option possible à réparer.

J'ai trouvé que ces articles en ligne ont aidé:

brendonofficial
la source
OK, donc -L est un dernier recours, et ce sont d'excellentes instructions sur la façon de voir à quel point ça va être mauvais si nous utilisons -L. Quelles autres options dois-je utiliser -L?
Michael Kohne
1
@MichaelKohne Restauration à partir de la sauvegarde, bien sûr. Vous ne devriez pas vous approcher de ce niveau d'enfer sauf si vous n'avez pas de sauvegardes.
Michael Hampton
1
@MichaelHampton - OK, assez bien. Mais je ne pense pas avoir JAMAIS perdu un système de fichiers comme celui-ci à des erreurs ext4 sur powerfail - xfs est-il moins résistant? Ou est-ce que j'ai juste eu vraiment de la malchance cette fois?
Michael Kohne
@MichaelKohne Je pense que vous venez de devenir extrêmement malchanceux. XFS est un système de fichiers assez fiable.
Michael Hampton
3
nous pouvions simplement le faire depuis initrd. quel merveilleux "progrès" nous avons accompli.
Florian Heigl
1

J'ai eu cette erreur quand le centos 7 s'est arrêté à l'intérieur d'une machine virtuelle kvm:

corruption de métadonnées détectée chez xfs ...

lorsque j'utilise le journal avec «journalctl -xe», j'ai trouvé une erreur de montage:

/ dev / mapper / root / sysroot

Je le résous en utilisant:

xfs_repair / dev / mapper / root

Ensuite, le système complète les sept phases, puis redémarre à l'aide de

./fermer

Et puis la machine virtuelle centos 7 fonctionne bien…

Cordialement

Remarque: peut-être que vous / dev / mapper / root avez un autre nom, veuillez regarder votre journal d'erreurs avec journalctl -xe pour trouver le nom de votre unité mal montée

davidleosam
la source