web-dev-qa-db-fra.com

Comment récupérer le système de fichiers XFS avec "échec de lecture du superbloc"

J'ai un disque d'une Buffalo LinkStation qui contient une partition XFS que je ne peux pas monter.

Brancher le disque dans un caddy SATA-> USB sur une boîte Ubuntu. J'obtiens ce qui suit:

$ Sudo fdisk -l /dev/sdb

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63      594404      297171   83  Linux
/dev/sdb2          594405     1590434      498015   83  Linux
/dev/sdb4         1590435   976768064   487588815    5  Extended
/dev/sdb5         1590498     1863539      136521   82  Linux swap / Solaris
/dev/sdb6         1863603   976494959   487315678+  83  Linux

La partition problématique est/dev/sdb6.

$ Sudo xfs_check /dev/sdb6
ERROR: The filesystem has valuable metadata changes in a log which needs to
be replayed.  Mount the filesystem to replay the log, and unmount it before
re-running xfs_check.  If you are unable to mount the filesystem, then use
the xfs_repair -L option to destroy the log and attempt a repair.
Note that destroying the log may cause corruption -- please attempt a mount
of the filesystem before doing this.

Donc, essayer l'option xfs_repair -L m'amène à la situation que je ne peux pas dépasser:

$ Sudo xfs_repair -L /dev/sdb6
Phase 1 - find and verify superblock...
superblock read failed, offset 382252089344, size 131072, ag 89, rval -1

fatal error -- Input/output error

En utilisant photorec, j'ai pu extraire certains fichiers de cette partition, donc les données sont là et le disque fonctionne physiquement. Cependant, il y a un problème avec les superblocs.

Comment récupérer cette partition?

8
Kieran

Après l'erreur de relecture XFS, essayez à nouveau de MONTER la partition, conformément au message d'erreur.

Si tout devient trop compliqué, je recommande fortement de télécharger FS Explorer pour aider à la récupération en profondeur des fichiers à partir d'un autre système.

3
ewwhite

Les réponses ci-dessus ne m'ont pas aidé lorsque j'ai eu ce problème aujourd'hui (il y a environ 9,5 heures maintenant). Je vais présenter ici la solution qui a fonctionné pour moi, ainsi que les raisons pour lesquelles la réponse précédente n'a pas aidé.

Symptômes

  1. Sorti de nulle part, n'importe quel fichier dans /home n'a pas pu être enregistré/modifié, etc. ou aucun répertoire répertorié.
  2. dmesg affiché quelque part xfs_do_force_shutdown called autour de quelques autres messages xfs.
  3. xfs_repair a échoué dans la phase 1 avec superblock read failed suivi par fatal error -- Input/output error
  4. Le reste de mon disque fonctionnait parfaitement (y compris /, c'est-à-dire seulement /home ne fonctionnait pas).
  5. Tenter de mount entraînerait superblock cannot be found (ou analogue) erreur, mais aucune indication sur la suite des opérations.

Solution

La solution est basée sur ce post Nigel Smith, le principal auteur de XFS (si je comprends bien). Je republierai les étapes ici au cas où le lien précédent deviendrait obsolète. Toutes les opérations suivantes doivent être exécutées en tant que root (évidemment).

  1. Exécutez un long autotest du lecteur: smartctl -t long /dev/sda. Cela peut prendre un peu de temps. Vous pouvez également exécuter un court test avec smartctl -t short /dev/sda s'il y a un test long relativement récent (comme dans mon cas).
  2. Examinez le test avec: smartctl -l selftest /dev/sda ou smartctl -a /dev/sda (ce dernier affiche tout, mais les informations dont vous avez besoin sont presque à la toute fin).
  3. La dernière colonne du rapport de test s'appelle LBA_of_first_error. Il s'agit de la position de la première erreur sur le disque. À partir du dernier test (qui sera numéroté "# 1" et se trouvera en haut de la liste), saisissez le nombre affiché et divisez-le par huit et tronquez-le à une valeur entière (voir le message d'origine pour savoir pourquoi).
  4. Ensuite, vous mettrez à zéro ce bloc spécifique. Cela entraînera la corruption du fichier spécifique à cette position. (Mais si vous avez épuisé toutes les autres méthodes, quelques fichiers corrompus ne sont pas un gros problème.). Pour ce faire, exécutez la commande suivante: # dd if=/dev/zero of=/dev/sda conv=sync bs=4096 count=1 seek=*NUMBER_COMPUTED_EARLIER*
  5. Effectuez un court test et attendez une minute ou deux pour le résultat. Répétez cette opération jusqu'à ce que le test court n'affiche aucune erreur. Ou, vous pouvez vérifier le nombre approximatif de blocs erronés avec smartctl -A /dev/hda | egrep 'Reallocated|Pending|Uncorrectable' Dans mon cas, j'ai répété les étapes 1 à 4 jusqu'à 24 erreurs.
  6. Courir xfs_repair /dev/sda ( sans le -L drapeau). Cela indiquera probablement que vous devez tenter de monter le système de fichiers en raison des erreurs de journal de journal.
  7. Essayez de monter ce système. Dans mon cas, cela a échoué, j'ai donc dû exécuter xfs_repair -L /dev/sda qui supprime le journal (ce qui peut entraîner la suppression des données).
  8. Montez votre système de fichiers et faites une sauvegarde récente!

Pourquoi les solutions ci-dessus ne fonctionnent plus

  • Le poste initial a plusieurs années. Dans l'intervalle, il y a eu suffisamment de changements dans XFS pour qu'il soit considéré comme suffisamment stable par l'équipe SuSE pour être utilisé comme principal FS for /home.
  • xfs_check a été rendu obsolète au profit de xfs_repair -n.
  • La solution Debian a été un tracas horrible et une perte de temps. Pour l'instant, Debian ne prend pas en charge le démarrage UEFI, et ces informations ne le sont pas sur leur page de téléchargement ni sur leur page principale FAQ (c'est sur leur Wiki). Donc, pour démarrer avec cela, vous devez désactiver UEFI Secureboot dans votre BIOS puis démarrer sur le Ensuite, vous remarquerez qu'il n'y a aucun outil xfs installé par défaut. Vous ferez donc apt-get install xfsprogs seulement pour réaliser que, ceci étant Debian, leurs paquets "stables" ont littéralement des années de retard. Longue histoire courte, xfs_repair /dev/sda juste accroché pour toujours. Le processus n'a pas pu être tué (même avec un sigterm).
  • UFS Explorer est un logiciel payant.
  • photorec ne prend en charge que des types de fichiers spécifiques (dites au revoir à vos clés GPG) et restaure tous les fichiers avec des noms arbitraires dans un seul dossier. Bonne chance pour tout cela et pour trouver des informations pertinentes.
5
ChrisR

J'ai une partition XFS sur "sda6". Sur Lubuntu, il est corrputé, ne se corrige pas et ne monte pas de partition XFS sur 13.10. Au démarrage de Lubuntu, il est dit que devrait être corrigé et essayer de démarrer pour réparer le système de fichiers XFS. Quand je suis allé sur la première installation Lubuntu, sur la partition, il est dit Inconn.

Lubuntu n'a pas corrigé. Utiliser la commande xfs_check pour moi n'a pas été résolu.

J'ai finalement résolu Debian 7 et réinstaller. C'est détecté tous les systèmes de fichiers et XFS normalement monté partition.

J'ai lu de nombreux utilisateurs pour les systèmes de fichiers XFS, donc je pense que c'est un problème de changement sur les versions du noyau, car Debian 7 utilise la version .2 et monte normalement XFS sans erreur, mais sur Ubuntu avec le dernier noyau .11 ne résoudra pas le système de fichiers XFS.

J'ai essayé avec CentOS 6.5 mais CentOS suivi avec RedHat et avec l'ancien noyau "stable". Il ne sera pas détecté XFS automatiquement.

Enfin, j'ai sur Debian 7 sauvegarde toutes les données sur la partition XFS et recrée des partitions vers EXT4.


En raison de RedHat ne résoudra pas la partition de lecture XFS et certains problèmes avec XFS (google il combien d'utilisateurs n'ont pas résolu les partitions de lecture XFS) J'ai généralement opté avec Debian pour sauvegarder et passer à nouveau compatible avec les systèmes de fichiers noyau 3.11 à EXT4/btrfs ...

J'espère que cette personne vous aidera.

1
Marin Sagovac

J'ai corrigé ma partition XFS en utilisant une nouvelle Debian 8.7.1 téléchargée sur un vrai serveur, il suffit de mettre le disque sur ce système et il se répare automatiquement. Centos 5 et 6 ne peuvent pas le réparer

0
Kan