3つのディスクにBtrfsが設定されており、メタデータとデータはRAID1にあります。しかし、今は回復不能なチェックサムエラーが発生しました。
両方のコピーのチェックサムは同じで、予想されるチェックサムと1ビットだけ異なります。したがって、チェックサムがディスクに書き込まれる前にわずかな反転があると考えられます(コンピュータにECC RAMがない)。このファイルシステムに書き込む前に、実際のファイルのコピーを別のコンピュータに持っていますが、以下に示すように、ファイルシステムのI / Oエラーが原因でデータを読み取れないため、比較しないでください。
このエラーを解決するにはどうすればよいですか?
いくつかの詳細:
$ uname -a
Linux stan 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
$ btrfs --version
btrfs-progs v4.15.1
$ sudo btrfs fi usage /media/btrfs/
Overall:
Device size: 7.28TiB
Device allocated: 3.91TiB
Device unallocated: 3.36TiB
Device missing: 0.00B
Used: 3.83TiB
Free (estimated): 1.72TiB (min: 1.72TiB)
Data ratio: 2.00
Metadata ratio: 2.00
Global reserve: 512.00MiB (used: 0.00B)
Data,RAID1: Size:1.95TiB, Used:1.91TiB
/dev/sdb 1.95TiB
/dev/sdc 998.00GiB
/dev/sdd 1001.00GiB
Metadata,RAID1: Size:4.00GiB, Used:2.63GiB
/dev/sdb 4.00GiB
/dev/sdc 3.00GiB
/dev/sdd 1.00GiB
System,RAID1: Size:64.00MiB, Used:304.00KiB
/dev/sdb 64.00MiB
/dev/sdc 64.00MiB
Unallocated:
/dev/sdb 1.68TiB
/dev/sdc 861.95GiB
/dev/sdd 861.02GiB
ミサイル発射停止:
$ sudo btrfs scrub status /media/btrfs/
scrub status for xxxxxx
scrub started at Mon Aug 24 11:23:27 2020 and finished after 03:41:54
total bytes scrubbed: 3.81TiB with 2 errors
error details: csum=2
corrected errors: 0, uncorrectable errors: 2, unverified errors: 0
スクラブ後にDmesgエラーが発生しました。
$ dmesg
...
196755.786038] BTRFS warning (device sdb): checksum error at logical 3099310968832 on dev /dev/sdb, physical 1300730499072, root 5223, inod
e 6521311, offset 7614464, length 4096, links 1 (path: users/joachim/Bilder/Canon/270CANON/IMG_7003.CR2)
[196755.786168] BTRFS warning (device sdb): checksum error at logical 3099310968832 on dev /dev/sdb, physical 1300730499072, root 5303, inod
e 6521311, offset 7614464, length 4096, links 1 (path: users/joachim/Bilder/Canon/270CANON/IMG_7003.CR2)
[196755.786245] BTRFS warning (device sdb): checksum error at logical 3099310968832 on dev /dev/sdb, physical 1300730499072, root 5302, inod
e 6521311, offset 7614464, length 4096, links 1 (path: users/joachim/Bilder/Canon/270CANON/IMG_7003.CR2)
...
[196755.788274] BTRFS error (device sdb): bdev /dev/sdb errs: wr 0, rd 0, flush 0, corrupt 2, gen 0
[196755.814044] BTRFS error (device sdb): unable to fixup (regular) error at logical 3099310968832 on dev /dev/sdb
ブロックの内部を確認してください。
$ sudo btrfs inspect-internal logical-resolve -v 3099310968832 /media/btrfs/
ioctl ret=0, total_size=4096, bytes_left=3456, bytes_missing=0, cnt=78, missed=0
ioctl ret=0, bytes_left=4023, bytes_missing=0, cnt=1, missed=0
/media/btrfs//snapshots/stansafe.20200601T032501+0200/users/joachim/Bilder/Canon/270CANON/IMG_7003.CR2
ioctl ret=0, bytes_left=4023, bytes_missing=0, cnt=1, missed=0
/media/btrfs//snapshots/stansafe.20200910T032501+0200/users/joachim/Bilder/Canon/270CANON/IMG_7003.CR2
ioctl ret=0, bytes_left=4023, bytes_missing=0, cnt=1, missed=0
/media/btrfs//snapshots/stansafe.20200909T032502+0200/users/joachim/Bilder/Canon/270CANON/IMG_7003.CR2
...
ファイルを確認してください。
$ sha256sum /media/btrfs//stansafe/users/joachim/Bilder/Canon/270CANON/IMG_7003.CR2
sha256sum: /media/btrfs//stansafe/users/joachim/Bilder/Canon/270CANON/IMG_7003.CR2: Input/output error
$ dmesg
...
[1642985.509498] BTRFS warning (device sdb): csum failed root 259 ino 6521311 off 7614464 csum 0x151ad4ce expected csum 0x150ad4ce mirror 1
[1642985.509942] BTRFS warning (device sdb): csum failed root 259 ino 6521311 off 7614464 csum 0x151ad4ce expected csum 0x150ad4ce mirror 2
答え1
Linuxカーネル5.11では、ファイルチェックサムをマウントして無視するオプションが導入されました。これにより、データが誤ったcsumからコピーされる可能性があります。
mount -o rescue=ignoredatacsums /dev/sdX /mnt
これにより、ファイルが最小限に破損し、パリティの種類がある場合は、ファイルを完全に回復できます。2ストローク
答え2
3つのハードドライブまたは3つのパーティションにすべてのファイルの3つのコピーを保存する場合
raid1c3の使用
これにより、2つのハードドライブが失われても、1つのハードドライブ上のデータはそのまま残ります。
raid1は、使用しているハードドライブの数に関係なく、2つのコピーのみを保存します。