Recovering a corrupt degraded btrfs RAID6, need to manually clear an inode

btrfsinoderaidraid6

I have a btrfs RAID 6. I have lousy hard drives, one failed, and another failed during recovery. Now I am without parity and cannot rebuild–a third drive is throwing read errors on a few sectors. Since I can't remove it, I overwrote the bad sectors with zero's using dd. Now during rebuild I get a few errors like this:
BTRFS info (device sdc): csum failed ino 257 off 3985240064 csum 2566472073 expected csum 1136819032
…then
kernel BUG at /build/linux-SMWX37/linux-3.12.9/fs/btrfs/extent_io.c:2082!
…the rebuild stops
I think btrfs doesn't know what do do without any parity for repair, so it throws an error and aborts.

I figured I could just delete the affected files, but inode 257 does not map to anything.
btrfs inspect-internal inode-resolve -v 257 /data
ioctl ret=-1, error: No such file or directory

Any suggestions for manually clearing inode 257, or otherwise repairing my filesystem?

Best Answer

If you have a RAID array that has three failing drives, there is low probability of getting the raidset back into service. Sorry.

I'm afriad to say your only alternative is to replace the failing disks, recreate the raidset, and then restore the information from your most recent backup set.

You realize the btrfs is still relatively experimental and thus I presume that you are prepared for this situation by keeping good backups.

If you want something more stable, I'd advise using the proven ext4 filesystem instead of more experimental btrfs.

Related Topic