Deal with the new systemd-boot (and set a default Windows entry)

mijorus
3 min readOct 16, 2019

--

Some days ago I freshly installed PopOS, a (not so) new Ubuntu based distro I’ve read about online. It promises easy-of-use out of the box and some small tweaks on top of stock Ubuntu 19.04, a different theme, some pre-installer GNOME3 extensions and stuff like this, which is good. But when i booted for the first time, the amazing “easy-of-use” was not so easy after all.
It comes with a new boot manager, called systemd-boot, which is, well, let’s say could be more user friendly. I got used to GRUB, it got the job done, but they promise better performances with this new project. I have nothing against new projects, it’s awesome, it is why I use linux, but if you promote your distro as ready-to-go out of the box, you should pay more attentions to your choices, especially when, let’s be honest, most users will probably need a dual-boot setup.
Ok, but what is wrong about it?

First — there is not a settings GUI
GRUB has grub-customizer, which is a good and easy way to manage your boot methods and set the default one, timeout etc. Systemd-boot, doesn’t. You will have to deal with configuration files, which is not a big deal for me, but it could be for some people

Second - System76 provides little to no documentation
On their website, they link to the freedesktop wiki page, which is ok, but if I have issues chances are I need way more informations

Third — it does not support themes
yes this is a big one

Ok, let’s get started. The first big problem you might have is that you want to set the timeout of the splash screen. This can be done in two ways. The first (and the one i strongly recommend) is to edit the file which is located at /boot/efi/loader called loader.conf, so…

sudo nano /boot/efi/loader/loader.conf
timeout 3 (enter your value here in seconds)

note that the /boot partition is not actually on your root directory, instead it’s where PopOS and other distros will probably mount the EFI partition, which is a completely independent partition on your hard disk, so it could change depending on your distribution. The other alternative way to change the timeout is to press “t” while on the splash screen at boot, but this is not ideal for me, as your settings get stored in a non-volatile variable and basically you won’t be able to change them afterword (as the configuration file will then be ignored)

The other thing you might be interested is to set Windows as the default boot option. This is particularity useful, since sometimes Windows Updates needs to reboot the system to complete the update. Now, systemd-boot fetches the entries from /boot/efi/loader/entries, but probably you won’t see Windows here. It is, in fact, only detected at startup. In order to be able to pre-select windows we have to:

sudo nano /boot/efi/loader/entries/windows.conf

in the file put

title Windows 10
#or as you like to call it
efi /EFI/Microsoft/Boot/bootmgfw.efi
#if this file is in another location, look for it, but remember
#the /boot partition is just the mount point for the ‘efi’ partition
save & exit

you can check if the position in correct by exploring /boot/efi/EFI/Microsoft/Boot

now let’s go back to edit the config file in with sudo nano /boot/efi/loader/loader.conf

default “Windows 10”
timeout 5
#to prevent Windows to show up two times set auto-windows to 0, default is 1
auto-windows 0

that was it. Hope I helped someone!

--

--

Responses (4)