외장 하드 드라이브에 백업을 수행하려고 합니다. 로컬 드라이브와 외부 드라이브 모두 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 메일링 리스트에 관한 질문. 커널을 업그레이드하면 문제가 해결되었습니다.