使 Syslinux 与 UEFI Windows 10 兼容

使 Syslinux 与 UEFI Windows 10 兼容

最近,我在主机上安装了 Windows 10 - 后来发现它破坏了我的整个 Linux 启动分区:

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

我让 Syslinux 和 Arch 正常工作,但现在我找不到成功创建 Syslinux 条目以启动 Windows 的方法。但是,如果我从 MB 启动菜单中选择“Windows 启动管理器”,它就可以正常启动。

我当前的 syslinux.cfg:(好吧,只是其中的一部分)

...
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

编辑1#:

我忘了提一下,我还在 /EFI/ 文件夹中安装了 UEFI syslinux,与 Windows 的 Microsoft 和 Boot 文件夹一起,同样,它适用于 Linux,但不适用于 Windows - 无论我使用 UUID、标签、磁盘和分区号...

答案1

经过进一步挖掘,我发现了一段关于ArchLinux 维基陈述:

UEFI Syslinux 不支持链式加载其他 EFI 应用程序,如 UEFI Shell 或 Windows Boot Manager

事实上,即使在 2013 年提出功能请求之后,他们仍然没有实现这个非常重要的功能。

解决方案是安装不同的支持 EFI-chainload 的引导程序,例如 GRUB。Arch 安装指南这里

相关内容