From: none <ytrezq@sdf-eu.org>
To: Qu Wenruo <quwenruo@cn.fujitsu.com>
Cc: linux-btrfs@vger.kernel.org
Subject: Re: How to recover a filesystem without formatting nor using the btrfs check command.
Date: Mon, 02 Jan 2017 00:29:52 +0100 [thread overview]
Message-ID: <866efefad9d62f7f00c117edc4715651@mx.sdfeu.org> (raw)
In-Reply-To: <2166adfe-88af-5d9a-295f-d7002d64ed0e@cn.fujitsu.com>
Le 2016-10-27 03:11, Qu Wenruo a écrit :
> At 10/26/2016 07:52 PM, none wrote:
>> Le 2016-10-26 03:43, Qu Wenruo a écrit :
>>> Unfortunately, low memory mode is right here.
>>>
>>> If btrfs-image dump the image correctly, your extent tree is really
>>> screwed up.
>>>
>>> And how badly it is screwed up?
>>> It only contains the basic block group info.
>>> Almost empty, without any really useful EXTENT_ITEM/METADATA_ITEM.
>>> You can check it by btrfs-debug-tree -t extent.
>>> Normally, one EXTENT_DATA or tree block should have corresponding
>>> EXTENT_ITEM or METADATA_ITEM in extent tree.
>>>
>>> But in your dump, I only find EXTENT_ITEM less than a dozen, which is
>>> totally abnormal for the used size of your fs.
>> Please note df -h report 55Gb used due to a very high compression
>> ratio.
>> Basically most of the theoretical used space is done by less than 100
>> files. I want to delete them
>>> That's why lowmem mode is reporting so many backref lost.
>> Whithout the lowmem mode, only 3 lines are reported :
>>
>> Failed to find [75191291904, 168, 4096]
>> btrfs unable to find ref byte nr 75191291904 parent 0 root 1 owner 1
>> offset 0
>> Failed to find [75191316480, 168, 4096]
>> btrfs unable to find ref byte nr 75191316480 parent 0 root 1 owner 0
>> offset 1
>> parent transid verify failed on 75191349248 wanted 3555361 found
>> 3555362
>> Ignoring transid failure
>>
>> and then it’s cpu locked.
>
> It's the dead loop make btrfsck only able to check the first several
> extents, no method to continue.
>
> If we solve the dead loop, then there won't be less error report from
> original btrfsck.
> (lowmem mode just avoid the possibility to dead loop by its design)
>
>>
>>> It's almost a miracle that you can still write data into the fs.
>>> And I heavily doubt the correctness of your existing files.
>> They are definitely correct. I have several root filesystem and I can
>> chroot to all of them (though I’m mounting the partition readonly in
>> order to avoid dangerous writes in that case). In each case I tried
>> python and ruby cgi scripts.
>
> You should check more, normally scrub will help, but considering the
> state of btrfs, scrub may not work at all or make things worse.
>
>>> As extent tree is screwed up, it's completely possible new write are
>>> overwriting existing data.
>> Though I only attempted to write to 3 files. But yes, this was
>> something
>> I suspected : that writing damage things.
>>> The only chance seems to be --init-extent-tree, but that's very
>>> dangerous and I highly suspect the screwed up extent tree is caused
>>> by
>>> interrupted extent tree rebuild.
>> The problem is --init-extent-tree implies --repair which discard
>> --mode=lowmem and cause the dead lock :
>> https://bugzilla.kernel.org/show_bug.cgi?id=178781
>
> Yes, that's the problem, and current situation may be caused by
> interrupted extent tree rebuild.
>
>>> Thanks,
>>> Qu
>>>
>> And finally, I found several corrupt directories yesterday.
>>
>> Do you mean it’s impossible to rescue anything by repairing ? (this is
>> something I doubt since most files are valid)
>
> Not completely, I'm digging into the dead loop problem, and after that
> you may still recover the fs(or part of it) using --init-extent-tree.
>
> Thanks,
> Qu
>
>>
>> Thank you.
Hello, what’s the status of my report since last October ?
thanks,
next prev parent reply other threads:[~2017-01-01 23:40 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-23 19:42 How to recover a filesystem without formatting nor using the btrfs check command none
2016-10-24 1:15 ` Qu Wenruo
[not found] ` <36f56365-27ac-878e-c5fb-f414646eda3a@sdf-eu.org>
2016-10-25 3:04 ` Qu Wenruo
2016-10-25 18:19 ` none
2016-10-26 1:43 ` Qu Wenruo
2016-10-26 11:52 ` none
2016-10-27 1:11 ` Qu Wenruo
2017-01-01 23:29 ` none [this message]
2017-01-03 6:11 ` Qu Wenruo
2017-01-04 22:29 ` none
2016-10-26 19:03 ` none
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=866efefad9d62f7f00c117edc4715651@mx.sdfeu.org \
--to=ytrezq@sdf-eu.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=quwenruo@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox