Setting Up Dual Boot with Windows and Arch Linux Using systemd-boot

Dual-booting Windows and Arch Linux is fairly straightforward when each operating system is installed separately. However, you might need to manually select the boot device through your BIOS settings every time you want to switch. To make this more convenient, you can configure systemd-boot to present a centralized boot menu, allowing you to choose between Arch and Windows easily at startup. Installing and Configuring systemd-boot systemd-boot comes bundled with systemd, so you don't need to install anything extra. To initialize it, simply use bootctl: bootctl install This command will install systemd-boot into your EFI system partition, set up a new bootloader entry named Linux Boot Manager, and configure it as the first option in your UEFI firmware. At this point, if you reboot, you will only see Arch Linux listed as a boot option — we still need to add Windows manually. Adding the Windows Boot Entry The goal is to make Windows available directly from the systemd-boot menu. To do this, we'll copy Windows' EFI boot files into Linux's EFI partition. systemd-boot will automatically detect the Windows bootloader once the files are in place — no need to create a manual entry. Step 1: Identify the Windows EFI Partition First, list all block devices: lsblk Sample output: NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 223.6G 0 disk ├─sda1 8:1 0 100M 0 part ├─sda2 8:2 0 16M 0 part ├─sda3 8:3 0 222.9G 0 part └─sda4 8:4 0 546M 0 part zram0 253:0 0 4G 0 disk [SWAP] nvme0n1 259:0 0 476.9G 0 disk ├─nvme0n1p1 259:1 0 1G 0 part /boot ├─nvme0n1p2 259:2 0 47G 0 part / └─nvme0n1p3 259:3 0 428.9G 0 part /home In this example, sda1 is a 100MB partition, which typically indicates Windows' EFI partition. Step 2: Mount the Windows EFI Partition Create a mount point and mount the Windows EFI partition: sudo mkdir /mnt/windows-efi sudo mount /dev/sda1 /mnt/windows-efi Step 3: Copy Windows Boot Files Copy the Microsoft EFI directory into your Arch system’s EFI folder: sudo cp -r /mnt/windows-efi/EFI/Microsoft /boot/EFI/ Once copied, systemd-boot will automatically detect the Windows Boot Manager. Final Step: Reboot and Enjoy After setting everything up, reboot your machine. You should now see both Arch Linux and Windows listed in the systemd-boot menu — no additional configuration required!

Apr 28, 2025 - 05:59
 0
Setting Up Dual Boot with Windows and Arch Linux Using systemd-boot

Dual-booting Windows and Arch Linux is fairly straightforward when each operating system is installed separately. However, you might need to manually select the boot device through your BIOS settings every time you want to switch. To make this more convenient, you can configure systemd-boot to present a centralized boot menu, allowing you to choose between Arch and Windows easily at startup.

Installing and Configuring systemd-boot

systemd-boot comes bundled with systemd, so you don't need to install anything extra. To initialize it, simply use bootctl:

bootctl install

This command will install systemd-boot into your EFI system partition, set up a new bootloader entry named Linux Boot Manager, and configure it as the first option in your UEFI firmware.

At this point, if you reboot, you will only see Arch Linux listed as a boot option — we still need to add Windows manually.

Adding the Windows Boot Entry

The goal is to make Windows available directly from the systemd-boot menu. To do this, we'll copy Windows' EFI boot files into Linux's EFI partition. systemd-boot will automatically detect the Windows bootloader once the files are in place — no need to create a manual entry.

Step 1: Identify the Windows EFI Partition

First, list all block devices:

lsblk

Sample output:

NAME          MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS  
sda             8:0    0 223.6G  0 disk   
├─sda1          8:1    0   100M  0 part   
├─sda2          8:2    0    16M  0 part   
├─sda3          8:3    0 222.9G  0 part   
└─sda4          8:4    0   546M  0 part   
zram0         253:0    0     4G  0 disk [SWAP]  
nvme0n1       259:0    0 476.9G  0 disk   
├─nvme0n1p1   259:1    0     1G  0 part /boot  
├─nvme0n1p2   259:2    0    47G  0 part /  
└─nvme0n1p3   259:3    0 428.9G  0 part /home

In this example, sda1 is a 100MB partition, which typically indicates Windows' EFI partition.

Step 2: Mount the Windows EFI Partition

Create a mount point and mount the Windows EFI partition:

sudo mkdir /mnt/windows-efi
sudo mount /dev/sda1 /mnt/windows-efi

Step 3: Copy Windows Boot Files

Copy the Microsoft EFI directory into your Arch system’s EFI folder:

sudo cp -r /mnt/windows-efi/EFI/Microsoft /boot/EFI/

Once copied, systemd-boot will automatically detect the Windows Boot Manager.

Final Step: Reboot and Enjoy

After setting everything up, reboot your machine. You should now see both Arch Linux and Windows listed in the systemd-boot menu — no additional configuration required!