From: Zygo Blaxell <ce3g8jdj@umail.furryterror.org>
To: Qu Wenruo <quwenruo.btrfs@gmx.com>
Cc: Konstantin Svist <fry.kun@gmail.com>,
Btrfs BTRFS <linux-btrfs@vger.kernel.org>
Subject: Re: Trying to recover data from SSD
Date: Tue, 10 Aug 2021 20:30:52 -0400 [thread overview]
Message-ID: <20210811003052.GA29026@hungrycats.org> (raw)
In-Reply-To: <04ce5d53-3028-16a3-cc1d-ee4e048acdba@gmx.com>
On Tue, Aug 10, 2021 at 02:56:22PM +0800, Qu Wenruo wrote:
>
>
> On 2021/8/10 下午2:44, Konstantin Svist wrote:
> > It's a Micron MTFDDAK512MBF, firmware M603
>
> CC Zygo to see if he also hits such hardware.
I only have one data point for Micron M600 series, and this is it.
> > I don't know how to do that (corrupt the extent tree)
>
> There is the more detailed version:
> https://lore.kernel.org/linux-btrfs/744795fa-e45a-110a-103e-13caf597299a@gmx.com/
>
> Or if you can re-compile btrfs kernel module, this patch would allow
> your to mount with rescue=all, without destroying the existing extent
> tree root:
> https://patchwork.kernel.org/project/linux-btrfs/patch/20210719054304.181509-1-wqu@suse.com/
>
>
> > Is there any other way to pull files off of the drive?
>
> Either btrfs-restore or above rescue=all mount option.
>
> Since btrfs-restore doesn't give you the recent files, I guess the
> rescue=all method is the only alternative.
>
> Thanks,
> Qu
>
> >
> >
> > On Mon, Aug 9, 2021, 22:24 Qu Wenruo <quwenruo.btrfs@gmx.com
> > <mailto:quwenruo.btrfs@gmx.com>> wrote:
> >
> >
> >
> > On 2021/8/10 下午12:41, Konstantin Svist wrote:
> > > Not sure exactly when it stopped working, possibly had a power
> > outage..
> > > I was able to pull most of a snapshot with btrfs restore -s --
> > but it's
> > > months old and I want the more recent files from.
> > >
> > >
> > > Testing the SSD for bad sectors, but nothing so far
> > >
> > >
> > > While trying to mount:
> > > [442587.465598] BTRFS info (device sdb3): allowing degraded mounts
> > > [442587.465602] BTRFS info (device sdb3): disk space caching is
> > enabled
> > > [442587.465603] BTRFS info (device sdb3): has skinny extents
> > > [442587.522301] BTRFS error (device sdb3): bad tree block start, want
> > > 952483840 have 0
> > > [442587.522867] BTRFS error (device sdb3): bad tree block start, want
> > > 952483840 have 0
> >
> > Some metadata is completely lost.
> >
> > Mind to share the hardware model? Maybe it's some known bad hardware.
> >
> > Just a small note, all filesystems (including btrfs) should survive a
> > power loss, as long as the disk is following the FLUSH/FUA requirement
> > properly.
> >
> > > [442587.522876] BTRFS error (device sdb3): failed to read block
> > groups: -5
> > > [442587.523520] BTRFS error (device sdb3): open_ctree failed
> > > [442782.661849] BTRFS error (device sdb3): unrecognized mount option
> > > 'rootflags=recovery'
> > > [442782.661926] BTRFS error (device sdb3): open_ctree failed
> >
> > Since the fs is already corrupted, you can try to corrupt extent tree
> > root completely, then "rescue=all" mount option should allow you to
> > mount the fs RO, and grab as much data as you can.
> >
> > But I doubt if it's any better than btrfs-restore.
> >
> > Thanks,
> > Qu
> > >
> > > # btrfs-find-root /dev/sdb3
> > > ERROR: failed to read block groups: Input/output error
> > > Superblock thinks the generation is 166932
> > > Superblock thinks the level is 1
> > > Found tree root at 787070976 gen 166932 level 1
> > > Well block 786399232(gen: 166931 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 781172736(gen: 166930 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 778108928(gen: 166929 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 100696064(gen: 166928 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 99565568(gen: 166927 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 97599488(gen: 166926 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 91701248(gen: 166925 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 89620480(gen: 166924 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 86818816(gen: 166923 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 84197376(gen: 166922 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 76398592(gen: 166921 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 72400896(gen: 166920 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 63275008(gen: 166919 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 60080128(gen: 166918 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 58032128(gen: 166917 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 55689216(gen: 166916 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 52264960(gen: 166915 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 49758208(gen: 166914 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 48300032(gen: 166913 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 45350912(gen: 166912 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 40337408(gen: 166911 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 71172096(gen: 166846 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 61210624(gen: 166843 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 55492608(gen: 166840 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 36044800(gen: 166829 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 34095104(gen: 166828 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 33046528(gen: 166827 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 31014912(gen: 166826 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 30556160(gen: 166825 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 777011200(gen: 166822 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 766672896(gen: 166821 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 690274304(gen: 166820 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 175046656(gen: 166819 level: 1) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 766017536(gen: 166813 level: 0) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 765739008(gen: 166813 level: 0) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > Well block 32604160(gen: 152478 level: 0) seems good, but
> > > generation/level doesn't match, want gen: 166932 level: 1
> > > # btrfs check /dev/sdb3
> > > Opening filesystem to check...
> > > checksum verify failed on 952483840 wanted 0x00000000 found
> > 0xb6bde3e4
> > > checksum verify failed on 952483840 wanted 0x00000000 found
> > 0xb6bde3e4
> > > checksum verify failed on 952483840 wanted 0x00000000 found
> > 0xb6bde3e4
> > > bad tree block 952483840, bytenr mismatch, want=952483840, have=0
> > > ERROR: failed to read block groups: Input/output error
> > > ERROR: cannot open file system
> > >
> > >
> > > # uname -a
> > > Linux fry 5.13.6-200.fc34.x86_64 #1 SMP Wed Jul 28 15:31:21 UTC 2021
> > > x86_64 x86_64 x86_64 GNU/Linux
> > > # btrfs --version
> > > btrfs-progs v5.13.1
> > > # btrfs fi show /dev/sdb3
> > > Label: none uuid: 44a768e0-28ba-4c6a-8eef-18ffa8c27d1b
> > > Total devices 1 FS bytes used 171.92GiB
> > > devid 1 size 472.10GiB used 214.02GiB path /dev/sdb3
> > >
> > >
> >
prev parent reply other threads:[~2021-08-11 0:30 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-10 4:41 Trying to recover data from SSD Konstantin Svist
2021-08-10 5:24 ` Qu Wenruo
[not found] ` <CADQtc0=GDa-v_byewDmUHqr-TrX_S734ezwhLYL9OSkX-jcNOw@mail.gmail.com>
2021-08-10 6:56 ` Qu Wenruo
2021-08-10 16:12 ` Konstantin Svist
2021-08-10 22:24 ` Qu Wenruo
2021-08-10 23:21 ` Konstantin Svist
2021-08-10 23:54 ` Qu Wenruo
2021-08-11 5:22 ` Konstantin Svist
2021-08-11 5:24 ` Qu Wenruo
2021-08-11 5:34 ` Konstantin Svist
2021-08-11 5:49 ` Qu Wenruo
2021-08-11 19:33 ` Konstantin Svist
2021-08-11 21:51 ` Qu Wenruo
2021-08-11 22:34 ` Konstantin Svist
2021-08-12 1:18 ` Qu Wenruo
2021-08-21 2:56 ` Konstantin Svist
2021-08-28 5:57 ` Konstantin Svist
2021-08-28 6:16 ` Qu Wenruo
2021-08-28 23:16 ` Konstantin Svist
2021-08-28 23:30 ` Qu Wenruo
2021-08-29 6:34 ` Konstantin Svist
2021-08-29 7:19 ` Qu Wenruo
2021-08-29 20:02 ` Konstantin Svist
2021-08-30 0:22 ` Qu Wenruo
2021-08-30 3:48 ` Konstantin Svist
2021-08-30 7:20 ` Qu Wenruo
[not found] ` <aa33b83f-b822-b1d8-9fe4-5cf4ab45c3e1@gmail.com>
2021-08-31 11:05 ` Qu Wenruo
2021-09-01 1:38 ` Konstantin Svist
2021-09-01 1:47 ` Qu Wenruo
2021-08-11 0:30 ` Zygo Blaxell [this message]
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=20210811003052.GA29026@hungrycats.org \
--to=ce3g8jdj@umail.furryterror.org \
--cc=fry.kun@gmail.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=quwenruo.btrfs@gmx.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