这个问题类似于回答 的在 UEFI 上与 Windows 8 双启动 Ubuntu 12.10(GRUB - 错误:找不到命令驱动器映射),但 Windows 8 安装在旧式分区驱动器。
无需转换为 GPT 或使用 DISM,需要执行哪些步骤才能使安装在 UEFI 模式下启动?
我知道一般来说不建议混合 UEFI 和传统启动,但在某些设置中它会很方便。
答案1
是的,即使您将 Windows 8 安装在旧式分区磁盘 (MS-DOS/MBR) 上,也可以以 UEFI 模式启动它。当然,您需要在另一个 GPT 分区磁盘上安装兼容 UEFI 的 GRUB。
在 Windows 中,安装新的启动配置到卷 C:通过运行以下命令:
bcdboot C:\Windows /s C: /f uefi
在 UEFI 模式下启动时,这不仅会创建新的启动配置
C:\EFI\
,还会在 NVRAM 中注册新的 UEFI 引导加载程序。您可以稍后在efibootmgr
Ubuntu 中删除该条目(有关说明,请参阅:如何在 BIOS 启动菜单中删除“Ubuntu”?(UEFI))。当然你也可以选择其他位置,但这种方法应该是最简单的。有关详细信息,
bcdboot
请参阅相应的Microsoft Technet 文章。在 Ubuntu 中,添加自定义 GRUB 菜单项添加以下几行到
/etc/grub.d/40_custom
:menuentry "Windows 8 (BCD-UEFI configuration on system drive /dev/sda2)" --class windows --class os { insmod part_msdos insmod ntfs insmod search_fs_uuid insmod chain set root='hd0,msdos2' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 2ACC7043CC700B79 else search --no-floppy --fs-uuid --set=root 2ACC7043CC700B79 fi chainloader /EFI/Microsoft/Boot/bootmgfw.efi }
请注意,您需要编辑以下参数如果你的配置不同:
- 此项配置为从
msdos2
第一个硬盘驱动器(hd0
或ahci0
)的第二个分区()启动。 - 您还需要将文件系统 UUID (
2ACC7043CC700B79
) 替换为您的 UUID。在此示例中,您可以运行sudo blkid /dev/sda2
以获取 UUID 或启动 GParted。 - 提醒:此示例涉及具有旧分区表的驱动器。如果您的驱动器是 GPT,则将其替换
msdos
为gpt
。
- 此项配置为从
最后运行
sudo update-grub
生成新的配置。
答案已从https://askubuntu.com/q/377807/40581因为它看上去不合适。