On Wed, Feb 17, 2021 at 9:36 AM Josef Bacik <jo...@toxicpanda.com> wrote:
>
> On 2/16/21 9:05 PM, Neal Gompa wrote:
> > On Tue, Feb 16, 2021 at 4:24 PM Josef Bacik <jo...@toxicpanda.com> wrote:
> >>
> >> On 2/16/21 3:29 PM, Neal Gompa wrote:
> >>> On Tue, Feb 16, 2021 at 1:11 PM Josef Bacik <jo...@toxicpanda.com> wrote:
> >>>>
> >>>> On 2/16/21 11:27 AM, Neal Gompa wrote:
> >>>>> On Tue, Feb 16, 2021 at 10:19 AM Josef Bacik <jo...@toxicpanda.com> 
> >>>>> wrote:
> >>>>>>
> >>>>>> On 2/14/21 3:25 PM, Neal Gompa wrote:
> >>>>>>> Hey all,
> >>>>>>>
> >>>>>>> So one of my main computers recently had a disk controller failure
> >>>>>>> that caused my machine to freeze. After rebooting, Btrfs refuses to
> >>>>>>> mount. I tried to do a mount and the following errors show up in the
> >>>>>>> journal:
> >>>>>>>
> >>>>>>>> Feb 14 15:20:49 localhost-live kernel: BTRFS info (device sda3): 
> >>>>>>>> disk space caching is enabled
> >>>>>>>> Feb 14 15:20:49 localhost-live kernel: BTRFS info (device sda3): has 
> >>>>>>>> skinny extents
> >>>>>>>> Feb 14 15:20:49 localhost-live kernel: BTRFS critical (device sda3): 
> >>>>>>>> corrupt leaf: root=401 block=796082176 slot=15 ino=203657, invalid 
> >>>>>>>> inode transid: has 888896 expect [0, 888895]
> >>>>>>>> Feb 14 15:20:49 localhost-live kernel: BTRFS error (device sda3): 
> >>>>>>>> block=796082176 read time tree block corruption detected
> >>>>>>>> Feb 14 15:20:49 localhost-live kernel: BTRFS critical (device sda3): 
> >>>>>>>> corrupt leaf: root=401 block=796082176 slot=15 ino=203657, invalid 
> >>>>>>>> inode transid: has 888896 expect [0, 888895]
> >>>>>>>> Feb 14 15:20:49 localhost-live kernel: BTRFS error (device sda3): 
> >>>>>>>> block=796082176 read time tree block corruption detected
> >>>>>>>> Feb 14 15:20:49 localhost-live kernel: BTRFS warning (device sda3): 
> >>>>>>>> couldn't read tree root
> >>>>>>>> Feb 14 15:20:49 localhost-live kernel: BTRFS error (device sda3): 
> >>>>>>>> open_ctree failed
> >>>>>>>
> >>>>>>> I've tried to do -o recovery,ro mount and get the same issue. I can't
> >>>>>>> seem to find any reasonably good information on how to do recovery in
> >>>>>>> this scenario, even to just recover enough to copy data off.
> >>>>>>>
> >>>>>>> I'm on Fedora 33, the system was on Linux kernel version 5.9.16 and
> >>>>>>> the Fedora 33 live ISO I'm using has Linux kernel version 5.10.14. I'm
> >>>>>>> using btrfs-progs v5.10.
> >>>>>>>
> >>>>>>> Can anyone help?
> >>>>>>
> >>>>>> Can you try
> >>>>>>
> >>>>>> btrfs check --clear-space-cache v1 /dev/whatever
> >>>>>>
> >>>>>> That should fix the inode generation thing so it's sane, and then the 
> >>>>>> tree
> >>>>>> checker will allow the fs to be read, hopefully.  If not we can work 
> >>>>>> out some
> >>>>>> other magic.  Thanks,
> >>>>>>
> >>>>>> Josef
> >>>>>
> >>>>> I got the same error as I did with btrfs-check --readonly...
> >>>>>
> >>>>
> >>>> Oh lovely, what does btrfs check --readonly --backup do?
> >>>>
> >>>
> >>> No dice...
> >>>
> >>> # btrfs check --readonly --backup /dev/sda3
> >>>> Opening filesystem to check...
> >>>> parent transid verify failed on 791281664 wanted 888893 found 888895
> >>>> parent transid verify failed on 791281664 wanted 888893 found 888895
> >>>> parent transid verify failed on 791281664 wanted 888893 found 888895
> >>
> >> Hey look the block we're looking for, I wrote you some magic, just pull
> >>
> >> https://github.com/josefbacik/btrfs-progs/tree/for-neal
> >>
> >> build, and then run
> >>
> >> btrfs-neal-magic /dev/sda3 791281664 888895
> >>
> >> This will force us to point at the old root with (hopefully) the right 
> >> bytenr
> >> and gen, and then hopefully you'll be able to recover from there.  This is 
> >> kind
> >> of saucy, so yolo, but I can undo it if it makes things worse.  Thanks,
> >>
> >
> > # btrfs check --readonly /dev/sda3
> >> Opening filesystem to check...
> >> ERROR: could not setup extent tree
> >> ERROR: cannot open file system
> > # btrfs check --clear-space-cache v1 /dev/sda3
> >> Opening filesystem to check...
> >> ERROR: could not setup extent tree
> >> ERROR: cannot open file system
> >
> > It's better, but still no dice... :(
> >
> >
>
> Hmm it's not telling us what's wrong with the extent tree, which is annoying.
> Does mount -o rescue=all,ro work now that the root tree is normal?  Thanks,
>

Nope, I see this in the journal:

> Feb 17 09:49:40 localhost-live kernel: BTRFS info (device sda3): enabling all 
> of the rescue options
> Feb 17 09:49:40 localhost-live kernel: BTRFS info (device sda3): ignoring 
> data csums
> Feb 17 09:49:40 localhost-live kernel: BTRFS info (device sda3): ignoring bad 
> roots
> Feb 17 09:49:40 localhost-live kernel: BTRFS info (device sda3): disabling 
> log replay at mount time
> Feb 17 09:49:40 localhost-live kernel: BTRFS info (device sda3): disk space 
> caching is enabled
> Feb 17 09:49:40 localhost-live kernel: BTRFS info (device sda3): has skinny 
> extents
> Feb 17 09:49:40 localhost-live kernel: BTRFS error (device sda3): tree level 
> mismatch detected, bytenr=791281664 level expected=1 has=2
> Feb 17 09:49:40 localhost-live kernel: BTRFS error (device sda3): tree level 
> mismatch detected, bytenr=791281664 level expected=1 has=2
> Feb 17 09:49:40 localhost-live kernel: BTRFS warning (device sda3): couldn't 
> read tree root
> Feb 17 09:49:40 localhost-live kernel: BTRFS error (device sda3): open_ctree 
> failed





-- 
真実はいつも一つ!/ Always, there's only one truth!

Reply via email to