On Friday, 3 July 2020 03:05:34 BST Andrew Udvare wrote:
> Morning all,
> 
> I'm trying to set the default boot entry via bootctl or efibootmgr. I know I
> can set it directly by pressing D at the boot selection screen, and the
> system does boot properly; I just want to understand the setup a bit
> better. I don't have the rest of systemd: this is an openrc box.
> 
> # tree -L 3 /boot
> /boot
> ├── config-5.4.48-gentoo
> ├── config-5.4.48-gentoo-rescue
> ├── config-5.7.6-gentoo
> ├── config-5.7.7-gentoo
> ├── early_ucode.cpio
> ├── EFI
> │   ├── Boot
> │   │   └── bootx64.efi
> │   ├── Linux
> │   ├── Microsoft
> │   │   ├── Boot
> │   │   └── Recovery
> │   └── systemd
> │       └── systemd-bootx64.efi
> ├── intel-uc.img
> ├── loader
> │   ├── entries
> │   │   ├── 08-gentoo-5.4.48-rescue.conf
> │   │   ├── 09-gentoo-5.4.48-rescue.nonet.conf
> │   │   ├── 30-gentoo-5.7.7.conf
> │   │   ├── 32-gentoo-5.7.7.nox.conf
> │   │   ├── 34-gentoo-5.7.7.nonet.conf
> │   │   ├── 40-gentoo-5.4.48.conf
> │   │   ├── 42-gentoo-5.4.48.nox.conf
> │   │   └── 44-gentoo-5.4.48.nonet.conf
> │   ├── loader.conf
> │   └── random-seed
> ├── System.map-5.4.48-gentoo
> ├── System.map-5.4.48-gentoo-rescue
> ├── System.map-5.7.6-gentoo
> ├── System.map-5.7.7-gentoo
> ├── vmlinuz-5.4.48-gentoo
> ├── vmlinuz-5.4.48-gentoo-rescue
> ├── vmlinuz-5.7.6-gentoo
> └── vmlinuz-5.7.7-gentoo
> 
> # bootctl status
> --->8
> Default Boot Loader Entry:
>         title: Gentoo 5.4.48 (No network)
>            id: 44-gentoo-5.4.48.nonet.conf
> --->8
> 
> 44-gentoo-5.4.48.nonet.conf is the last entry in /boot/loader/entries.
> 
> Man bootctl says:
> set-default ID, set-oneshot ID
>      Sets the default boot loader entry. Takes a single boot loader entry ID
> string as argument...
> 
> But then,
> # bootctl set-default 30-gentoo-5.7.7.conf
> Failed to update EFI variable: Invalid argument
> 
> ...in spite of this:
> # cat /boot/loader/entries/30-gentoo-5.7.7.conf
> title Gentoo 5.7.7
> version 5.7.7-gentoo
> linux vmlinuz-5.7.7-gentoo
> initrd=intel-uc.img
> options root=/dev/nvme0n1p4 net.ifnames=0 raid=noautodetect
> 
> ...and this:
> # mount | grep efi
> efivarfs on /sys/firmware/efi/efivars type efivarfs
> (rw,nosuid,nodev,noexec,relatime)
> 
> I've also tried telling efibootmgr to set the default.
> 
> # efibootmgr
> BootNext: 0007
> BootCurrent: 0007
> Timeout: 2 seconds
> BootOrder: 000B,0007,0006,0000,000C,000D
> Boot0000* Windows Boot Manager
> Boot0006* UEFI OS
> Boot0007* Linux Boot Manager
> Boot000B* CD/DVD Drive
> Boot000C* Hard Drive
> Boot000D* Removable Drive
> 
> Efibootmgr -n 7 seems to make no difference, as expected, but:
> # efibootmgr -N 7
> Boot entry 0001 does not exist

I can't comment on the systemd's bootctl, because I don't use it, by as I 
understand it 'efibootmgr --delete-bootnext' will clear the BootNext entry in 
UEFI settings and does not take a boot entry number as a variable on the CLI.  
I can't answer why "7" in your entry above returns a comment about "Boot entry 
0001" ... which is obviously absent.

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to