btrfs 설치 오류 "슈퍼블록을 읽을 수 없습니다"

btrfs 설치 오류 "슈퍼블록을 읽을 수 없습니다"

raid6에 Synology nas 드라이브가 있는데 드라이브에 오류가 발생했습니다. 정전으로 인해 스토리지 풀이 충돌한 후 드라이브를 교체하고 나머지 두 드라이브를 RAID에서 제거했습니다. 모든 드라이브를 다른 시스템으로 옮기고 raid와 lvm을 다시 빌드할 수 있었지만 btrfs 파일 시스템에 설치를 방해하는 버그가 있습니다.

테스트 실행으로 btrfs 복구를 실행했는데 예상된 파일 중 일부가 표시되었습니다. 나는 현재 얻는다

mount error

can't read superblock on /dev/mapper/vg1-volume_1.

이것이 마지막 오류 메시지이며 슈퍼블록을 읽을 수 없습니다. dmesg에서

BTRFS info (device dm-1): using crc32c (crc32c-intel) checksum algorithm
BTRFS info (device dm-1): using free space tree
BTRFS critical (device dm-1): corrupt leaf: root=1 block=503087104 slot=23, invalid root flags, have 0x400000000 expect mask 0x1000000000001
BTRFS error (device dm-1): read time tree block corruption detected on logical 503087104 mirror 1
BTRFS critical (device dm-1): corrupt leaf: root=1 block=503087104 slot=23, invalid root flags, have 0x400000000 expect mask 0x1000000000001
BTRFS error (device dm-1): read time tree block corruption detected on logical 503087104 mirror 2
BTRFS error (device dm-1): open_ctree failed

내가 지울 수 있었던 마지막 오류는 다음과 같습니다. Btrfs 슈퍼 복구에서는 모든 슈퍼 블록이 괜찮다고 말하지만 설치에 동의하지 않습니다.

제로 로깅으로 첫 번째 오류가 해결되었습니다.

btrfs rescue super-recover -v /dev/mapper/vg1-volume_1
All Devices:
        Device: id = 1, name = /dev/mapper/vg1-volume_1

Before Recovering:
        [All good supers]:
                device name = /dev/mapper/vg1-volume_1
                superblock bytenr = 65536

                device name = /dev/mapper/vg1-volume_1
                superblock bytenr = 67108864

                device name = /dev/mapper/vg1-volume_1
                superblock bytenr = 274877906944

        [All bad supers]:

All supers are valid, no need to recover
btrfs check --check-data-csum
Opening filesystem to check...
Checking filesystem on /dev/mapper/vg1-volume_1
UUID: c9d2c563-30cb-4b27-b29a-d5f2642597d8
[1/7] checking root items
[2/7] checking extents
Invalid key type(BLOCK_GROUP_ITEM) found in root(202)
ignoring invalid key
--------There are a lot of these
Invalid key type(BLOCK_GROUP_ITEM) found in root(202)
ignoring invalid key
[3/7] checking free space tree
[4/7] checking fs roots
[5/7] checking csums against data
[6/7] checking root refs
[7/7] checking quota groups skipped (not enabled on this FS)
found 37552772378624 bytes used, no error found
total csum bytes: 2551494312
total tree bytes: 7828389888
total fs tree bytes: 4063068160
total extent tree bytes: 754450432
btree space waste bytes: 1181718069
file data blocks allocated: 37548545822720
 referenced 37710498009088
btrfs inspect-internal dump-super /dev/mapper/vg1-volume_1
superblock: bytenr=65536, device=/dev/mapper/vg1-volume_1
---------------------------------------------------------
csum_type               0 (crc32c)
csum_size               4
csum                    0x5be2c7ca [match]
bytenr                  65536
flags                   0x1
                        ( WRITTEN )
magic                   _BHRfS_M [match]
fsid                    c9d2c563-30cb-4b27-b29a-d5f2642597d8
metadata_uuid           c9d2c563-30cb-4b27-b29a-d5f2642597d8
label                   2019.10.19-07:46:08 v24922
generation              2838041
root                    29818880
sys_array_size          129
chunk_root_generation   2793730
root_level              1
chunk_root              21020672
chunk_root_level        1
log_root                0
log_root_transid        0
log_root_level          0
total_bytes             39958383427584
bytes_used              37552772378624
sectorsize              4096
nodesize                16384
leafsize (deprecated)   16384
stripesize              4096
root_dir                6
num_devices             1
compat_flags            0x8000000000000000
compat_ro_flags         0x3
                        ( FREE_SPACE_TREE |
                          FREE_SPACE_TREE_VALID )
incompat_flags          0x16b
                        ( MIXED_BACKREF |
                          DEFAULT_SUBVOL |
                          COMPRESS_LZO |
                          BIG_METADATA |
                          EXTENDED_IREF |
                          SKINNY_METADATA )
cache_generation        18446744073709551615
uuid_tree_generation    2838039
dev_item.uuid           3ce7be34-1a1f-42aa-9330-186edef4841e
dev_item.fsid           c9d2c563-30cb-4b27-b29a-d5f2642597d8 [match]
dev_item.type           0
dev_item.total_bytes    39958383427584
dev_item.bytes_used     38619297349632
dev_item.io_align       4096
dev_item.io_width       4096
dev_item.sector_size    4096
dev_item.devid          1
dev_item.dev_group      0
dev_item.seek_speed     0
dev_item.bandwidth      0
dev_item.generation     0

많은 옵션이 잠재적으로 파괴적이므로 어떻게 진행해야 할지 모르겠습니다. 드라이브를 읽기 전용 Synology 풀에 넣으면 모든 키 파일을 다운로드할 수 있었지만 왜 일반 Linux 상자에 마운트할 수 없는지 알 수 없었습니다.

:서버 장애에 대해서도 참조했습니다.

관련 정보