From: Chris Murphy <lists@colorremedies.com> To: Gard Vaaler <gardv@megacandy.net> Cc: Chris Murphy <lists@colorremedies.com>, Btrfs BTRFS <linux-btrfs@vger.kernel.org> Subject: Re: Unrecoverable corruption after loss of cache Date: Wed, 4 Dec 2019 18:26:59 -0700 Message-ID: <CAJCQCtRmmwaQUWTtHCfCv3kfUj__KKArx3DharsdTqFvz=+4zw@mail.gmail.com> (raw) In-Reply-To: <0CE6AC6A-3D42-44E3-AA9F-AF05AF68897C@megacandy.net> On Wed, Dec 4, 2019 at 5:34 PM Gard Vaaler <gardv@megacandy.net> wrote: > > > 4. des. 2019 kl. 22:09 skrev Chris Murphy <lists@colorremedies.com>: > > There's a decent chance this is the cause of the problem. That kernel > > does not have the fix for this bug: > > https://www.spinics.net/lists/stable-commits/msg129532.html > > https://bugzilla.redhat.com/show_bug.cgi?id=1751901 > > > > As far as I'm aware the corruption isn't fixable. You might still be > > able to mount the file system ro to get data out; if not then decent > > chance you can extract data with btrfs restore, which is an offline > > scraping tool, but it is a bit tedious to use. > > https://btrfs.wiki.kernel.org/index.php/Restore > > That was my first thought too, but it seems too coincidental that I should happen across this bug at the same instant as my cache device failing. btrfs-restore doesn't like my filesystem either: You know, I totally glossed over the cache device failing part of the very first message 8-\ But yeah it would seem like the cache device dropped a bunch of metadata. Really a lot more than I'd expect from the aforementioned kernel bug. So chances are your suspicion is spot on. > > [liveuser@localhost-live btrfs-progs-5.4]$ sudo ./btrfs restore -Divvv /dev/bcache0 /mnt > > This is a dry-run, no files are going to be restored > > parent transid verify failed on 3719816445952 wanted 317513 found 313040 > > parent transid verify failed on 3719816445952 wanted 317513 found 308297 > > parent transid verify failed on 3719816445952 wanted 317513 found 313040 > > Ignoring transid failure > > leaf parent key incorrect 3719816445952 > > Error searching -1 You might have to to try a lot of the btrfs-find-root block addresses (start with highest transid working down) with btrfs restore -t option to force it to use older roots. Maybe one of them will be intact. It's also possible to isolate to a subvolume, if you have home on a subvolume for example. Unfortunately btrfs restore isn't a simple scraper, it doesn't iterate. You have to do that part. It is tedious. -- Chris Murphy
prev parent reply index Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-12-01 17:27 Gard Vaaler 2019-12-01 18:51 ` Nikolay Borisov 2019-12-02 21:27 ` Gard Vaaler 2019-12-05 2:45 ` Zygo Blaxell 2019-12-04 15:50 ` Gard Vaaler 2019-12-04 19:08 ` Chris Murphy 2019-12-04 20:21 ` Gard Vaaler [not found] ` <B154F1B0-C80A-4E7E-B105-B0E654279E28@megacandy.net> 2019-12-04 21:09 ` Chris Murphy 2019-12-05 0:34 ` Gard Vaaler 2019-12-05 1:26 ` Chris Murphy [this message]
Reply instructions: You may reply publically 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='CAJCQCtRmmwaQUWTtHCfCv3kfUj__KKArx3DharsdTqFvz=+4zw@mail.gmail.com' \ --to=lists@colorremedies.com \ --cc=gardv@megacandy.net \ --cc=linux-btrfs@vger.kernel.org \ /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
Linux-BTRFS Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-btrfs/0 linux-btrfs/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-btrfs linux-btrfs/ https://lore.kernel.org/linux-btrfs \ linux-btrfs@vger.kernel.org public-inbox-index linux-btrfs Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-btrfs AGPL code for this site: git clone https://public-inbox.org/public-inbox.git