I have a disk from a Buffalo LinkStation that has an XFS partition on it that I cannot mount.
Plugging the disk into an SATA->USB caddy on an Ubuntu box. I get the following:
$ 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
The problem partition is /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.
So trying the xfs_repair -L option gets me to the situation I can't get beyond:
$ 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
Using photorec I have been able to pull some files off that partition, so the data is there and the disk is physically working. However, there is a problem with the superblocks.
How would I recover this partition?
The answers above did not help me when I had this issue today (about 9.5 hours ago now). I'll present here the solution that worked for me, along with the reasons why the previous answer did not help.
/home
could not be saved/edited, etc. or any directory listed.dmesg
showed somewhere xfs_do_force_shutdown called
around a few other xfs messages.xfs_repair
failed in Phase 1 with superblock read failed
followed by fatal error -- Input/output error
/
, i.e. only /home
was not working).mount
would lead to superblock cannot be found
(or analogous) error, but no hint as to what to do next.The solution is based on this post Nigel Smith, the main author of XFS (if I understand correctly). I'll repost the steps here in case the previous link becomes obsolete. All the following operations must be ran as root
(evidently).
smartctl -t long /dev/sda
. This may take a while. You can also run a short test with smartctl -t short /dev/sda
if there is a relatively recent long test (as there was in my case).smartctl -l selftest /dev/sda
or smartctl -a /dev/sda
(the latter displays everything, but the information you need is almost at the very end).LBA_of_first_error
. This is the position of the first error on the disk. From the latest test (which will be numbered "#1" and sit at the top of the list), grab the number displayed and divide this by eight and truncating to an integer value (cf. original post as to why).# 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'
In my case, I repeated steps 1 through 4 until I was down to 24 errors.xfs_repair /dev/sda
(without the -L
flag). This will likely report that you should attempt to mount the filesystem because of the journal log errors.xfs_repair -L /dev/sda
which deletes the journal log (which may result in data being deleted)./home
.xfs_check
has been made obsolete in favor of xfs_repair -n
.apt-get install xfsprogs
only to realize that, this being Debian, their "stable" packages are literally years behind. Long story short, xfs_repair /dev/sda
just hung forever. The process could not be killed (even with a sigterm).After the XFS replay error, try to MOUNT the partition again, as per the error message.
If all gets too messy, I highly recommend downloading UFS Explorer to help with deep file recovery from another system.
I have XFS partition on "sda6". On Lubuntu it's corrputed, won't fix and won't mount XFS partition on 13.10. When booting Lubuntu it's says that should be fix and trying on boot to fix XFS filesystem. When I went on first installation Lubuntu, on partition it's says Unknown.
Lubuntu didn't fixed. Using command xfs_check for me didn't solved.
I finally solved back to Debian 7 and reinstall. It's detected all filesystems and normally mounted XFS partition.
I read many users for XFS fileystems, so I think it's problem on changes on kernel versions, because Debian 7 use version 3.2 and mounts XFS normally without errors, but on Ubuntu with latest kernel 3.11 won't solved XFS filesystem.
I tried with CentOS 6.5 but CentOS follow up with RedHat and with old "stable" kernel. It won't detected XFS automatically.
Finally I've on Debian 7 backups all data on XFS partition and recreate partitions to EXT4.
Due to RedHat won't fix XFS reading partition and some problems with XFS (google it how many users didn't solved XFS reading partitions) I've generally opt with Debian to backup and change to new compatible with kernel 3.11 to EXT4/btrfs... filesystems.
Hope this someone helps.
I fixed my XFS partition using a new downloaded Debian 8.7.1 over a real server just put the disk over this system and it repairs automatic . Centos 5 and 6 can not repaired it
User contributions licensed under CC BY-SA 3.0