3개의 디스크가 포함된 raid 5 어레이가 있었는데, btrfs
(raid에서 제공 btrfs
) 디스크 중 하나를 사용하여 손상되었습니다. 다음을 통해 디스크를 교체했습니다.
btrfs device add /dev/sdc /media/raid/
btrfs device delete missing /media/raid/
이로 인해 디스크 간의 재조정이 강제로 이루어졌고 그 후 FS는 괜찮았습니다.
한 번 다시 시작한 후:
[11152.188020] BTRFS info (device sdb): enabling auto defrag
[11152.188028] BTRFS info (device sdb): disk space caching is enabled
[11152.189762] BTRFS: failed to read chunk tree on sdb
[11152.196224] BTRFS: open_ctree failed
pc ~ # mount -a
mount: wrong fs type, bad option, bad superblock on /dev/sde,
missing codepage or helper program, or other error
syslog
어떤 경우에는
dmesg | tail
유용한 정보를 시도해 볼 수 있습니다.
운영 체제는 먼저 의 행을 주석 처리 fstab
한 다음 해당 행의 주석 처리를 제거했습니다.
LABEL="raid" /media/raid btrfs compress=lzo,noatime,autodefrag
저는 Gentoo Linux, 커널 4.0.5를 사용하고 있습니다.
btrfs fi
쇼 는 다음과 같습니다 .
Label: 'raid' uuid: 906ed4e3-52c5-4eb7-bd06-4810c0b84902
Total devices 3 FS bytes used 775.29GiB
devid 1 size 931.51GiB used 390.06GiB path /dev/sdb
devid 3 size 931.51GiB used 390.04GiB path /dev/sde
devid 4 size 931.51GiB used 390.03GiB path /dev/sdc
pc / # btrfs-find-root /dev/sdc
Superblock thinks the generation is 1758
Superblock thinks the level is 0
Found tree root at 30818304 gen 1758 level 0
Well block 30457856(gen: 1757 level: 0) seems good, but generation/level doesn't match, want gen: 1758 level: 0
Well block 29753344(gen: 1590 level: 0) seems good, but generation/level doesn't match, want gen: 1758 level: 0
Well block 29507584(gen: 1589 level: 0) seems good, but generation/level doesn't match, want gen: 1758 level: 0
Well block 4243456(gen: 3 level: 0) seems good, but generation/level doesn't match, want gen: 1758 level: 0
Well block 4194304(gen: 2 level: 0) seems good, but generation/level doesn't match, want gen: 1758 level: 0
답변1
이 옵션을 사용하여 볼륨을 마운트해 보셨나요 recovery
?
에서 man mount
:
다시 덮다: 설치 중에 잘못된 트리 루트가 발견되면 자동 복구 시도를 활성화합니다. 현재는 이전의 여러 트리 루트 목록을 검색하고 읽을 수 있는 첫 번째 루트를 사용하려고 시도합니다.
mount -o recovery /dev/sdb /media/raid