On 2019/10/3 上午9:47, Andrey Ivanov wrote: > On 01.10.2019 8:35, Qu Wenruo wrote: >>>> I recommend to do a "btrfs check" on all fses. >>> >>> I had done "btrfs check" on /dev/sda4: >>> >>> attached btrfs-check-sda4.output >>> >>> There are some errors. How to fix them? >> >> It looks like "btrfs check --repair" can handle most of these bugs. >> >> Please do a backup and try repair. > > I ran "btrfs check --repair": > > $ btrfs check -p --repair sda4.image.copy > enabling repair mode > Opening filesystem to check... > Checking filesystem on sda4.image.copy > UUID: a942b8da-e92d-4348-8de9-ded1e5e095ad > [1/7] checking root items (0:00:07 elapsed, 509893 > items checked) > Fixed 0 roots. > backref bytes do not match extent backref, bytenr=1985052672, ref > bytes=20480, backref bytes=86016 > backpointer mismatch on [1985052672 20480] > attempting to repair backref discrepency for bytenr 1985052672 > backref bytes do not match extent backref, bytenr=1985052672, ref > bytes=20480, backref bytes=86016 > backpointer mismatch on [1985052672 20480] > attempting to repair backref discrepency for bytenr 1985052672 > backref bytes do not match extent backref, bytenr=1985052672, ref > bytes=20480, backref bytes=86016 > backpointer mismatch on [1985052672 20480] > attempting to repair backref discrepency for bytenr 1985052672 > backref bytes do not match extent backref, bytenr=1985052672, ref > bytes=20480, backref bytes=86016 > backpointer mismatch on [1985052672 20480] > attempting to repair backref discrepency for bytenr 1985052672 > backref bytes do not match extent backref, bytenr=1985052672, ref > bytes=20480, backref bytes=86016 > backpointer mismatch on [1985052672 20480] > attempting to repair backref discrepency for bytenr 1985052672 > > After 27 hours of work, I interrupted it: > > backref bytes do not match extent backref, bytenr=1985052672, ref > bytes=20480, backref bytes=86016 > backpointer mismatch on [1985052672 20480] > attempting to repair backref discrepency for bytenr 1985052672 > backref bytes do not match extent backref, bytenr=1985052672, ref > bytes=20480, backref bytes=86016 > backpointer mismatch on [1985052672 20480] > attempting to repair backref discrepency for bytenr 1985052672 > backref bytes do not match extent backref, bytenr=1985052672, ref > bytes=20480, backref bytes=86016 > backpointer mismatch on [1985052672 20480] > attempting to repair backref discrepency for bytenr 1985052672 > backref bytes do not match extent backref, bytenr=1985052672, ref > bytes=20480, backref bytes=86016 > backpointer mismatch on [1985052672 20480] > attempting to repair backref discrepency for bytenr 1985052672 > checking extents (27:48:52 elapsed, 3363526296 > items checked) > > I think "btrfs check" is looped somewhere. Or not? You can try "btrfs check --mode=lowmem --repair" as an alternative. But please ensure your memory is properly replaced, or some random problem could just happen. Thanks, Qu
Attachment:
signature.asc
Description: OpenPGP digital signature
