您好,成功安装 Ubuntu 12.10 amd64 后,我现在无法启动 Windows 8。
以下是我的操作:
- 从 Windows 8 计算机管理中为 Ubuntu 腾出空间(15 GB)
- 使用 EFI 启动 Ubuntu 12.10 amd64 LiveUSB 并启用安全启动
- 最后创建了 2 个新分区(13 GB Ext4 Root 和 2 GB Swap)
- 选择 Windows 8 EFI 系统分区来安装引导加载程序
Grub 在启动时给出如下信息:
- Ubuntu(运行无问题)
- Windows 恢复环境(大量错误)
- Windows 8(下面描述了 2 条错误消息)
这 2 条错误消息是:
error: can't find command drivemap.
error: invalid EFI file path
答案1
我找到了一个临时的解决办法。
向 GRUB 启动菜单添加自定义条目
将下面的代码附加到/etc/grub.d/40_custom
。
menuentry "Windows 8" {
insmod part_gpt
insmod chain
set root='(hd0,gpt1)'
chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}
您可以使用Ctrl+ Alt+T打开终端并运行
sudo nano /etc/grub.d/40_custom
,然后复制并粘贴代码。最后按Ctrl+O保存并按Ctrl+X离开。
小心: hd0,gpt1
这是我的 EFI 系统分区 (ESP) 的 ID。如果您的 ESP 不是第一个硬盘上的第一个分区在启动期间,那么您的就不同了!例如,hd1,gpt2
第二个驱动器上的第二个分区。
如果驱动器使用 MBR 和传统分区,则替换part_gpt
为,并分别更改为。part_msdos
hd0,gpt1
hd0,msdos1
将更改应用到 GRUB
只需运行以下命令,它将生成一个新的 GRUB 配置,包括新的自定义条目:
sudo update-grub
现在重新启动,您应该能够启动 Windows 8。如果不行,并且 Windows 抱怨 BCD 配置损坏,则继续以超级用户身份运行:我如何修复 Windows 8 EFI Bootloader?
警告:在某些情况下,如果您启动 Windows 8,GRUB 将被 Windows 启动管理器取代为默认启动管理器。
答案2
GRUB 中的错误 Windows 条目是由于这个错误造成的:https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1024383
解决方案:跑步启动修复来自Recommended Repair
liveCD (或者 liveUSB)。
答案3
我找到了一种让 Windows 8 关机的方法。请参阅 https://superuser.com/questions/499923/preinstalled-windows-8-and-linux-uefi-dual-boot-on-a-laptop/528581
在 W8 下,在提升权限的命令窗口中,运行 powercfg /h off。执行此操作时,W8 可能已经覆盖了 EFI 分区。我花了几次迭代来更改 bootmgfw.efi 并重置它,直到它卡住,但现在我很高兴。
我不知道启动 W8 是否足够,或者是否必须登录然后重新启动。也许有耐心的人(我花了半天多时间研究这个问题)可以告诉你。
答案4
“覆盖启动”是主板配置菜单“启动”选项卡上的一个菜单。它允许您选择并立即启动您设备上已安装的任何启动加载程序。