public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
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
> >      >
> >      >
> > 

      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