You are not logged in.
Pages: 1
I'm trying to get systemd-boot to work so I can set up preloader for secureboot, but every time I think I've got it, the firmware kicks me back and says "Couldn't find a bootable operating system." At first I thought it was the well-documented issue of bootctl not generating the entry when chrooted into the system, but after using efibootmgr and pointing it to the systemd-bootx64.efi, it still won't work. Linux Boot Manager now shows up in the UEFI's boot menu, but selecting it still returns the same 'no OS' error. I just wonder if something's up with my configs that I'm not seeing.
I'm installing on my Microsoft Surface Pro 7 using the linux-surface project, which is why my kernel and some config will have 'surface' attached to them. This is not a dual boot situation, Arch only. Windows was getting too heavy to consider keeping on an old laptop.
systemd-bootx64.efi is located at /boot/EFI/systemd/
/boot/loader/loader.conf reads:
default surface.conf
timeout 3
#console-mode keep
/boot/loader/entries/surface.conf reads (with my EFI partition's UUID removed):
title Arch Linux
linux /vmlinuz-linux-surface
initrd /intel-ucode.img
initrd /initramfs-linux-surface.img
options root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
the kernel, intel ucode, and initramfs all exist under /boot.
Calling bootctl prints this, which looks to me like it should be working minus "not booted with EFI," which I've read should've only prevented the creation of the entry at install:
System:
Not booted with EFI
Available Boot Loaders on ESP:
ESP: /boot
File: /boot//EFI/systemd/systemd-bootx64.efi (systemd-boot 259.3-1-arch)
/boot//EFI/BOOT/BOOTX64.EFI (systemd-boot 259.3-1-arch)
Boot Loader Entry Locations:
ESP: /boot ()
config: /boot//loader/loader.conf
XBOOTLDR: /boot ($BOOT)
token: arch
Default Boot Loader Entry:
type: Boot Loader Specification Type #1 (.conf)
title: Arch Linux
id: surface.conf
source: /boot//loader/entries/surface.conf (on the EFI System Partition)
linux: /boot//vmlinuz-linux-surface
initrd: /boot//intel-ucode.img
/boot//initramfs-linux-surface.img
options: root=UUID=xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxFinally, running efibootmgr will list "Linux Boot Manager" as first on the boot order and display the path \efi\systemd\systemd-bootx64.efi\
Last edited by conk_creat_ (2026-03-06 19:15:15)
Offline
What does `efibootmgr -u` show?
Offline
BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0005,0001,0004,0000,0002
Boot0000 Internal Storage FvVol(a881d567-6cb0-4eee-8435-2e72d33e45b5)/FvFile(50670071-478f-4be7-ad13-8754f379c62f)▪ D
Boot0001* USB Storage FvVol(a881d567-6cb0-4eee-8435-2e72d33e45b5)/FvFile(50670071-478f-4be7-ad13-8754f379c62f)▪ B
Boot0002 PXE Network FvVol(a881d567-6cb0-4eee-8435-2e72d33e45b5)/FvFile(50670071-478f-4be7-ad13-8754f379c62f)▪ E
Boot0003* MsTemp PciRoot(0x0)/Pci(0x14,0x0)/USB(1.0)/HD(1,0)/HD(1,MBR,0xb1a0701b,0x00,0x77ff80)
Boot0004 Windows Boot Manager HD(1,GPT,f61e47ca-9174-4fa9-9275-1eb63065f14e,0x800,0x82000)/\EFI\Microsoft\Boot\bootmgfw.efi▪ ▪ ▪ S
Boot0005* Linux Boot Manager HD(1,GPT,29dc1cb1-2342-4c96-b90d-1316c913a535,0x800,0x106800)/\efi\systemd\systemd-bootx64.efi\Last edited by conk_creat_ (2026-03-08 05:00:08)
Offline
First thing I notice is that the PARTUUID is different from the old Windows installation, but I assume that you deleted the old ESP and made a new one, so that would be fine.
There are systems out there that will ignore the NVRAM entries and just load Windows from a hard-coded location. There are others that will check that the Windows loader is present to validate the partition. Especially since this is an MS system, I wonder if you're running into one of those situations. Try copying systemd-bootx64.efi to $esp/EFI/Microsoft/Boot/bootmgfw.efi and see if it boots.
Last edited by Scimmia (2026-03-07 14:27:14)
Offline
cp /boot/efi/systemd/systemd-bootx64.efi /boot/efi/Microsoft/Boot/bootmgfw.efiNo dice, same error
Last edited by conk_creat_ (2026-03-09 19:41:57)
Offline
Quick update: Grub works flawlessly out-of-the box. Now I really have no idea what systemd-boot's issue is. I also know there's a way to get secure boot to work with grub, but it's much more difficult than preloader. I may just continue setting up the system as I need it for school and come back to screw with bootladers again as I find new ideas to try. I will still gladly accept suggestions and I don't feel I should mark this as resolved, as my original problem of setting up systemd/preloader has still not been fixed. I just found a band-aid to help for now.
Offline
Pages: 1