hi all
i have a single /dev/sdc as a btrfs volume. recently the volume got corrupted and i cannot seem to find a way to restore its functionality by using any of internet howtos.
i tried standard ‘safe’ options and still did not run --repair option in fear of killing the data completely.
also if i check with btrfs tools v4 and v5 (from tumbleweed live usb) i get totally different results.
with v4 i ger simply:
and with v5 i get a log file of 32Mb with over 500k lines stating following:
parent transid verify failed on 3646998413312 wanted 3065 found 2747
parent transid verify failed on 3646998413312 wanted 3065 found 2747
parent transid verify failed on 3646998413312 wanted 3065 found 2747
Ignoring transid failure
Opening filesystem to check...
Checking filesystem on /dev/sdc
UUID: bc677067-effd-430a-90fa-ab1c6cd51de1
[1/7] checking root items (0:00:00 elapsed, 144 items checked)
[1/7] checking root items (0:00:01 elapsed, 51113 items checked)
[1/7] checking root items (0:00:02 elapsed, 132156 items checked)
[1/7] checking root items (0:00:03 elapsed, 201203 items checked)
[1/7] checking root items (0:00:04 elapsed, 317426 items checked)
[2/7] checking extents (0:00:00 elapsed)
[2/7] checking extents (0:00:01 elapsed, 1940 items checked)
[2/7] checking extents (0:00:02 elapsed, 2355 items checked)
parent transid verify failed on 3646998642688 wanted 3065 found 2747
parent transid verify failed on 3646998642688 wanted 3065 found 2747
parent transid verify failed on 3646998642688 wanted 3065 found 2747
Ignoring transid failure
[2/7] checking extents (0:00:03 elapsed, 9973 items checked)
[2/7] checking extents (0:00:04 elapsed, 25702 items checked)
[2/7] checking extents (0:00:05 elapsed, 39437 items checked)
[2/7] checking extents (0:00:06 elapsed, 56114 items checked)
[2/7] checking extents (0:00:07 elapsed, 71956 items checked)
[2/7] checking extents (0:00:08 elapsed, 87850 items checked)
[2/7] checking extents (0:00:09 elapsed, 103417 items checked)
[2/7] checking extents (0:00:10 elapsed, 118146 items checked)
[2/7] checking extents (0:00:11 elapsed, 133337 items checked)
[2/7] checking extents (0:00:12 elapsed, 148490 items checked)
[2/7] checking extents (0:00:13 elapsed, 163390 items checked)
[2/7] checking extents (0:00:14 elapsed, 177768 items checked)
[2/7] checking extents (0:00:15 elapsed, 192416 items checked)
[2/7] checking extents (0:00:16 elapsed, 202829 items checked)
[2/7] checking extents (0:00:17 elapsed, 212968 items checked)
[2/7] checking extents (0:00:18 elapsed, 219076 items checked)
ref mismatch on [13631488 16384] extent item 1, found 0
incorrect local backref count on 13631488 root 5 owner 36919 offset 0 found 0 wanted 1 back 0x55c1895eaca0
backref disk bytenr does not match extent record, bytenr=13631488, ref bytenr=0
backpointer mismatch on [13631488 16384]
owner ref check failed [13631488 16384]
ref mismatch on [13647872 4096] extent item 1, found 0
incorrect local backref count on 13647872 root 5 owner 37225 offset 0 found 0 wanted 1 back 0x55c1895eae50
backref disk bytenr does not match extent record, bytenr=13647872, ref bytenr=0
backpointer mismatch on [13647872 4096]
owner ref check failed [13647872 4096]
...skipped many many lines
ref mismatch on [61423616 16384] extent item 1, found 0
backref 61423616 root 5 not referenced back 0x55c186e74550
incorrect global backref count on 61423616 found 1 wanted 0
backpointer mismatch on [61423616 16384]
owner ref check failed [61423616 16384]
ref mismatch on [268746752 16384] extent item 1, found 0
backref 268746752 root 5 not referenced back 0x55c1875bcd10
incorrect global backref count on 268746752 found 1 wanted 0
backpointer mismatch on [268746752 16384]
owner ref check failed [268746752 16384]
ref mismatch on [284639232 16384] extent item 1, found 0
backref 284639232 root 7 not referenced back 0x55c186ff9130
incorrect global backref count on 284639232 found 1 wanted 0
backpointer mismatch on [284639232 16384]
owner ref check failed [284639232 16384]
...skipping again many many lines
ref mismatch on [1104150528 134217728] extent item 1, found 0
incorrect local backref count on 1104150528 root 5 owner 260 offset 0 found 0 wanted 1 back 0x55c187a09e30
backref disk bytenr does not match extent record, bytenr=1104150528, ref bytenr=0
backpointer mismatch on [1104150528 134217728]
owner ref check failed [1104150528 134217728]
ref mismatch on [1238368256 134217728] extent item 1, found 0
incorrect local backref count on 1238368256 root 5 owner 260 offset 134217728 found 0 wanted 1 back 0x55c187a09fe0
backref disk bytenr does not match extent record, bytenr=1238368256, ref bytenr=0
backpointer mismatch on [1238368256 134217728]
owner ref check failed [1238368256 134217728]
ref mismatch on [1372585984 134217728] extent item 1, found 0
incorrect local backref count on 1372585984 root 5 owner 260 offset 268435456 found 0 wanted 1 back 0x55c187a0a110
backref disk bytenr does not match extent record, bytenr=1372585984, ref bytenr=0
backpointer mismatch on [1372585984 134217728]
owner ref check failed [1372585984 134217728]
...skipping again bundle
ref mismatch on [3671060365312 15777792] extent item 1, found 0
incorrect local backref count on 3671060365312 root 5 owner 37267 offset 18724372480 found 0 wanted 1 back 0x55c1895ea950
backref disk bytenr does not match extent record, bytenr=3671060365312, ref bytenr=0
backpointer mismatch on [3671060365312 15777792]
owner ref check failed [3671060365312 15777792]
ref mismatch on [3671076143104 16777216] extent item 1, found 0
incorrect local backref count on 3671076143104 root 5 owner 37267 offset 19730006016 found 0 wanted 1 back 0x55c1895eaa80
backref disk bytenr does not match extent record, bytenr=3671076143104, ref bytenr=0
backpointer mismatch on [3671076143104 16777216]
owner ref check failed [3671076143104 16777216]
[2/7] checking extents (0:00:20 elapsed, 220934 items checked)
ERROR: errors found in extent allocation tree or chunk allocation
cache and super generation don't match, space cache will be invalidated
[3/7] checking free space cache (0:00:00 elapsed)
[3/7] checking free space cache (0:00:00 elapsed)
[4/7] checking fs roots (0:00:00 elapsed)
root 5 root dir 256 not found
[4/7] checking fs roots (0:00:00 elapsed, 2 items checked)
ERROR: errors found in fs roots
found 3508584407040 bytes used, error(s) found
total csum bytes: 3417906432
total tree bytes: 3619651584
total fs tree bytes: 16384
total extent tree bytes: 26083328
btree space waste bytes: 135962918
file data blocks allocated: 880803840
referenced 880803840
i can attach a full log if needed, but generally it comes down to types of errors above.
can this disk still be repaired or should i just reformat it and be done with it?
i did chunk scan (took over 10h) which came up with nothing.
zero-logs and other options result in abort; i cannot do btrfs-image (it appears to be much much smaller then i would expect).
volume info:
Label: 'sum5' uuid: xxx
Total devices 1 FS bytes used 3.19TiB
devid 1 size 7.28TiB used 3.30TiB path /dev/sdc
image dumped is just a couple of gigs, and -d says that data dump is not supported.
some other output of ‘safe’ commands i ran based on internet feedback:
thumlivex:~ # btrfs scrub start /dev/sdc
ERROR: '/dev/sdc' is not a mounted btrfs device
thumlivex:~ # btrfs scrub start /dev/sdc
ERROR: '/dev/sdc' is not a mounted btrfs device
thumlivex:~ # btrfs fi sh
Label: 'sum5' uuid: bc677067-effd-430a-90fa-ab1c6cd51de1
Total devices 1 FS bytes used 3.19TiB
devid 1 size 7.28TiB used 3.30TiB path /dev/sdc
thumlivex:~ # mount -o ro,usebackuproot /dev/sdc /mnt/3/
mount: /mnt/3: can't read superblock on /dev/sdc.
thumlivex:~ # btrfs restore /dev/sdc /mnt/1/temp/00/
parent transid verify failed on 3646998413312 wanted 3065 found 2747
parent transid verify failed on 3646998413312 wanted 3065 found 2747
parent transid verify failed on 3646998413312 wanted 3065 found 2747
Ignoring transid failure
thumlivex:~ # btrfs rescue super-recover /dev/sdc
All supers are valid, no need to recover
thumlivex:~ # btrfs rescue zero-log /dev/sdc
parent transid verify failed on 3646998413312 wanted 3065 found 2747
parent transid verify failed on 3646998413312 wanted 3065 found 2747
ERROR: could not open ctree
thumlivex:~ # btrfs rescue fix-device-size /dev/sdc
parent transid verify failed on 3646998413312 wanted 3065 found 2747
parent transid verify failed on 3646998413312 wanted 3065 found 2747
ERROR: could not open btrfs
thumlivex:~ #
i also ran chunk-recover with no result.
any ideas would be welcome, it would be a pity to lose 3.3T of data because of a power outage… never had this kind of issues with ext4.
thanks in advance!
Egor