Linux – Make Syslinux work with UEFI Windows 10

linuxmulti-bootuefiwindows 10

Recently, I installed Windows 10 on my main machine – later discovered it demolished my whole Linux boot partition:

sdb                                                            
├─sdb1 ext4   Root        07a703e4-173a-4e54-b425-baa69a220a64 /
├─sdb2 vfat               2C45-FE61                            /boot
├─sdb3 ext4   Home        00477b16-d04d-4cc7-bb56-32138146b74d /home
├─sdb4 swap   Swap        578c2f2d-1a07-4bae-a235-dbf52dae300f [SWAP]
├─sdb5                                                         
└─sdb6 ntfs   Win_OS      9292422592420E63                     /media/Win_OS

I got Syslinux and my Arch working, but now I can't find a way to succesfully make a Syslinux entry to boot into the Windows. Though, If I choose "Windows Boot Manager" from the MB boot menu, it boots just fine.

My current syslinux.cfg: (well, part of it)

...
LABEL Arch
    MENU LABEL Arch_64
    LINUX ../vmlinuz-linux
    APPEND root=UUID=07a703e4-173a-4e54-b425-baa69a220a64 rw
    INITRD ../initramfs-linux.img


LABEL Win10
    MENU LABEL Windows_10
    COM32 chain.c32
    APPEND hd1

Edit 1#:

I forgot to mention, I also installed a UEFI syslinux in the /EFI/ folder, alongside windows' Microsoft and Boot folders, which, again, works for Linux, but not for Windows – no matter if I use UUID, Label, disk and partition number…

Best Answer

After some more digging, I found a small paragraph on the ArchLinux Wiki stating:

UEFI Syslinux does not support chainloading other EFI applications like UEFI Shell or Windows Boot Manager

And indeed, even after a feature request in 2013, they still haven't implemented this very important feature.

Solution was to install a different EFI-chainload-capable bootloader, such as GRUB. Installation guide for Arch here.

Related Question