BTRFS warning (device sdb4): checksum error at logical 271624814592 on dev /dev/sdb4, physical 270551072768, root 677114, inode 739, offset 14508666880, length 4096, links 1 (path: Windows_10/Snapshots/{8b68a2dd-457e-496f-96df-cf24806dfe2d}.vdi)
Reading of mentioned file returns IO error when hit 70% of progress.
Corruption detected by periodic scrub. File was not touched for long time, so probably bitrot occurs. This is single SSD data, so there is no mirror of data. There is a backup of data.
Possible solution:
ro,rescue=ignoredatacsums
and copy bad file to another place and delete from source[4038494.678130] BTRFS critical (device sdb4): corrupt leaf: block=407659724800 slot=84 extent bytenr=406204694528 len=16384 invalid data ref offset, have 25442122467423744 expect aligned to 4096 [4038494.678133] BTRFS info (device sdb4): leaf 407659724800 gen 8637875 total ptrs 97 free space 5617 owner 2 ... [4038494.679249] ref#9: extent data backref root 388257660928 objectid 99389691396278 offset 25442122467423744 count 11927552 [4038494.679251] ref#10: (extent 407659724800 has INVALID ref type 192) ... [4038494.679393] BTRFS error (device sdb4): block=407659724800 write time tree block corruption detected [4038494.689126] BTRFS: error (device sdb4) in btrfs_commit_transaction:2389: errno=-5 IO failure (Error while writing out transaction) [4038494.689129] BTRFS info (device sdb4): forced readonly [4038494.689131] BTRFS warning (device sdb4): Skipping commit of aborted transaction. [4038494.689132] BTRFS: error (device sdb4) in cleanup_transaction:1944: errno=-5 IO failure
btrfs check /dev/sdb4 ERROR: errors found in fs roots found 338856771584 bytes used, error(s) found
btrfs rescue zero-log /dev/sdb4 btrfs check --repair /dev/mapper/pool2
btrfs check --repair /dev/mapper/pool2
[3/7] checking free space cache cache and super generation don't match, space cache will be invalidated
It is not real problem, but cache can be cleared:
btrfs check --repair --clear-space-cache v1 /dev/mapper/pool2
enabling repair mode Opening filesystem to check... Checking filesystem on /dev/mapper/pool2 UUID: 947b20e3-bc05-4f85-8989-d19178506209 Free space cache cleared
btrfs check --repair /dev/mapper/pool2
[4/7] checking fs roots root 649 inode 418 errors 1040, bad file extent, some csum missing root 649 inode 419 errors 1040, bad file extent, some csum missing ERROR: errors found in fs roots
Root number is subvolume id number, so mount subvolume to find files belonging to inodes
mount /dev/mapper/pool2 -o subvolid=649 /mountpoint find /mountpoint -xdev -inum 418 -print
Find will report multiple files located on multiple subvolumes with the same inode. List subvolumes to get root id:
btrfs sub list /mountpoint
ID 257 gen 524652 top level 5 path @volume ID 258 gen 524651 top level 257 path @volume/subvol1 ID 649 gen 524652 top level 257 path @volume/subvol12 <code> ====== Rescan hasn't been ====== <code> [7/7] checking quota groups Rescan hasn't been initialized, a difference in qgroup accounting is expected
btrfs quota rescan /mountpoint