我有一台平板电脑使用 GRUB2 在 UEFI 32 位上运行 Windows x86 和 Ubuntu x64(混合模式)安装。我尝试过启动 Windows x64WinPE 映像WinPE image使用 wimboot程序在 GRUB2 上因为它似乎支持 Intel IA。问题是,当它启动时,会出现彩色屏幕,我必须强制关机。我能做些什么让它启动吗?或者它与我的硬件不兼容?
为了使其启动,我使用 iso 安装了一个循环设备。我在 grub2 上的配置:
menuentry "Windows 10 64 bits" {
insmod fat
insmod iso9660
set root=(hd0,gpt3)
loopback loop /winpe.iso
linux16 /wimboot
initrd16 \
newc:bcd:(loop)/Boot/BCD \
newc:boot.sdi:(loop)/Boot/boot.sdi \
newc:boot.wim:(loop)/sources/boot.wim
}
并且 GRUB 在加载时没有显示任何错误。
答案1
iPXE 项目中的 wimboot 默认构建为 x64 EFI 和“内核兼容”启动映像的组合,这就像启用了 EFI_STUB 的 Linux 内核。因此,关于 wimboot 是 16 位二进制文件的答案是不正确的,任何在 EFI 模式下运行的东西都应该调用 wimboot,因为它是一个 efi 二进制文件。要么是 Grub 缺少此功能,要么是它正确检测 EFI 二进制文件的实现存在错误。还请注意,在 EFI 模式下运行时,支持文件(bcd、boot.sdi、boot.wim 等)不应进行 cpio 打包,而应仅加载到 efifs 内存中。
答案2
GRUB2 UEFI 不支持 linux16 和 initrd16 命令
GRUB2 UEFI 使用 linuxefi 和 initrdefi
wimboot 是 16 位二进制文件,GRUB2 无法在 UEFI 模式下加载它
如果你像这样编辑你的配置 linuxefi /wimboot
结果会像这样错误 no efi header
所以到目前为止,在 GRUB2 UEFI 中加载 Winpe ISO 是不可能的
在 GRUB2 UEFI 模式下启动 Winpe 的唯一方法是将 Winpe iso 的内容提取到 fat32 分区,并且该分区不能包含任何 Windows 操作系统。
1- 为 Winpe Fat32 分区添加标签,将其命名为 Winpepartition.tag 之类的任何名称
2- 在 grub2 上配置:menuentry“Windows 10 64 位”{ insmod part_gpt insmod chain search --file --no-floppy --set=root /Winpepartition.tag chainloader /efi/boot/bootx64.efi }