You are not logged in.

#1 2026-03-06 19:11:49

conk_creat_
Member
Registered: 2026-02-22
Posts: 6

systemd-boot woes

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-xxxxxxxxxxxx

Finally, 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

#2 2026-03-07 02:08:45

Scimmia
Fellow
Registered: 2012-09-01
Posts: 13,712

Re: systemd-boot woes

What does `efibootmgr -u` show?

Online

#3 2026-03-07 09:55:35

conk_creat_
Member
Registered: 2026-02-22
Posts: 6

Re: systemd-boot woes

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

#4 2026-03-07 14:26:10

Scimmia
Fellow
Registered: 2012-09-01
Posts: 13,712

Re: systemd-boot woes

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)

Online

#5 2026-03-08 05:15:39

conk_creat_
Member
Registered: 2026-02-22
Posts: 6

Re: systemd-boot woes

cp /boot/efi/systemd/systemd-bootx64.efi /boot/efi/Microsoft/Boot/bootmgfw.efi

No dice, same error

Last edited by conk_creat_ (2026-03-09 19:41:57)

Offline

#6 2026-03-09 20:10:08

conk_creat_
Member
Registered: 2026-02-22
Posts: 6

Re: systemd-boot woes

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

Board footer

Powered by FluxBB