
外付けハードドライブへのバックアップを実行しようとしています。ネイティブ ドライブと外付けドライブの両方で 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/...
マウントされていないファイルシステムで。エラーは報告されませんでした。ファイルシステムを再起動した後、バックアップを再度試みましたが、同じエラーが発生しました。原因について何か考えはありますか?
編集
エマニュエル・ローザのコメントに従って、私は試しました
# btrfs scrub start -B /
エラーなしで終了しました。問題はスクラブ後もまだ残っています。
編集2
何が問題なのかわかりませんでした。結局、ローカル ファイルを削除したら、再び動作するようになりました。
編集3
ファイルを削除すると一時的に問題は解決しますが、同じエラーを引き起こす新しいファイルが作成されることがよくあるため、実際には解決されません。sqlite ファイルは特に問題があるようです。
答え1
これはどうやらLinuxカーネルのバグだったようで、このコミット。私はこれを投稿して発見しましたbtrfsメーリングリストへの質問カーネルをアップグレードすると問題は解決しました。