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!