On 2019/4/6 上午3:38, Nik. wrote: > > > 2019-04-05 10:15, Qu Wenruo: >> >> >> On 2019/4/5 下午3:41, Nik. wrote: >>> >>> Below is the stderr of both commands: >>> >>> # btrfs inspect dump-tree -t chunk /dev/md0>DT-chunk.log >>> # btrfs inspect dump-tree -t extent /dev/md0>DT-extent.log >>> ERROR: leaf 1894009225216 slot 30 pointer invalid, offset 146038 size 37 >>> leaf data limit 16283 >>> ERROR: skip remaining slots >>> >>> Since the output on stdout is pretty long even after gzip, I am >>> providing only the output of the first command as attachment. The output >>> of the second command (25 MB after gzip -9) can be downloaded here: >>> >>> https://cloud.avgustinov.eu/index.php/s/AgbwWyCrbYjenq8 >> >> Sorry, I should have use a more specific command to get a smaller output. >> But anyway, your output is good enough for me to craft the fix patch. >> >> Here is the dirty fix branch: >> https://github.com/adam900710/btrfs-progs/tree/dirty_fix_for_nik >> >> Compile the btrfs-progs as usual. >> Just a late hint, you can disable document/btrfs-convert to reduce the >> dependency: >> $ ./configure --disable-documentation --disable-convert >> >> Then, inside btrfs-progs directory, call: >> # ./btrfs-corrupt-block -X /dev/md0 > incorrect offsets 15003 146075 > Open ctree failed Oh, I forgot it's in extent tree, which may need to be read out at mount time. Just a new flag can handle it. The branch is updated, please check. Thanks, Qu > > Actually there was one warning during make, I don't know of it is relevant: > [CC] check/main.o > check/main.c: In function ‘try_repair_inode’: > check/main.c:2688:5: warning: ‘ret’ may be used uninitialized in this > function [-Wmaybe-uninitialized] > if (!ret) { > ^ > check/main.c:2666:6: note: ‘ret’ was declared here > int ret; > ^~~ > > The previous steps were as follow (output ommited, since nothing > unexpected happened): > #git clone --single-branch -v -b dirty_fix_for_nik > https://github.com/adam900710/btrfs-progs.git > #cd btrfs-progs/ > #./autogen.sh > #./configure --disable-documentation --disable-convert > #make > > Did I got the right branch? Or miss any step? > > Kind regards, > Nik. > -- > >> If everything goes correctly, it should output something like: >> Successfully repaired tree block at 1894009225216 >> (And please ignore any grammar error in my code) >> >> After that, please run a "btrfs check --readonly" to ensure no other bit >> flip in your fs. >> >> Thanks, >> Qu >> >> >> >>> >>> Hope this is ok. >>> >>> Regards, >>> Nik. >>> - >>
Attachment:
signature.asc
Description: OpenPGP digital signature
