손상된 btrfs에 백업을 올바르게 복원하는 방법은 무엇입니까?

손상된 btrfs에 백업을 올바르게 복원하는 방법은 무엇입니까?

내 btrfs는 어느 정도 손상되었으며 로그는 다음과 같습니다.

BTRFS warning (device dm-0): csum failed root 261 ino 638264 off 6221824 csum 0x3315c12e expected csum 0xc1eecea6 mirror 1
BTRFS error (device dm-0): bdev /dev/mapper/cryptroot errs: wr 16, rd 1, flush 0, corrupt 16112, gen 0

또한 손상되지 않은 외부 저장소의 스냅샷도 있습니다. 복구하려면 무엇을 사용해야 합니까? btrfs 보내기/받기 또는 rsync를 고려하고 있지만 파일 손상을 처리하고 메타를 엉망으로 만들 수 있는지 확실하지 않습니다. 전체 디스크를 다시 포맷하고, 다시 쓰고, 다시 암호화할 수도 있지만 시간이 오래 걸립니다.

btrfs check체크섬 오류만 보고됩니다. btrfs check --repair도움이 안돼.

고쳐 쓰다:

그래서 나는 회복을 사용했습니다 rsync -aiAXHSc --cc=xxh3 --inplace --del. 이제 모든 것이 잘 작동합니다. 한때 부패했던 모든 것이 이제는 좋습니다. 하지만.

btrfs scrub여전히 19000개 블록의 csum 오류를 보고합니다. 일부 문제가 있는 inode를 확인하는 데 사용됩니다 btrfs inspect-internal inode-resolve. 그들 대부분은 돌아왔습니다 ERROR: logical ino ioctl: No such file or directory. 그 중 일부는 전혀 문제 없이 파일을 반환했습니다. csum 오류가 있는 로그에 언급된 파일은 정상이거나 존재하지 않습니다. btrfs check이전과 마찬가지로 csum 오류만 반환됩니다.

무슨 일이 일어났는지 모르겠어요.

관련 정보