증분 백업 중에 btrfs 오류로 인해 익스텐트를 복제하지 못했습니다.

증분 백업 중에 btrfs 오류로 인해 익스텐트를 복제하지 못했습니다.

외장 하드 드라이브에 백업을 수행하려고 합니다. 기본 드라이브와 외부 드라이브 모두 BTRFS 파일 시스템을 사용합니다. 먼저 홈 디렉터리의 읽기 전용 스냅샷을 생성하여 이 작업을 수행합니다.

# btrfs subvolume snapshot -r /home /.snapshots/home/BACKUP

이어서 백업 드라이브로 보내기/받기:

# btrfs send /.snapshots/home/BACKUP | btrfs receive /.backup/home

나는 다음과 같은 결과를 얻습니다.

At subvol /.snapshots/home/BACKUP
At subvol BACKUP
ERROR: failed to clone extents to matt/.local/share/Anki2/Matt/collection.anki2: Invalid argument

1분 정도 후에 오류가 발생합니다. 여러 가지 다른 스냅샷을 사용해 보았으나 각각 동일한 오류가 발생했습니다. 게다가 어떤 스냅샷에서도 해당 파일을 찾을 수 없었습니다. 일종의 디스크 손상 오류일 수도 있다고 생각하여 USB OS 이미지로 부팅하고 실행했습니다.

# btrfs check --repair /dev/mapper/...

마운트 해제된 파일 시스템에서. 오류가 보고되지 않았습니다. 파일 시스템으로 다시 부팅한 후 백업을 다시 시도했지만 동일한 오류가 발생했습니다. 이 문제의 원인이 무엇인지 생각해 보세요.


편집하다

Emmanuel Rosa의 의견에 따라 나는 시도했습니다.

# btrfs scrub start -B /

오류 없이 종료되었습니다. 문제는 스크럽 후에도 여전히 존재합니다.


편집 2

나는 이것이 무엇이 잘못되었는지 알 수 없었습니다. 결국 로컬 파일을 삭제한 다음 다시 작동했습니다.


편집 3

파일을 삭제하면 문제가 일시적으로 중단되지만 동일한 오류를 생성하는 새 파일이 생성되는 경우가 많기 때문에 실제로는 해결되지 않습니다. sqlite 파일은 특히 문제가 있는 것 같습니다.

답변1

이것은 분명히 Linux 커널의 버그였으며 다음으로 수정되었습니다.이 커밋. 포스팅하면서 알게됐는데btrfs 메일링 리스트에 대한 질문. 커널을 업그레이드하면 문제가 해결되었습니다.

관련 정보