미디어가 물리적으로 손상된 btrfs 파티션에서 데이터를 복구하려고 합니다.
파티션의 약 99%를 복구할 수 있었으므로 대부분의 데이터가 거기에 있을 것이라고 확신합니다. 하지만 중요한 메타데이터가 누락된 것 같습니다. 파티션을 전혀 마운트할 수 없습니다. btrfs rescue super-recover
실패. btrfs restore
발견된 다른 트리 루트를 사용하여 다양한 파일을 얻을 수 있습니다 btrfs-find-root
. 그러나 디렉터리( )에서는 /home
항상 실패합니다 .
checksum verify failed on 965984256 found 000000B6 wanted 00000000
bad tree block 965984256, bytenr mismatch, want=965984256, have=0
Error searching -5
Error searching /recovery/sde1/@home
루트 세트에서 디렉토리에 들어갈 수 없기 때문에 루트 세트 메타데이터를 우회하여 디렉토리 내용을 가져오는 다른 방법이 있는지 궁금합니다. 아마도 전체 파티션을 스캔하는 것일 수도 있습니다.
답변1
데이터 자체가 손상된 경우 파일의 일부에 오류나 액세스할 수 없는 데이터가 포함됩니다. 이 경우 로그에 체크섬 오류가 표시됩니다. BTRFS
고유한 중복성으로 인해 일부 정보를 복구할 수 있는 경우 스크러빙을 통해 이를 수행할 수 있습니다.
BTRFS error (device sda1): bdev /dev/sda1 errs: wr 0, rd 0, flush 0, corrupt 11382, gen 0
BTRFS error (device sda1): unable to fixup (regular) error at logical 13787648000 on dev /dev/sda1
영향을 받으면 superblock
전혀 마운트할 수 없습니다. 운영 체제가 장치를 설치하는 데 필요한 정보가 포함된 superblock
루트 디렉터리 입니다 . 다른 위치에 추가 복사본이 저장되어 있으므로 filesystem tree
일반적으로 쉽게 수정할 수 있으므로 BTRFS
슈퍼블록의 복사본으로 마운트하거나 다음 명령을 실행하여 문제를 해결할 수도 있습니다.
btrfs rescue super-recover
filesystem
또한 실제 데이터가 손상되지 않은 경우에도 메타데이터 손상이 발생할 수 있습니다. 이는 BTRFS
파일이나 파일의 일부가 존재하는지 모르므로 해당 파일에 액세스할 수 없음을 의미합니다. 이 경우 신속하게 대응하면 다음 명령을 사용하여 전체 디스크를 스캔하고 filesystem
메타데이터 트리를 다시 빌드해 볼 수 있습니다.btrfs
rescue chunk-recover.
이는 위험하고 매우 느립니다.