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?
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.
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é.
/home
n'a pas pu être enregistré/modifié, etc. ou aucun répertoire répertorié.dmesg
affiché quelque part xfs_do_force_shutdown called
autour de quelques autres messages xfs.xfs_repair
a échoué dans la phase 1 avec superblock read failed
suivi par fatal error -- Input/output error
/
, c'est-à-dire seulement /home
ne fonctionnait pas).mount
entraînerait superblock cannot be found
(ou analogue) erreur, mais aucune indication sur la suite des opérations.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).
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).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).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).# dd if=/dev/zero of=/dev/sda conv=sync bs=4096 count=1 seek=*NUMBER_COMPUTED_EARLIER*
smartctl -A /dev/hda | egrep 'Reallocated|Pending|Uncorrectable'
Dans mon cas, j'ai répété les étapes 1 à 4 jusqu'à 24 erreurs.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.xfs_repair -L /dev/sda
qui supprime le journal (ce qui peut entraîner la suppression des données)./home
.xfs_check
a été rendu obsolète au profit de xfs_repair -n
.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).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.
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