How to choose which OS to boot into with systemd-boot

| ⌛ 2 minutes read

📋 Tags: Linux Tutorial


You are a POP!_OS user or use systemd-boot, and want this screen to pop up when you boot.

systemd-boot menu, Image src: freedesktop.org

This guide is for you.

POP_OS was not configured to have the boot menu come up so there is a bit of settings config required.

Option 1: Hold spacebar

When you boot, hold spacebar and the menu should show up. Arrow keys to select your boot entry to and press enter to boot into it.

Option 2: Edit loader.conf

What if you want the boot menu to come up everytime you boot up?
To have the menu show up, edit your loader.conf as root.

0
1
# This is for an EFI partitioned device
sudo nano /boot/efi/loader/loader.conf

Then add in at the bottom of the file timeout N, where N is the number of seconds the menu should show up for before booting.

Windows OS not showing up

If you dual boot on seperate drives, there is a chance systemd-boot will not detect the other OS in the system.

To register your other OSes (like windows), copy the EFI partition contents into the boot directory.

 0
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Find out the partition that holds your undetected OS's boot entry
# It should be small - 260Mb in my case
lsblk

# Create a staging folder to copy the Windows/Other OS bootloader contents 
sudo mkdir /mnt/someEfi

# Mount the other OS into your staging folder
sudo mount /dev/sdb1 /mnt/someEfi

# Copy the EFI contents (Assuming its a windows EFI)
sudo cp -r /mnt/someEfi/EFI/Microsoft /boot/efi/EFI

Reboot and you should see your OS in the boot entry folder.

Option 3: rEFInd

systemd boot menu too boring? This was a relatively popular option from stack overflow. If you use apt, simply:

sudo apt-get install refind

While installing, a popup should appear in your terminal. Click yes.

When you reboot your computer, a custom boot menu screen should appear. Done.

You can theme the boot menu screen too! Click here for the official theming docs.