When it comes to desktop, it is pretty common that we may end up needing a ready-to-use Windows host beside our daily use Linux system. If that is your case, forget about spamming your F key at startup so you can boot one or another from your motherboard’s boot selector and just let Systemd care about that.
Assumptions:
- You are using systemd-boot as UEFI manager, NOT GRUB
- You run Arch Linux and Windows on the same machine (it doesn’t matter if they are installed on different partitions or separate physical disks)
First things first! Fire up your Arch, get a root shell and mount the Window’s EFI partition:
mount /dev/sdXN /mnt # replace 'sdXN' accordingly to your Windows' disk address
Copy /mnt/EFI/Microsoft
folder inside the /boot
directory:
cp -r /mnt/EFI/Microsoft/ /boot/EFI/Microsoft/
Add a new entry for Windows by creating a new /boot/loader/entries/windows.conf
file, containing:
title Windows 10
efi /EFI/Microsoft/Boot/bootmgfw.efi
Apply changes by running:
bootctl update
Check that the new entry is showing correctly with:
bootctl list
It should output something like this:
Boot Loader Entries:
title: Arch Linux
id: arch.conf
source: /boot/loader/entries/arch.conf
linux: /vmlinuz-linux
initrd: /initramfs-linux.img
title: Windows 10
id: windows.conf
source: /boot/loader/entries/windows.conf
Once done, reboot your system and wait for systemd-boot to show up with both Arch and Windows 10 entries.
Until we meet again!
Very clear and understandable! So, you could do the same if you wanted to add another Linux distribution on a different disk as well, yes?
For sure!