You are not logged in.

#1 2020-04-27 16:48:32

paadpi
Member
Registered: 2020-04-14
Posts: 7

[SOLVED] systemd-boot missing on-screen menu

Hi everyone,

I would like to enable selection of entries in on-screen menu for emergency rollbacks to a btrfs snapshot. The issue is essentially no on-screen menu at beginning of boot. Boot process skip directly to decrypt root partition.

$ cat /boot/loader/loader.conf
default paadpi.conf
timeout 20
console-mode keep
editor no
random-seed-mode off
$ bootctl
System:
     Firmware: UEFI 2.70 (American Megatrends 5.12)
  Secure Boot: disabled
   Setup Mode: setup

Current Boot Loader:
      Product: systemd-boot 245.5-2-arch
     Features: ✓ Boot counting
               ✓ Menu timeout control
               ✓ One-shot menu timeout control
               ✓ Default entry control
               ✓ One-shot entry control
               ✓ Support for XBOOTLDR partition
               ✓ Support for passing random seed to OS
               ✓ Boot loader sets ESP partition information
          ESP: /dev/disk/by-partuuid/864eb3ee-b1e5-a04c-9163-dadc94f6d8ac
         File: └─/EFI/systemd/systemd-bootx64.efi

Random Seed:
 Passed to OS: no
 System Token: set
       Exists: yes

Available Boot Loaders on ESP:
          ESP: /boot (/dev/disk/by-partuuid/864eb3ee-b1e5-a04c-9163-dadc94f6d8ac)
         File: └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 245.5-2-arch)
         File: └─/EFI/BOOT/BOOTX64.EFI (systemd-boot 245.5-2-arch)

Boot Loaders Listed in EFI Variables:
        Title: Linux Boot Manager
           ID: 0x0003
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/864eb3ee-b1e5-a04c-9163-dadc94f6d8ac
         File: └─/EFI/systemd/systemd-bootx64.efi

Boot Loader Entries:
        $BOOT: /boot (/dev/disk/by-partuuid/864eb3ee-b1e5-a04c-9163-dadc94f6d8ac)

Default Boot Loader Entry:
        title: paadpi
           id: paadpi.conf
       source: /boot/loader/entries/paadpi.conf
        linux: vmlinuz-linux
       initrd: /intel-ucode.img
               /initramfs-linux.img
      options: cryptdevice=UUID="57c8ce0e-51d3-4452-a9fa-1f9291308c69":nvme rootflags=subvol=root root=UUID="1bfde928-6cf4-47d9-afc5-ea84853e30db"
$ bootctl list
Boot Loader Entries:
        title: paadpi (default)
           id: paadpi.conf
       source: /boot/loader/entries/paadpi.conf
        linux: vmlinuz-linux
       initrd: /intel-ucode.img
               /initramfs-linux.img
      options: cryptdevice=UUID="57c8ce0e-51d3-4452-a9fa-1f9291308c69":nvme rootflags=subvol=root root=UUID="1bfde928-6cf4-47d9-afc5-ea84853e30db"

        title: root-snap
           id: root-snap.conf
       source: /boot/loader/entries/root-snap.conf
        linux: vmlinuz-linux
       initrd: /intel-ucode.img
               /initramfs-linux.img
      options: cryptdevice=UUID="57c8ce0e-51d3-4452-a9fa-1f9291308c69":nvme rootflags=subvol=root-snap root=UUID="1bfde928-6cf4-47d9-afc5-ea84853e30db"

        title: Reboot Into Firmware Interface
           id: auto-reboot-to-firmware-setup
       source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
$bootctl --version
systemd 245 (245.5-2-arch)
+PAM +AUDIT -SELINUX -IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid
 tree /boot
/boot
├── EFI
│   ├── BOOT
│   │   └── BOOTX64.EFI
│   ├── Linux
│   └── systemd
│       └── systemd-bootx64.efi
├── initramfs-linux-fallback.img
├── initramfs-linux.img
├── intel-ucode.img
├── loader
│   ├── entries
│   │   ├── paadpi.conf
│   │   └── root-snap.conf
│   ├── loader.conf
│   ├── random-seed
│   └── random-seed.bak
└── vmlinuz-linux

Am I missing sth? On-screen menu should pop-up for 20s (timeout 20), shoudn't it?

SOLVED
Thanks to Ropid for showing a direction.

paadpi wrote:

I found an information in:

$ man systemd-boot
...
EFI VARIABLES
...
 LoaderConfigTimeout, LoaderConfigTimeoutOneShot
           The menu timeout in seconds. Read by the boot loader.  LoaderConfigTimeout is maintained persistently, while LoaderConfigTimeoutOneShot is a
           one-time override which is read once (in which case it takes precedence over LoaderConfigTimeout) and then removed.  LoaderConfigTimeout may be
           manipulated with the t/T keys, see above.)
...

LoaderConfigTimeout seems to be set to 0.

$cat  /sys/firmware/efi/efivars/LoaderConfigTimeout-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
0⏎

Holding "+" during boot solved problem. Holding "T" should also help.
Now,

$/sys/firmware/efi/efivars/LoaderConfigTimeout-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
5⏎

I found also a post about same issue https://bbs.archlinux.org/viewtopic.php?id=229486

Last edited by paadpi (2020-04-27 18:45:08)

Offline

#2 2020-04-27 17:29:38

Ropid
Member
Registered: 2015-03-09
Posts: 1,069

Re: [SOLVED] systemd-boot missing on-screen menu

You can get into the menu by holding down the space-bar on your keyboard at boot. This will make the menu show up even if timeout is set to zero.

Did you in the past ever use the timeout hotkeys while you were in the systemd-boot boot menu? When you press those hotkeys, systemd-boot will save your new timeout in the motherboard's UEFI variables. That UEFI variable will then override what you are doing in the loader.conf file. The hotkeys to change the timeout are "-" to decrease one second and "t" to increase. The hotkeys and the name of the UEFI variable is listed somewhere in "man systemd-boot". You can see your UEFI variables inside /sys/firmware/efi/efivars/.

Last edited by Ropid (2020-04-27 17:32:17)

Offline

#3 2020-04-27 18:08:54

paadpi
Member
Registered: 2020-04-14
Posts: 7

Re: [SOLVED] systemd-boot missing on-screen menu

Ropid wrote:

You can get into the menu by holding down the space-bar on your keyboard at boot. This will make the menu show up even if timeout is set to zero.

Did you in the past ever use the timeout hotkeys while you were in the systemd-boot boot menu? When you press those hotkeys, systemd-boot will save your new timeout in the motherboard's UEFI variables. That UEFI variable will then override what you are doing in the loader.conf file. The hotkeys to change the timeout are "-" to decrease one second and "t" to increase. The hotkeys and the name of the UEFI variable is listed somewhere in "man systemd-boot". You can see your UEFI variables inside /sys/firmware/efi/efivars/.

Thanks for response.

Holding down the space bar has not made the menu show up.
I have never used the timeout hotkeys (at least not intentionally).

I found an information in:

$ man systemd-boot
...
EFI VARIABLES
...
 LoaderConfigTimeout, LoaderConfigTimeoutOneShot
           The menu timeout in seconds. Read by the boot loader.  LoaderConfigTimeout is maintained persistently, while LoaderConfigTimeoutOneShot is a
           one-time override which is read once (in which case it takes precedence over LoaderConfigTimeout) and then removed.  LoaderConfigTimeout may be
           manipulated with the t/T keys, see above.)
...

LoaderConfigTimeout seems to be set to 0.

$cat  /sys/firmware/efi/efivars/LoaderConfigTimeout-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
0⏎

Holding "+" during boot solved problem. Holding "T" should also help.
Now,

$/sys/firmware/efi/efivars/LoaderConfigTimeout-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
5⏎

I found also a post about same issue https://bbs.archlinux.org/viewtopic.php?id=229486

Last edited by paadpi (2020-04-27 18:35:25)

Offline

Board footer

Powered by FluxBB