I recently had a drive failure in a file server running btrfs. The
failed drive was completely non-functional. I added a new drive to the
filesystem successfully, when I attempted to remove the failed drive I
encountered an error. I discovered that I actually experienced a dual
drive failure, the second drive only exhibited as failed when btrfs
tried to write to the drives in the filesystem when I removed the
disk.

I shut down the array and imaged the failed drive using GNU ddrescue,
I was able to recover all but a few kb from the drive. Unfortunately,
when I imaged the drive I overwrote the drive that I had successfully
added to the filesystem.

This brings me to my current state, I now have two devices missing:

 - the completely failed drive
 - the empty drive that I overwrote with the second failed disks image

Consequently I can't start the filesystem. I've discussed the issue in
the past with Ke and other people on the #btrfs channel, the
concensus; as I understood it, is that with the right patch it should
be possible to mount either the array with the empty drive absent or
to create a new btrfs fileystem on an empty drive and then manipulate
its UUIDs so that it believes it's the missing UUID from the existing
btrfs filesystem.

Here's the info showing the current state of the filesystem:

ubuntu@ubuntu:~$ sudo btrfs filesystem show
warning, device 6 is missing
warning devid 6 not found already
warning devid 7 not found already
Label: none  uuid: 67b4821f-16e0-436d-b521-e4ab2c7d3ab7
    Total devices 7 FS bytes used 5.47TiB
    devid    1 size 1.81TiB used 1.71TiB path /dev/sda3
    devid    2 size 1.81TiB used 1.71TiB path /dev/sdb3
    devid    3 size 1.82TiB used 1.72TiB path /dev/sdc1
    devid    4 size 1.82TiB used 1.72TiB path /dev/sdd1
    devid    5 size 2.73TiB used 2.62TiB path /dev/sde1
    *** Some devices missing
btrfs-progs v4.0
ubuntu@ubuntu:~$ sudo mount -o degraded /dev/sda3 /mnt
mount: wrong fs type, bad option, bad superblock on /dev/sda3,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.
ubuntu@ubuntu:~$ dmesg
[...]
[  749.322385] BTRFS info (device sde1): allowing degraded mounts
[  749.322404] BTRFS info (device sde1): disk space caching is enabled
[  749.323571] BTRFS warning (device sde1): devid 6 uuid
f41bcb72-e88a-432f-9961-01307ec291a9 is missing
[  749.335543] BTRFS warning (device sde1): devid 7 uuid
17f8e02a-923e-4ac3-9db2-eb1b47c1a8db missing
[  749.407802] BTRFS: bdev (null) errs: wr 81791613, rd 57814378,
flush 0, corrupt 0, gen 0
[  749.407808] BTRFS: bdev /dev/sde1 errs: wr 0, rd 5002, flush 0,
corrupt 0, gen 0
[  774.759717] BTRFS: too many missing devices, writeable mount is not allowed
[  774.804053] BTRFS: open_ctree failed

Thank you in advance for your help,

-JohnF
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to