System only boots in UEFI (aka Bios), grub shows no other options

So, just made my morningly update, with new kernel, yay. Unfortunately the reboot brings me to a violet screen with only one option available (instead of 4): boot to UEFI. Gone are boot into eos, boot into eos backup and boot into btrfs snapshot (from btrfs-grubd). Well… and now? Data is all there, I even managed to update the live environment of cassini (which gets more and more outdated, nothing an update keyring and pacman -Syu cannot solve, but nevertheless…) to get my keepass running and open so I can login here. Reinstall grub? Do something else? I am quite lost currently…

So, I have at least a tiny clue what has happened:
I have two systems currently installed, one are the leftovers of my Manjaro system in which I boot via BIOS selection, the other one is EOS.
Partition scheme:

lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0         7:0    0   1.7G  1 loop /run/archiso/airootfs
sda           8:0    0 476.9G  0 disk 
└─sda1        8:1    0 476.9G  0 part 
sdb           8:16   0  14.6T  0 disk 
├─sdb1        8:17   0   3.8T  0 part 
├─sdb2        8:18   0   9.3T  0 part 
└─sdb3        8:19   0   1.5T  0 part 
sdc           8:32   1  56.3G  0 disk 
├─sdc1        8:33   1  56.3G  0 part 
│ └─ventoy  254:0    0   1.9G  1 dm   /run/archiso/bootmnt
└─sdc2        8:34   1    32M  0 part 
nvme0n1     259:0    0   1.8T  0 disk 
├─nvme0n1p1 259:1    0  1000M  0 part 
└─nvme0n1p2 259:2    0   1.8T  0 part 
nvme1n1     259:3    0   1.8T  0 disk 
├─nvme1n1p1 259:4    0   500M  0 part 
├─nvme1n1p2 259:5    0 320.1G  0 part /run/media/liveuser/home
├─nvme1n1p3 259:6    0 100.1G  0 part /run/media/liveuser/system
└─nvme1n1p4 259:7    0   1.4T  0 part 

And when I do look no into my crub-cfg it looks… wrong. Because there is Manjaro stuff in it which was never meant to be, never run os-prober or something similar:

#
# 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 [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   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}"
    save_env saved_entry
  fi
}

function load_video {
  if [ 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 ext2
search --no-floppy --fs-uuid --set=root 34de0a60-9721-4d0c-80f4-dc9ecf795fb9
    font="/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 ext2
search --no-floppy --fs-uuid --set=root 34de0a60-9721-4d0c-80f4-dc9ecf795fb9
insmod gfxmenu
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_14.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_24.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_48.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_bold_16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_mono_12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-14.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-18.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b14.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b18.pf2
insmod png
set theme=($root)/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-34de0a60-9721-4d0c-80f4-dc9ecf795fb9' {
        savedefault
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod ext2
        search --no-floppy --fs-uuid --set=root 34de0a60-9721-4d0c-80f4-dc9ecf795fb9
        linux   /boot/vmlinuz-6.4-x86_64 root=UUID=34de0a60-9721-4d0c-80f4-dc9ecf795fb9 rw  quiet udev.log_priority=3
        initrd  /boot/amd-ucode.img /boot/initramfs-6.4-x86_64.img
}
submenu 'Advanced options for Manjaro Linux' $menuentry_id_option 'gnulinux-advanced-34de0a60-9721-4d0c-80f4-dc9ecf795fb9' {
        menuentry 'Manjaro Linux (Kernel: 6.4.6-1-MANJARO x64)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.4.6-1-MANJARO x64-advanced-34de0a60-9721-4d0c-80f4-dc9ecf795fb9' {
        savedefault
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod ext2
                search --no-floppy --fs-uuid --set=root 34de0a60-9721-4d0c-80f4-dc9ecf795fb9
                linux   /boot/vmlinuz-6.4-x86_64 root=UUID=34de0a60-9721-4d0c-80f4-dc9ecf795fb9 rw  quiet udev.log_priority=3
                initrd  /boot/amd-ucode.img /boot/initramfs-6.4-x86_64.img
        }
        menuentry 'Manjaro Linux (Kernel: 6.4.6-1-MANJARO x64 - fallback initramfs)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.4.6-1-MANJARO x64-fallback-34de0a60-9721-4d0c-80f4-dc9ecf795fb9' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod ext2
                search --no-floppy --fs-uuid --set=root 34de0a60-9721-4d0c-80f4-dc9ecf795fb9
                linux   /boot/vmlinuz-6.4-x86_64 root=UUID=34de0a60-9721-4d0c-80f4-dc9ecf795fb9 rw  quiet udev.log_priority=3
                initrd  /boot/initramfs-6.4-x86_64-fallback.img
        }
        menuentry 'Manjaro Linux (Kernel: 6.2.16-2-MANJARO x64)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.2.16-2-MANJARO x64-advanced-34de0a60-9721-4d0c-80f4-dc9ecf795fb9' {
        savedefault
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod ext2
                search --no-floppy --fs-uuid --set=root 34de0a60-9721-4d0c-80f4-dc9ecf795fb9
                linux   /boot/vmlinuz-6.2-x86_64 root=UUID=34de0a60-9721-4d0c-80f4-dc9ecf795fb9 rw  quiet udev.log_priority=3
                initrd  /boot/amd-ucode.img /boot/initramfs-6.2-x86_64.img
        }
        menuentry 'Manjaro Linux (Kernel: 6.2.16-2-MANJARO x64 - fallback initramfs)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.2.16-2-MANJARO x64-fallback-34de0a60-9721-4d0c-80f4-dc9ecf795fb9' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod ext2
                search --no-floppy --fs-uuid --set=root 34de0a60-9721-4d0c-80f4-dc9ecf795fb9
                linux   /boot/vmlinuz-6.2-x86_64 root=UUID=34de0a60-9721-4d0c-80f4-dc9ecf795fb9 rw  quiet udev.log_priority=3
                initrd  /boot/initramfs-6.2-x86_64-fallback.img
        }
        menuentry 'Manjaro Linux (Kernel: 6.1.41-1-MANJARO x64)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.41-1-MANJARO x64-advanced-34de0a60-9721-4d0c-80f4-dc9ecf795fb9' {
        savedefault
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod ext2
                search --no-floppy --fs-uuid --set=root 34de0a60-9721-4d0c-80f4-dc9ecf795fb9
                linux   /boot/vmlinuz-6.1-x86_64 root=UUID=34de0a60-9721-4d0c-80f4-dc9ecf795fb9 rw  quiet udev.log_priority=3
                initrd  /boot/amd-ucode.img /boot/initramfs-6.1-x86_64.img
        }
        menuentry 'Manjaro Linux (Kernel: 6.1.41-1-MANJARO x64 - fallback initramfs)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.41-1-MANJARO x64-fallback-34de0a60-9721-4d0c-80f4-dc9ecf795fb9' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod ext2
                search --no-floppy --fs-uuid --set=root 34de0a60-9721-4d0c-80f4-dc9ecf795fb9
                linux   /boot/vmlinuz-6.1-x86_64 root=UUID=34de0a60-9721-4d0c-80f4-dc9ecf795fb9 rw  quiet udev.log_priority=3
                initrd  /boot/initramfs-6.1-x86_64-fallback.img
        }
}

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

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

Well… what happened here? How do I get to my old Grub? And how to avoid future occurrences?

Hello, it seems your grub.cfg got messed up by the update. You can try to repair the GRUB by arch-chroot to your currently installed EOS system.

Will try to do so. Btw have I posted the wrong grub.cfg above, this was the old one from Manjaro, the dorrect one is this one:

#
# 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 [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
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}"
    save_env saved_entry
  fi
}

function load_video {
  if [ 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
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root ab5aa1ba-94e9-4c10-8d38-d7f63c007d9a
    font="/@/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 btrfs
search --no-floppy --fs-uuid --set=root ab5aa1ba-94e9-4c10-8d38-d7f63c007d9a
insmod png
background_image -m stretch /@/usr/share/endeavouros/splash.png
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

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

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

### 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
        fwsetup --is-supported
        if [ "$?" = 0 ]; then
                menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
                        fwsetup
                }
        fi
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 'EndeavourOS snapshots' {
    configfile "${prefix}/grub-btrfs.cfg"
}
fi
### END /etc/grub.d/41_snapshots-btrfs ###

But does not matter much, heh? Both a wrong.

While I was trying the archroot thingy some questions arose, due to me being on BtrFS instead of ext4.
To mount what I need for archroot I will do the following:

sudo mount /dev/nvme0n1p2 /mnt
sudo mount /dev/nvme0n1p1 /mnt/boot/efi

Or do I have to mount the rest of the BtrFS filesystems also?
Another question: Can I somehow restore grub.cfg from my auto-generated snapshots (via snapper and pacman hook)?

My fstab looks like this:

UUID=68E1-1935                            /boot/efi      vfat    defaults,noatime 0 2
UUID=ab5aa1ba-94e9-4c10-8d38-d7f63c007d9a /              btrfs   subvol=/@,defaults,noatime,compress=zstd 0 0
UUID=ab5aa1ba-94e9-4c10-8d38-d7f63c007d9a /home          btrfs   subvol=/@home,defaults,noatime,compress=zstd 0 0
UUID=ab5aa1ba-94e9-4c10-8d38-d7f63c007d9a /var/cache     btrfs   subvol=/@cache,defaults,noatime,compress=zstd 0 0
UUID=ab5aa1ba-94e9-4c10-8d38-d7f63c007d9a /var/log       btrfs   subvol=/@log,defaults,noatime,compress=zstd 0 0
#UUID=ab5aa1ba-94e9-4c10-8d38-d7f63c007d9a /swap          btrfs   subvol=/@swap,defaults,noatime 0 0
#/swap/swapfile                            swap           swap    defaults   0 0
tmpfs                                     /tmp           tmpfs   defaults,noatime,mode=1777 0 0

And sorry to ask everything twice and doublecheck, don’t want to brick my system any further than it is allready is…

For this, the best would be @dalto .

You are more than right:

Will do so!

Unfortunately it ain’t working:

[liveuser@eos-2023.05.28 system]$ sudo mount /dev/nvme0n1p2 /mnt -o subvol=@
[liveuser@eos-2023.05.28 system]$ sudo mount /dev/nvme0n1p1 /mnt/boot/efi
mount: /mnt/boot/efi: unknown filesystem type 'vfat'.
       dmesg(1) may have more information after failed mount system call.
[liveuser@eos-2023.05.28 system]$ 

That is interesting.

What does sudo modprobe vfat return?

Don’t know and cannot test - I opted for the brute force solution - reinstall whole system. I need it up and running. Got rid of the old Manjaro installation on the way, and will ask further questions regarding BtrFS in “the” BtrFS topic. Thanks to both of you, this thingy here can drop down…