Hello community,
I need some help or suggestions how to rebuild/repair an Array with two disks seemingly having a corrupted BTRFS file system.
Setup
Unraid Array (BTRFS)
2 x Parity Disk 18GB
6 x Array Disk 8GB
Current State
Parity: OK
Disks 2, 4, 5, 6: OK
Disk 1 and Disk 3: not mountable, BTRFS Error: superblock checksum mismatch...
Array: unsafe, missing disks are emulated
What happend
For some time different disks got missing repeatedly. When that happend I managed to repair the array either because I got the missing disk running again or by clearing the disk and rebuilding the array.
When two Array disks were missing at the same time I had enough and stopped all containers to search for the root cause.
Because the missing disks were emulated I made a full backup with rsync first, which went well after the second try.
Then I figured out that the main issue was the 10 Port PCIe SATA controller. So I switched to a proper SAS controller.
The two missing disks are back, boot log doesn't throw any errors. So far so good.
Then I assigned the missing disks back to the array, started the array and started the rebuild.
Only after a couple of minutes I saw the warning that the disks ar unmountable. My mistake...
So I stopped the rebuild/sync.
Issue
[...]
Jul 2 12:22:13 GrayBigBerta emhttpd: Mounting disks...
Jul 2 12:22:13 GrayBigBerta emhttpd: mounting /mnt/disk1
Jul 2 12:22:13 GrayBigBerta emhttpd: shcmd (1960): mkdir -p /mnt/disk1
Jul 2 12:22:13 GrayBigBerta emhttpd: /mnt/disk1: no btrfs or device /dev/md1p1 is not single
Jul 2 12:22:13 GrayBigBerta emhttpd: /mnt/disk1 mount error: Unsupported or no file system
Jul 2 12:22:13 GrayBigBerta emhttpd: shcmd (1961): rmdir /mnt/disk1
Jul 2 12:22:13 GrayBigBerta emhttpd: mounting /mnt/disk2
Jul 2 12:22:13 GrayBigBerta emhttpd: shcmd (1962): mkdir -p /mnt/disk2
Jul 2 12:22:14 GrayBigBerta emhttpd: shcmd (1963): mount -t btrfs -o noatime,space_cache=v2 /dev/md2p1 /mnt/disk2
Jul 2 12:22:14 GrayBigBerta kernel: BTRFS info (device md2p1): using crc32c (crc32c-intel) checksum algorithm
Jul 2 12:22:14 GrayBigBerta kernel: BTRFS info (device md2p1): using free space tree
Jul 2 12:22:15 GrayBigBerta kernel: BTRFS info (device md2p1): bdev /dev/md2p1 errs: wr 0, rd 0, flush 0, corrupt 22, gen 0
Jul 2 12:22:25 GrayBigBerta emhttpd: shcmd (1964): btrfs filesystem resize 1:max /mnt/disk2
Jul 2 12:22:25 GrayBigBerta root: Resize device id 1 (/dev/md2p1) from 7.28TiB to max
Jul 2 12:22:25 GrayBigBerta kernel: BTRFS info (device md2p1): resizing devid 1
Jul 2 12:22:25 GrayBigBerta emhttpd: mounting /mnt/disk3
Jul 2 12:22:25 GrayBigBerta emhttpd: shcmd (1965): mkdir -p /mnt/disk3
Jul 2 12:22:26 GrayBigBerta emhttpd: /mnt/disk3: no btrfs or device /dev/md3p1 is not single
Jul 2 12:22:26 GrayBigBerta emhttpd: /mnt/disk3 mount error: Unsupported or no file system
Jul 2 12:22:26 GrayBigBerta emhttpd: shcmd (1966): rmdir /mnt/disk3
[...]
Trying to mount the disks as unassigned devices:
Jul 2 12:38:30 GrayBigBerta unassigned.devices: Mounting partition 'sdg1' at mountpoint '/mnt/disks/VRJW879K'...
Jul 2 12:38:30 GrayBigBerta unassigned.devices: Mount cmd: /sbin/mount -t 'btrfs' -o rw,relatime,space_cache=v2 '/dev/sdg1' '/mnt/disks/VRJW879K'
Jul 2 12:38:30 GrayBigBerta kernel: BTRFS: device fsid d92a06ea-1eb0-4fd1-8aa3-47e0d921bdd8 devid 1 transid 29956 /dev/sdg1 scanned by mount (4220)
Jul 2 12:38:30 GrayBigBerta kernel: BTRFS info (device sdg1): using crc32c (crc32c-intel) checksum algorithm
Jul 2 12:38:30 GrayBigBerta kernel: BTRFS error (device sdg1): superblock checksum mismatch
Jul 2 12:38:30 GrayBigBerta kernel: BTRFS error (device sdg1): open_ctree failed
Jul 2 12:38:32 GrayBigBerta unassigned.devices: Mount of 'sdg1' failed: 'mount: /mnt/disks/VRJW879K: wrong fs type, bad option, bad superblock on /dev/sdg1, missing codepage or helper program, or other error. dmesg(1) may have more information after failed mount system call. '
Jul 2 12:38:32 GrayBigBerta unassigned.devices: Partition 'VRJW879K' cannot be mounted.
My own idea
Because the array is still functional due to the emulated disks I had the idea to simply format the two disks and assign them as "new" disks to the array.
I did that with single disks before but not with two at the same time, so I'm not sure if that is a good idea.
Is ther a way to repair the filesystem? If yes, then I'd kindly ask for help.
Note: the rebuild was running for ten minutes or so before I canceled it, don't know if this makes any difference.
Or should I go with my idea?
Thank you very much in advance!
graybigberta-diagnostics-20240702-1251.zip