Jump to content

Trying to configure Systemd-boot.

Go to solution Solved by Nayr438,

Per systemd spec your esp should be mounted at /efi.

And XBOOTLDR needs to be formatted to a filesystem that is readible by firmware, so VFAT. Being ext4 systemd-boot can't read it.

 

https://www.freedesktop.org/software/systemd/man/latest/file-hierarchy.html

 

https://www.freedesktop.org/software/systemd/man/latest/systemd-gpt-auto-generator.html#

 

https://uapi-group.org/specifications/specs/boot_loader_specification/

I am trying to install Arch Linux with Systemd-boot. Even worse, I am trying it with a XBOOTLDR partition and maybe chain loading it with GRUB. For those who don't know what XBOOTLDR is, https://wiki.archlinux.org/title/systemd-boot#Installation_using_XBOOTLDR

 

So, I have a /ESP folder mounted as my EFI partition, a /boot folder mounted as my XBOOTLDR partition, where my Kernel(s) reside. When making this partition, in cfdisk, I chose the type as Linux extended boot. I am pretty sure XBOOTLDR means Linux extended boot, and even the GUID matches which is listed on the ArchWiki. And I also formatted it as ext4 and not FAT32. I don't think that should be a problem because my UEFI doesn't have to do anything with that partition but idk if bootctl supports ext4 but I heard that it does.

 

So at the last I ran "bootctl --esp-path=/ESP/ --boot-path=/boot/ install". I then modified ESP/loader/loader.conf as -

Spoiler
default  arch.conf
timeout  4
console-mode max
editor   no

 

Now, the Wiki says that there are 2 places systemd searches for boot entries. In the ESP/loader/entries/*.conf and IF using XBOOTLDR, additionally it will check in /boot/loader/entries/*.conf. So I first created the arch.conf file in the /boot/... directory because I was using XBOOTLDR. It looked like - 

Spoiler
title   Arch Linux
linux   /vmlinuz-linux
initrd  /initramfs-linux.img
options root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw

Of course with the correct UUID of my root partition I got from genfstab. I will configure my fallback initramfs and intel microcode once I actually get this thing running.

 

But after reboot, I didn't see the entry for my Arch Linux. After a while of troubleshooting, in which I tried making another copy of arch.conf in my ESP directory inside, but later deleted it, and I tried giving the UUID of XBOOTLDR partition but still got nothing. Right now, "bootctl list", seems to detect my Kernel and my config file but I still do not see it in the boot menu.

Microsoft owns my soul.

 

Also, Dell is evil, but HP kinda nice.

Link to comment
Share on other sites

Link to post
Share on other sites

Per systemd spec your esp should be mounted at /efi.

And XBOOTLDR needs to be formatted to a filesystem that is readible by firmware, so VFAT. Being ext4 systemd-boot can't read it.

 

https://www.freedesktop.org/software/systemd/man/latest/file-hierarchy.html

 

https://www.freedesktop.org/software/systemd/man/latest/systemd-gpt-auto-generator.html#

 

https://uapi-group.org/specifications/specs/boot_loader_specification/

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×