Systemd-boot, boot menu doesn't show all entries

SOLUTION

I have no idea how this system was booting! I was mounting the wrong partition on /boot but somehow, the correct boot partition was up to date for 5.4 kernel. Correcting the issue in fstab (mount the right damn disk) and rebuilding the boot disk resolved the issue.

To be fair, there are only 30 partitions to pick from!

END SOLUTION

Having an issue with video driver that is apparently resolved in a newer kernel. I installed 5.7 and rebooted and the new boot entries do not show up in boot menu. It simply shows my 5.4 options at boot. I ran a ‘bootctl list’ and verified that bootctl is correctly configured – listed below.

My boot drive is a usb flash drive, for what it’s worth – simplest way to manage multiple OS’s.

I also changed the timeout in loader.conf to 7 seconds, but it’s still using the old value of 3 seconds. The default is 5.7, but no 5.7 kernel options exist. I verified all the images are present on boot disk.

Any thoughts?

"bootctl list
Boot Loader Entries:
title: Manjaro Linux 5.4 (manjarolinux5.4-fallback.conf)
id: manjarolinux5.4-fallback.conf
source: /boot/loader/entries/manjarolinux5.4-fallback.conf
linux: /vmlinuz-5.4-x86_64
initrd: /amd-ucode.img
/intel-ucode.img
/initramfs-5.4-x86_64-fallback.img
options: zfs=rpool/ROOT/manjaro rw

    title: Manjaro Linux 5.4 (manjarolinux5.4.conf)
       id: manjarolinux5.4.conf
   source: /boot/loader/entries/manjarolinux5.4.conf
    linux: /vmlinuz-5.4-x86_64
   initrd: /amd-ucode.img
           /intel-ucode.img
           /initramfs-5.4-x86_64.img
  options: zfs=rpool/ROOT/manjaro rw

    title: Manjaro Linux 5.7 (manjarolinux5.7-fallback.conf)
       id: manjarolinux5.7-fallback.conf
   source: /boot/loader/entries/manjarolinux5.7-fallback.conf
    linux: /vmlinuz-5.7-x86_64
   initrd: /amd-ucode.img
           /intel-ucode.img
           /initramfs-5.7-x86_64-fallback.img
  options: zfs=rpool/ROOT/manjaro rw

    title: Manjaro Linux 5.7 (manjarolinux5.7.conf) (default)
       id: manjarolinux5.7.conf
   source: /boot/loader/entries/manjarolinux5.7.conf
    linux: /vmlinuz-5.7-x86_64
   initrd: /amd-ucode.img
           /intel-ucode.img
           /initramfs-5.7-x86_64.img
  options: zfs=rpool/ROOT/manjaro rw

    title: Reboot Into Firmware Interface
       id: auto-reboot-to-firmware-setup
   source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f

"

Hi :wave:

Since it reads only the first entry, I would guess you need for every menu entry a separate *.conf file.

Quote:

$BOOT/loader/entries/ is the directory containing the drop-in snippets. This directory contains one .conf file for each boot menu item.

https://systemd.io/BOOT_LOADER_SPECIFICATION/

No, the entries are there… The issue is that only the 5.4 entries are showing up as boot options.

ls -l
total 16
-rwxr-xr-x 1 root root 164 Sep 24 16:41 manjarolinux5.4.conf
-rwxr-xr-x 1 root root 173 Sep 24 16:41 manjarolinux5.4-fallback.conf
-rwxr-xr-x 1 root root 164 Sep 24 16:41 manjarolinux5.7.conf
-rwxr-xr-x 1 root root 173 Sep 24 16:41 manjarolinux5.7-fallback.conf

Do you also mount the ESP of the usb drive as /boot ?
Because sd-boot needs the $ESP/loader directory to be on the same drive as where sd-boot is loaded from.
My guess is that you mount the ESP of one of your hardisks to /boot and update the loader/{loader.conf,entries/*} of that partition instead of the ones on the usb-drive…