On 2019/4/6 下午9:20, Nik. wrote: > > > 2019-04-06 11:06, Qu Wenruo: >>>> >>>> Please try again, and sorry for the inconvenience. Hopes this is the >>>> last try. >>> >>> #sudo ./btrfs-corrupt-block -X /dev/md0 >>> old offset=131072 len=0 >>> new offset=0 len=0 >> >> My bad, the first fix is bad, leading the bad result. >> >> (And that's why we need to review patches) >> >> Fortunately we have everything we need to manually set the value, no >> magic any more. > > So I gues the next steps were git fetch, make and run again the above > two commands: > > #git fetch > From https://github.com/adam900710/btrfs-progs > + c7bfe8cc...a8c26abd dirty_fix_for_nik -> origin/dirty_fix_for_nik > (forced update)
It looks like you haven't checked out to the correct branch. You could use command 'git checkout origin/dirty_fix_for_nik' to change to the latest branch. Thanks, Qu > #make > [PY] libbtrfsutil > > #./btrfs-corrupt-block -X /dev/md0 > old offset=0 len=0 > new offset=0 len=0 > Successfully repair tree block at 1894009225216 > > # mount -t btrfs -o ro /dev/md0 /mnt/md0/ > mount: /mnt/md0: wrong fs type, bad option, bad superblock on /dev/md0, > missing codepage or helper program, or other error. > > # dmesg|tail > ... > [56146.672395] BTRFS info (device md0): disk space caching is enabled > [56146.841632] BTRFS info (device md0): bdev /dev/md0 errs: wr 0, rd 0, > flush 0, corrupt 2181, gen 0 > [56148.097242] BTRFS critical (device md0): corrupt leaf: root=1 > block=1894009225216 slot=30, unexpected item end, have 0 expect 15003 > [56148.097583] BTRFS error (device md0): failed to read block groups: -5 > [56148.140137] BTRFS error (device md0): open_ctree failed > > If the above steps were wrong - please, correct! > >> The only uncertain part is the size. >> If mount still fails, dmesg will tell me the size I need. >> >> >>> Successfully repair tree block at 1894009225216 >>> # mount -t btrfs -o ro /dev/md0 /mnt/md0/ >>> mount: /mnt/md0: wrong fs type, bad option, bad superblock on /dev/md0, >>> missing codepage or helper program, or other error. >>> root@bach:~# dmesg|tail >>> ... >>> [39342.860715] BTRFS info (device md0): disk space caching is enabled >>> [39342.933380] BTRFS info (device md0): bdev /dev/md0 errs: wr 0, rd 0, >>> flush 0, corrupt 2181, gen 0 >>> [39344.197411] BTRFS critical (device md0): corrupt leaf: root=1 >>> block=1894009225216 slot=30, unexpected item end, have 0 expect 15003 >>> [39344.197915] BTRFS error (device md0): failed to read block groups: -5 >>> [39344.248137] BTRFS error (device md0): open_ctree failed >>> >>> Sorry, I forgot to tell: this and previous attempt were with kernel >>> 4.15.0-47-generic. >> >> As long as it can output above message, the kernel version doesn't make >> much difference. >> >> >>> My Ubuntu 18.04 LTS is having enormous problems with >>> Kernel 5.0.2 - very long boot; network, login and other services cycling >>> trough "start, timeout, fail, stop" again and again, etc. If kernel 5 is >>> important I will need time to get it right (maybe even assistance from >>> another(?) developer group). >>> Actually with 5.0.2 each boot sends me an email about an empty and not >>> automatically mounted btrfs filesystem with raid1 profile, consisting >>> from two devices (sdb and sdi): >>> >>> kernel: [ 9.625619] BTRFS: device fsid >>> 05bd214a-8961-4165-9205-a5089a65b59b devid 2 transid 832 /dev/sdi >>> >>> Scrubbing it finishes almost immediately (see below), but during next >>> boot the email comes again: >>> >>> #btrfs scrub status /mnt/b >>> scrub status for 05bd214a-8961-4165-9205-a5089a65b59b >>> scrub started at Sat Apr 6 10:42:15 2019 and finished after >>> 00:00:00 >>> total bytes scrubbed: 1.51MiB with 0 errors >>> >>> Should I be worried about it? >> >> You could try btrfs check --readonly and see what's going on. >> If btrfs check --readonly is OK, then it should be mostly OK. > > Then it seems to be ok, thank you! > > >> Thanks, >> Qu >> >> >>> >>> Kind regards, >>> Nik. >>> -- >>> >>>> Thanks, >>>> Qu >>>>> >>>>> Thank you. >>>>> Nik. >>>>> -- >>>>> >>>>>> 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. >>>>>>>>> - >>>>>>>> >>>>>> >>>> >>
signature.asc
Description: OpenPGP digital signature