Kernel crashing upon bootstrap after last update

:woman_raising_hand: Hello,

I’ve had Manjaro running flawlessly for the past 6 years.
Today while running the updates, my system crash, first I’ve ever seen a blue screen of the death on linux, didn’t even know it could be a thing.

1.954101] usbcore: registered new interface driver usbhid
1.954111] usbhid: USB HID core driver
1.955031] drop_monitor: Initializing network drop monitor service
1.956401] Registered PF_INET6 protocol family
1.959581] Segment Routing with IPv6
1.959591] RPL Segment Routing with IPv6
1.959661] In-situ OAM (IOAM) with IPv6
1.959881] NET: Registered PF_PACKET protocol family
1.960401] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
1.969671] microcode: Current revision: 0x00000125
1.969691] microcode: Updated early from: 0x00000121
1.970931] IPI shorthand broadcast: enabled
1.992611] sched_clock: Marking stable (1092002319, 6396040)->(1128888566, -30490207)
1.994401] registered taskstats version 1
1.997791] loading compiled-in X.509 certificates
1.031421] Loaded X.509 cert 'Build time autogenerated kernel key: 9837b74f06a727b821f967c72f9b6bd3718fd061'
1.056961] zswap: loaded using pool zstd
1.057601] Demotion targets for Node 0: null
1.060041] Key type .fscrypt registered
1.060051] Key type fscrypt-provisioning registered
1.062531] Btrfs loaded, zoned=yes, fsverity=yes
1.062781] Key type big_key registered
1.062881] AppArmor: AppArmor sha256 policy hashing enabled
1.070051] Integrity: Loading X.509 certificate: UEFI:db
1.071041] Integrity: Loaded X.509 cert 'Lenovo Ltd.: ThinkPad Product CA 2012: 838b1f54c1550463f45f98700640f11069265949'
1.071121] Integrity: Loading X.509 certificate: UEFI:db
1.071141] Integrity: Loaded X.509 cert 'Lenovo UEFI CA 2014: 4b91a68732eaefdd2c8ffffc6b027ec3449e9c8f'
1.071151] Integrity: Loading X.509 certificate: UEFI:db
1.071291] Integrity: Loaded X.509 cert 'Microsoft Windows Production PCA 2011: a92902398e16c49778c490f99e4f9ae17c55af53'
1.071301] Integrity: Loading X.509 certificate: UEFI:db
1.071401] Integrity: Loaded X.509 cert 'Microsoft Corporation: Windows UEFI CA 2023: aef c5fbbbc055d8f84aa585473499417ab5a5272'
1.071411] Integrity: Loading X.509 certificate: UEFI:db
1.071511] Integrity: Loaded X.509 cert 'Microsoft Corporation UEFI CA 2011: 13adbf4389bd82709c8cd54f316ed522988a1b44'
1.071521] Integrity: Loading X.509 certificate: UEFI:db
1.071621] Integrity: Loaded X.509 cert 'Microsoft UEFI CA 2023: 81aa6b3244c935bce046628af39827421e32497d'
1.092951] BERT: Hardware Error(s): Skipped 1 error records
1.092981] BERT: Total records found: 1
1.093501] PM: Magic number: 2:129:230
1.094991] acpi device:4a: hash matches
1.095611] RAS: Correctable Errors collector initialized.
1.115241] clk: Disabling unused clocks
1.115471] gempc: Disabling unused power domains
1.115471] check access for rdinit=/init failed: -2, ignoring
1.115621] ext3: Unknown parameter 'subvol'
1.115651] ext2: Unknown parameter 'subvol'
1.115671] ext4: Unknown parameter 'subvol'
1.115531] fusebik: Unknown parameter 'subvol'
1.115331] VFS: Cannot open root device "/dev/mapper/luks-e3eb537b-72bc-47fb-849f-a6396be77f16" or unknown-block(0,0): error -6
1.115341] Please append a correct "root=" boot option; here are the available partitions:
1.115351] List of all bdev filesystems:
1.115351]   ext3
1.115361]   ext2
1.115361]   ext4
1.115371]   fuseblk
1.115371]   btrfs
1.115381]
1.115391] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
1.115421] fbcon: Taking over console
1.115471] CPU: 2 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.12-1-MANJARO #1 PREEMPT(full) c10343ac5e42144b326729558e13d11a6e9f4440
1.115511] Hardware name: LENOVO 21NTS2QE00/21NTS2QE00, BIOS N4BET67W (1.37 ) 07/14/2025
1.115531] Call Trace:
1.115561]   <TASK>
1.115621]   dump_stack_lvl+0x54/0x80
1.115661]   vpanic+0xdb/0x2d0
1.115661]   panic+0x6b/0x6b
1.115681]   mount_root_generic+0x1cf/0x270
1.115761]   prepare_namespace+0x1dc/0x230
1.115761]   kernel_init_freeable+0x282/0x2b0
1.115801]   ? __pfx_kernel_init+0x10/0x10
1.115831]   kernel_init+0x1a/0x140
1.115881]   ret_from_fork+0x1c2/0x1f0
1.115891]   ? __pfx_kernel_init+0x10/0x10
1.115961]   ret_from_fork_asm+0x1a/0x30
1.115961]   </TASK>
1.115623] Kernel Offset: 0x1ac90000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xfffffffffbffffff)

Some bits about my system:

  • Hardware: ThinkPad X1 Gen 13.
  • Kernel: Linux 6.18.8-1-MANJARO.

Its’ really problematic, I have now to pick every single time I boot the right snapshots (thank got there were done automatically)
I checked Timeshift:

sudo timeshift --list                                                                                                                         1 ✘
Mounted '/dev/dm-0 (nvme0n1p2)' (subvolid=0) at '/run/timeshift/10421/backup'
btrfs: Quotas are not enabled
Device : /dev/dm-0 (nvme0n1p2)
UUID   : 280df8ed-0cc5-455e-81e1-32375f1a8456
Path   : /run/timeshift/10421/backup
Mode   : BTRFS
Status : OK
5 snapshots, 410.5 GB free

Num     Name                 Tags  Description
------------------------------------------------------------------------------
0    >  2026-02-20_23-02-16  O     {timeshift-autosnap} {created before upgrade}
1    >  2026-03-04_14-03-37  O     {timeshift-autosnap} {created before upgrade}
2    >  2026-03-08_11-44-51  O     {timeshift-autosnap} {created before upgrade}
3    >  2026-03-08_14-29-55  O     New
4    >  2026-03-08_14-45-10  O     Before restoring '2026-03-08 14:29:55'

And my grub.cfg:

sudo cat /boot/grub/grub.cfg                                                                                                                  1 ✘
[sudo] password for xxx:
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi

if [ "${env_block}" ] ; then
  set env_block="(${root})${env_block}"
  export env_block
  load_env -f "${env_block}"
fi

if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   if [ "${env_block}" ] ; then
     save_env -f "${env_block}" next_entry
   else
     save_env next_entry
   fi
   set boot_once=true
else
   set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    if [ "${env_block}" ] ; then
      save_env -f "${env_block}" saved_entry
    else
      save_env saved_entry
    fi

  fi
}

function load_video {
  if [ x$grub_platform = xefi ]; then
    insmod efi_gop
    insmod efi_uga
  elif [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

set menu_color_normal=light-gray/black
set menu_color_highlight=green/black

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod cryptodisk
insmod luks
insmod gcry_rijndael
insmod gcry_rijndael
insmod gcry_sha256
insmod btrfs
cryptomount -u e3eb537b-72bc-47fb-8d9f-a6396be77f16
set root='cryptouuid/e3eb537b72bc47fb8d9fa6396be77f16'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint='cryptouuid/e3eb537b72bc47fb8d9fa6396be77f16'  280df8ed-0cc5-455e-81e1-32375f1a8456
else
  search --no-floppy --fs-uuid --set=root 280df8ed-0cc5-455e-81e1-32375f1a8456
fi
    font="/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_US
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
insmod part_gpt
insmod cryptodisk
insmod luks
insmod gcry_rijndael
insmod gcry_rijndael
insmod gcry_sha256
insmod btrfs
cryptomount -u e3eb537b-72bc-47fb-8d9f-a6396be77f16
set root='cryptouuid/e3eb537b72bc47fb8d9fa6396be77f16'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint='cryptouuid/e3eb537b72bc47fb8d9fa6396be77f16'  280df8ed-0cc5-455e-81e1-32375f1a8456
else
  search --no-floppy --fs-uuid --set=root 280df8ed-0cc5-455e-81e1-32375f1a8456
fi
insmod gfxmenu
loadfont ($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/dejavu_sans_12.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/dejavu_sans_14.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/dejavu_sans_16.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/dejavu_sans_24.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/dejavu_sans_48.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/dejavu_sans_bold_16.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/dejavu_sans_mono_12.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/terminus-12.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/terminus-14.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/terminus-16.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/terminus-18.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/terminus-b12.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/terminus-b14.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/terminus-b16.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/terminus-b18.pf2
insmod png
set theme=($root)/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/usr/share/grub/themes/manjaro/theme.txt
export theme
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=hidden
  set timeout=5
# Fallback hidden-timeout code in case the timeout_style feature is
# unavailable.
elif sleep --interruptible 5 ; then
  set timeout=0
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Manjaro Linux' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-280df8ed-0cc5-455e-81e1-32375f1a8456' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod cryptodisk
        insmod luks
        insmod gcry_rijndael
        insmod gcry_rijndael
        insmod gcry_sha256
        insmod btrfs
        cryptomount -u e3eb537b-72bc-47fb-8d9f-a6396be77f16
        set root='cryptouuid/e3eb537b72bc47fb8d9fa6396be77f16'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint='cryptouuid/e3eb537b72bc47fb8d9fa6396be77f16'  280df8ed-0cc5-455e-81e1-32375f1a8456
        else
          search --no-floppy --fs-uuid --set=root 280df8ed-0cc5-455e-81e1-32375f1a8456
        fi
        linux   /timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/boot/vmlinuz-6.19-x86_64 root=UUID=280df8ed-0cc5-455e-81e1-32375f1a8456 rw rootflags=subvol=timeshift-btrfs/snapshots/2026-03-04_14-03-37/@  quiet cryptdevice=UUID=e3eb537b-72bc-47fb-8d9f-a6396be77f16:luks-e3eb537b-72bc-47fb-8d9f-a6396be77f16 root=/dev/mapper/luks-e3eb537b-72bc-47fb-8d9f-a6396be77f16 splash apparmor=1 security=apparmor resume=/dev/mapper/luks-782ef7a4-eaf4-4355-af38-3065acab082a udev.log_priority=3
        initrd  /timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/boot/intel-ucode.img /timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/boot/amd-ucode.img /timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/boot/initramfs-6.19-x86_64.img
}
submenu 'Advanced options for Manjaro Linux' $menuentry_id_option 'gnulinux-advanced-280df8ed-0cc5-455e-81e1-32375f1a8456' {
        menuentry 'Manjaro Linux (Kernel: 6.19.2-1-MANJARO x64)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.19.2-1-MANJARO x64-advanced-280df8ed-0cc5-455e-81e1-32375f1a8456' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod cryptodisk
                insmod luks
                insmod gcry_rijndael
                insmod gcry_rijndael
                insmod gcry_sha256
                insmod btrfs
                cryptomount -u e3eb537b-72bc-47fb-8d9f-a6396be77f16
                set root='cryptouuid/e3eb537b72bc47fb8d9fa6396be77f16'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint='cryptouuid/e3eb537b72bc47fb8d9fa6396be77f16'  280df8ed-0cc5-455e-81e1-32375f1a8456
                else
                  search --no-floppy --fs-uuid --set=root 280df8ed-0cc5-455e-81e1-32375f1a8456
                fi
                linux   /timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/boot/vmlinuz-6.19-x86_64 root=UUID=280df8ed-0cc5-455e-81e1-32375f1a8456 rw rootflags=subvol=timeshift-btrfs/snapshots/2026-03-04_14-03-37/@  quiet cryptdevice=UUID=e3eb537b-72bc-47fb-8d9f-a6396be77f16:luks-e3eb537b-72bc-47fb-8d9f-a6396be77f16 root=/dev/mapper/luks-e3eb537b-72bc-47fb-8d9f-a6396be77f16 splash apparmor=1 security=apparmor resume=/dev/mapper/luks-782ef7a4-eaf4-4355-af38-3065acab082a udev.log_priority=3
                initrd  /timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/boot/intel-ucode.img /timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/boot/amd-ucode.img /timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/boot/initramfs-6.19-x86_64.img
        }
        menuentry 'Manjaro Linux (Kernel: 6.18.8-1-MANJARO x64)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.18.8-1-MANJARO x64-advanced-280df8ed-0cc5-455e-81e1-32375f1a8456' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod cryptodisk
                insmod luks
                insmod gcry_rijndael
                insmod gcry_rijndael
                insmod gcry_sha256
                insmod btrfs
                cryptomount -u e3eb537b-72bc-47fb-8d9f-a6396be77f16
                set root='cryptouuid/e3eb537b72bc47fb8d9fa6396be77f16'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint='cryptouuid/e3eb537b72bc47fb8d9fa6396be77f16'  280df8ed-0cc5-455e-81e1-32375f1a8456
                else
                  search --no-floppy --fs-uuid --set=root 280df8ed-0cc5-455e-81e1-32375f1a8456
                fi
                linux   /timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/boot/vmlinuz-6.18-x86_64 root=UUID=280df8ed-0cc5-455e-81e1-32375f1a8456 rw rootflags=subvol=timeshift-btrfs/snapshots/2026-03-04_14-03-37/@  quiet cryptdevice=UUID=e3eb537b-72bc-47fb-8d9f-a6396be77f16:luks-e3eb537b-72bc-47fb-8d9f-a6396be77f16 root=/dev/mapper/luks-e3eb537b-72bc-47fb-8d9f-a6396be77f16 splash apparmor=1 security=apparmor resume=/dev/mapper/luks-782ef7a4-eaf4-4355-af38-3065acab082a udev.log_priority=3
                initrd  /timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/boot/intel-ucode.img /timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/boot/amd-ucode.img /timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/boot/initramfs-6.18-x86_64.img
        }
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/15_ostree ###
### END /etc/grub.d/15_ostree ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/25_bli ###
if [ "$grub_platform" = "efi" ]; then
  insmod bli
fi
### END /etc/grub.d/25_bli ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
if [ "$grub_platform" = "efi" ]; then
        menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
                fwsetup
                }
fi
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/35_fwupd ###
### END /etc/grub.d/35_fwupd ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###

### BEGIN /etc/grub.d/41_snapshots-btrfs ###
if [ ! -e "${prefix}/grub-btrfs.cfg" ]; then
echo ""
else
submenu 'Manjaro Linux snapshots' {
    configfile "${prefix}/grub-btrfs.cfg"
}
fi
### END /etc/grub.d/41_snapshots-btrfs ###

### BEGIN /etc/grub.d/60_memtest86+ ###
if [ "${grub_platform}" == "pc" ]; then
    menuentry "Memory Tester (memtest86+)" --class memtest86 --class gnu --class tool {
        search --fs-uuid --no-floppy --set=root --hint='cryptouuid/e3eb537b72bc47fb8d9fa6396be77f16'  280df8ed-0cc5-455e-81e1-32375f1a8456
        linux16 /timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/boot/memtest86+/memtest.bin
    }
fi
### END /etc/grub.d/60_memtest86+ ###

### BEGIN /etc/grub.d/60_memtest86+-efi ###
if [ "${grub_platform}" == "efi" ]; then
    menuentry "Memory Tester (memtest86+)" --class memtest86 --class gnu --class tool {
        if loadfont unicode ; then
            set gfxmode=1024x768,800x600,auto
            set gfxpayload=800x600,1024x768
            terminal_output gfxterm
        fi
        search --fs-uuid --no-floppy --set=root --hint='cryptouuid/e3eb537b72bc47fb8d9fa6396be77f16'  280df8ed-0cc5-455e-81e1-32375f1a8456
        linux /timeshift-btrfs/snapshots/2026-03-04_14-03-37/@/boot/memtest86+/memtest.efi
    }
fi
### END /etc/grub.d/60_memtest86+-efi ###

For some reason the snapshots I’ve created manually aren’t showing up in the Grub - Snapshots menu, I’ve checked grub-btrfs but it seems broken:

sudo systemctl status grub-btrfsd                                                                                                               ✔
[sudo] password for xxx:
× grub-btrfsd.service - Regenerate grub-btrfs.cfg
     Loaded: loaded (/usr/lib/systemd/system/grub-btrfsd.service; enabled; preset: disabled)
     Active: failed (Result: exit-code) since Sun 2026-03-08 15:00:16 CET; 8min ago
   Duration: 20ms
 Invocation: 0f3597cfb41044ccb96d914b86790e71
    Process: 1609 ExecStart=/usr/bin/grub-btrfsd --syslog /.snapshots (code=exited, status=1/FAILURE)
   Main PID: 1609 (code=exited, status=1/FAILURE)
   Mem peak: 2.2M
        CPU: 11ms

Mar 08 15:00:16 xxx-21nts2qe00 grub-btrfsd[1618]: [!] Please specify a valid snapshot directory
Mar 08 15:00:16 xxx-21nts2qe00 systemd[1]: grub-btrfsd.service: Main process exited, code=exited, status=1/FAILURE
Mar 08 15:00:16 xxx-21nts2qe00 systemd[1]: grub-btrfsd.service: Failed with result 'exit-code'.

It seems there has been some issues lately with the updates, not sure what I can do :pensive_face: :thinking: :thought_balloon:

Hey everyone,

Posting this in case anyone runs into the same issue I did today after a system update on my ThinkPad X1 Gen 13.

What happened: After running a system update, my machine stopped booting entirely with a kernel panic:

VFS: Cannot open root device "/dev/mapper/luks-..." error -6
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

Root cause: The update left GRUB pointing to a Timeshift snapshot subvolume path (/timeshift-btrfs/snapshots/2026-03-04_14-03-37/@) as the default boot entry instead of the live @ subvolume. Because of this, grub-mkconfig kept regenerating a broken config, it was running from inside the snapshot and thought that was the root.

How I fixed it:

  1. Booted into a working older snapshot via the GRUB snapshots menu (the one from 2026-03-04)
  2. Properly restored that snapshot via Timeshift (critical, just booting from a snapshot isn’t enough, you need to restore it so @ gets updated):
sudo timeshift --restore --snapshot '2026-03-04_14-03-37' --skip-grub
  1. Regenerated GRUB after the restore:
sudo grub-mkconfig -o /boot/grub/grub.cfg
  1. Rebooted, system came back up normally.

Bonus fix, grub-btrfsd failing: The grub-btrfsd service was also broken because it was looking for /.snapshots (Snapper’s default) instead of Timeshift’s snapshot directory. Fix it with a systemd override:

sudo systemctl edit grub-btrfsd

Add:

[Service]
ExecStart=
ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto

Then:

sudo systemctl restart grub-btrfsd
sudo grub-mkconfig -o /boot/grub/grub.cfg

Lesson learned: Always snapshot before updating:

sudo timeshift --create --comments "before update" && sudo pacman -Syu

Hope this helps someone. Timeshift saved my system after 6 years of flawless Manjaro use, glad I had it set up!

3 Likes

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.