meta data for this page
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| linux:fs:btrfs:btrfs_check [2019/10/22 20:04] – created niziak | linux:fs:btrfs:btrfs_check [2023/03/13 10:44] (current) – niziak | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== btrfs check ====== | ||
| + | |||
| + | ====== checksum error at logical ====== | ||
| + | |||
| + | < | ||
| + | BTRFS warning (device sdb4): checksum error at logical 271624814592 on dev /dev/sdb4, physical 270551072768, | ||
| + | </ | ||
| + | |||
| + | 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: | ||
| + | * delete file to remove invalid entry from cksum tree and restore from backup | ||
| + | * try playing with mounting with '' | ||
| + | |||
| + | |||
| + | |||
| + | ====== | ||
| + | < | ||
| + | [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: | ||
| + | [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: | ||
| + | </ | ||
| - | ====== cache and super generation don't match ====== | ||
| <code bash> | <code bash> | ||
| + | btrfs check /dev/sdb4 | ||
| + | |||
| + | ERROR: errors found in fs roots | ||
| + | found 338856771584 bytes used, error(s) found | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | btrfs rescue zero-log /dev/sdb4 | ||
| btrfs check --repair / | btrfs check --repair / | ||
| + | </ | ||
| + | |||
| + | ====== cache and super generation don't match ====== | ||
| + | <code bash> | ||
| + | btrfs check --repair / | ||
| + | </ | ||
| + | < | ||
| [3/7] checking free space cache | [3/7] checking free space cache | ||
| cache and super generation don't match, space cache will be invalidated | cache and super generation don't match, space cache will be invalidated | ||
| Line 12: | Line 59: | ||
| <code bash> | <code bash> | ||
| btrfs check --repair --clear-space-cache v1 / | btrfs check --repair --clear-space-cache v1 / | ||
| + | </ | ||
| + | < | ||
| enabling repair mode | enabling repair mode | ||
| Opening filesystem to check... | Opening filesystem to check... | ||
| Line 23: | Line 72: | ||
| <code bash> | <code bash> | ||
| btrfs check --repair / | btrfs check --repair / | ||
| + | </ | ||
| + | < | ||
| [4/7] checking fs roots | [4/7] checking fs roots | ||
| root 649 inode 418 errors 1040, bad file extent, some csum missing | root 649 inode 418 errors 1040, bad file extent, some csum missing | ||
| Line 30: | Line 80: | ||
| </ | </ | ||
| - | Mount filesystem and find files belonging to inodes. | + | Root number is subvolume id number, so mount subvolume to find files belonging to inodes |
| <code bash> | <code bash> | ||
| - | find /mountpoint -inum 418 -print | + | mount / |
| + | find / | ||
| </ | </ | ||
| Find will report multiple files located on multiple subvolumes with the same inode. | Find will report multiple files located on multiple subvolumes with the same inode. | ||
| Line 39: | Line 90: | ||
| <code bash> | <code bash> | ||
| btrfs sub list /mountpoint | btrfs sub list /mountpoint | ||
| + | </ | ||
| + | < | ||
| ID 257 gen 524652 top level 5 path @volume | ID 257 gen 524652 top level 5 path @volume | ||
| ID 258 gen 524651 top level 257 path @volume/ | ID 258 gen 524651 top level 257 path @volume/ | ||
| Line 44: | Line 97: | ||
| < | < | ||
| + | ====== Rescan hasn't been ====== | ||
| + | < | ||
| + | [7/7] checking quota groups | ||
| + | Rescan hasn't been initialized, | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | btrfs quota rescan /mountpoint | ||
| + | </ | ||