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... :(


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

Reply via email to