You are not logged in.
I hafe three versions of my system on the computer in difrent BTRFS subvolumes.
I made three Boot entries and set the bootorder:
$ sudo efibootmgr --disk /dev/nvme0n1 --part 1 --create --label "Arch Linux" --loader /vmlinuz-linux --unicode 'root=LABEL=ROOT rootflags=subvol=@snaps/TESTING rw drm.edid_firmware=DP-2:edid/beq.bin initrd=\initramfs-linux.img'
$ sudo efibootmgr --disk /dev/nvme0n1 --part 1 --create --label "Arch Linux stable" --loader /vmlinuz-linux-stable --unicode 'root=LABEL=ROOT rootflags=subvol=@snaps/STABLE rw drm.edid_firmware=DP-2:edid/beq.bin initrd=\initramfs-linux-stable.img'
$ sudo efibootmgr --disk /dev/nvme0n1 --part 1 --create --label "Arch Linux lts" --loader /vmlinuz-linux-lts --unicode 'root=LABEL=ROOT rootflags=subvol=@snaps/STABLE rw drm.edid_firmware=DP-2:edid/beq.bin initrd=\initramfs-linux-lts.img'
$ sudo efibootmgr -o 0,1,2
I get this:
$ efibootmgr -v
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0001,0002
Boot0000* Arch Linux HD(1,GPT,793ab64e-c8f3-4fc9-a5ab-2438e0dc1560,0x800,0xfa000)/File(\vmlinuz-linux)r.o.o.t.=.L.A.B.E.L.=.R.O.O.T. .r.o.o.t.f.l.a.g.s.=.s.u.b.v.o.l.=.@.s.n.a.p.s./.T.E.S.T.I.N.G. .r.w. .d.r.m...e.d.i.d._.f.i.r.m.w.a.r.e.=.D.P.-.2.:.e.d.i.d./.b.e.q...b.i.n. .i.n.i.t.r.d.=.\.i.n.i.t.r.a.m.f.s.-.l.i.n.u.x...i.m.g.
Boot0001* Arch Linux stable HD(1,GPT,793ab64e-c8f3-4fc9-a5ab-2438e0dc1560,0x800,0xfa000)/File(\vmlinuz-linux-stable)r.o.o.t.=.L.A.B.E.L.=.R.O.O.T. .r.o.o.t.f.l.a.g.s.=.s.u.b.v.o.l.=.@.s.n.a.p.s./.S.T.A.B.L.E. .r.w. .d.r.m...e.d.i.d._.f.i.r.m.w.a.r.e.=.D.P.-.2.:.e.d.i.d./.b.e.q...b.i.n. .i.n.i.t.r.d.=.\.i.n.i.t.r.a.m.f.s.-.l.i.n.u.x.-.s.t.a.b.l.e...i.m.g.
Boot0002* Arch Linux lts HD(1,GPT,793ab64e-c8f3-4fc9-a5ab-2438e0dc1560,0x800,0xfa000)/File(\vmlinuz-linux-lts)r.o.o.t.=.L.A.B.E.L.=.R.O.O.T. .r.o.o.t.f.l.a.g.s.=.s.u.b.v.o.l.=.@.s.n.a.p.s./.S.T.A.B.L.E. .r.w. .d.r.m...e.d.i.d._.f.i.r.m.w.a.r.e.=.D.P.-.2.:.e.d.i.d./.b.e.q...b.i.n. .i.n.i.t.r.d.=.\.i.n.i.t.r.a.m.f.s.-.l.i.n.u.x.-.l.t.s...i.m.g.
After a rebot i get this:
$ efibootmgr -v
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0001,0002,0003,0005,0006,0004
Boot0000* Arch Linux HD(1,GPT,793ab64e-c8f3-4fc9-a5ab-2438e0dc1560,0x800,0xfa000)/File(\vmlinuz-linux)r.o.o.t.=.L.A.B.E.L.=.R.O.O.T. .r.o.o.t.f.l.a.g.s.=.s.u.b.v.o.l.=.@.s.n.a.p.s./.T.E.S.T.I.N.G. .r.w. .d.r.m...e.d.i.d._.f.i.r.m.w.a.r.e.=.D.P.-.2.:.e.d.i.d./.b.e.q...b.i.n. .i.n.i.t.r.d.=.\.i.n.i.t.r.a.m.f.s.-.l.i.n.u.x...i.m.g.
Boot0001* Arch Linux stable HD(1,GPT,793ab64e-c8f3-4fc9-a5ab-2438e0dc1560,0x800,0xfa000)/File(\vmlinuz-linux-stable)r.o.o.t.=.L.A.B.E.L.=.R.O.O.T. .r.o.o.t.f.l.a.g.s.=.s.u.b.v.o.l.=.@.s.n.a.p.s./.S.T.A.B.L.E. .r.w. .d.r.m...e.d.i.d._.f.i.r.m.w.a.r.e.=.D.P.-.2.:.e.d.i.d./.b.e.q...b.i.n. .i.n.i.t.r.d.=.\.i.n.i.t.r.a.m.f.s.-.l.i.n.u.x.-.s.t.a.b.l.e...i.m.g.
Boot0002* Arch Linux lts HD(1,GPT,793ab64e-c8f3-4fc9-a5ab-2438e0dc1560,0x800,0xfa000)/File(\vmlinuz-linux-lts)r.o.o.t.=.L.A.B.E.L.=.R.O.O.T. .r.o.o.t.f.l.a.g.s.=.s.u.b.v.o.l.=.@.s.n.a.p.s./.S.T.A.B.L.E. .r.w. .d.r.m...e.d.i.d._.f.i.r.m.w.a.r.e.=.D.P.-.2.:.e.d.i.d./.b.e.q...b.i.n. .i.n.i.t.r.d.=.\.i.n.i.t.r.a.m.f.s.-.l.i.n.u.x.-.l.t.s...i.m.g.
Boot0003* KXG50ZNV512G TOSHIBA-X8QA73WWK5YS PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/NVMe(0x1,00-08-0D-03-00-48-54-45)N.....YM....R,Y.....ISPH
Boot0004* KXG50ZNV512G TOSHIBA-X8QA73WWK5YS BBS(HD,KXG50ZNV512G TOSHIBA-X8QA73WWK5YS,0x400)/PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/NVMe(0x1,00-08-0D-03-00-48-54-45)......ISPH
Boot0005 USB: PciRoot(0x0)/Pci(0x14,0x0)N.....YM....R,Y.....ISPH
Boot0006 USB: BBS(65535,,0x0)/PciRoot(0x0)/Pci(0x14,0x0)......ISPH
But after a second reboot the bootorder is changed to this:
$ efibootmgr -v
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0005,0006,0004
Boot0000* Arch Linux HD(1,GPT,793ab64e-c8f3-4fc9-a5ab-2438e0dc1560,0x800,0xfa000)/File(\vmlinuz-linux)r.o.o.t.=.L.A.B.E.L.=.R.O.O.T. .r.o.o.t.f.l.a.g.s.=.s.u.b.v.o.l.=.@.s.n.a.p.s./.T.E.S.T.I.N.G. .r.w. .d.r.m...e.d.i.d._.f.i.r.m.w.a.r.e.=.D.P.-.2.:.e.d.i.d./.b.e.q...b.i.n. .i.n.i.t.r.d.=.\.i.n.i.t.r.a.m.f.s.-.l.i.n.u.x...i.m.g.....ISPH
Boot0001* Arch Linux stable HD(1,GPT,793ab64e-c8f3-4fc9-a5ab-2438e0dc1560,0x800,0xfa000)/File(\vmlinuz-linux-stable)r.o.o.t.=.L.A.B.E.L.=.R.O.O.T. .r.o.o.t.f.l.a.g.s.=.s.u.b.v.o.l.=.@.s.n.a.p.s./.S.T.A.B.L.E. .r.w. .d.r.m...e.d.i.d._.f.i.r.m.w.a.r.e.=.D.P.-.2.:.e.d.i.d./.b.e.q...b.i.n. .i.n.i.t.r.d.=.\.i.n.i.t.r.a.m.f.s.-.l.i.n.u.x.-.s.t.a.b.l.e...i.m.g.
Boot0002* Arch Linux lts HD(1,GPT,793ab64e-c8f3-4fc9-a5ab-2438e0dc1560,0x800,0xfa000)/File(\vmlinuz-linux-lts)r.o.o.t.=.L.A.B.E.L.=.R.O.O.T. .r.o.o.t.f.l.a.g.s.=.s.u.b.v.o.l.=.@.s.n.a.p.s./.S.T.A.B.L.E. .r.w. .d.r.m...e.d.i.d._.f.i.r.m.w.a.r.e.=.D.P.-.2.:.e.d.i.d./.b.e.q...b.i.n. .i.n.i.t.r.d.=.\.i.n.i.t.r.a.m.f.s.-.l.i.n.u.x.-.l.t.s...i.m.g.
Boot0004* KXG50ZNV512G TOSHIBA-X8QA73WWK5YS BBS(HD,KXG50ZNV512G TOSHIBA-X8QA73WWK5YS,0x400)/PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/NVMe(0x1,00-08-0D-03-00-48-54-45)......ISPH
Boot0005 USB: PciRoot(0x0)/Pci(0x14,0x0)N.....YM....R,Y.....ISPH
Boot0006 USB: BBS(65535,,0x0)/PciRoot(0x0)/Pci(0x14,0x0)......ISPH
The "Arch Linux stable" and "Arch Linux lts" ar not shown in the Bootlist of the UEFI. So i cant boot to "Arch Linux stable".
I can imagine it is something like this: https://bbs.archlinux.org/viewtopic.php?id=242836
Propably the UEFI have a problem with BTRFS.
Is ther a way to list all entries in the UEFI or do i have to switch to a bootloader like systemd-boot?
Offline
How well direct entries are supported heavily rely on your UEFI implementation (which is it? Who is your motherboard vendor?) It is usually more guaranteed to use an intermediate loader like systemd-boot yes. No this doesn't have anything to do with BTRFS at that point in time.
Online
I don't know the motherbord.
The Laptop i use is: HP ProBook x360 440 G1
The UEFI is: Q98 Ver. 01.06.00 01/02/2019
Offline
This is probably just a bug in the UEFI of your laptop. It's not unusual that the boot behavior does not follow the standard.
Offline