在Windows 8上的UEFI上双启动Ubuntu 12.10(GRUB – 错误:无法找到命令drivemap)

在成功安装Ubuntu 12.10 amd64后你好,我现在无法启动Windows 8。

这是我的行动:

  1. 从Windows 8计算机管理为Ubuntu制作房间(15 GB)
  2. 使用EFI启用Ubuntu 12.10 amd64 LiveUSB并启用安全启动
  3. 最后创建了2个新分区(13 GB Ext4 Root和2 GB Swap)
  4. 选择Windows 8 EFI System Partition来安装bootloader

Grub在启动时给了我:

  1. Ubuntu(工作没有问题)
  2. Windows恢复环境(很多错误)
  3. Windows 8(下面描述了2条错误消息)

2条错误消息是:

  • error: can't find command drivemap.
  • error: invalid EFI file path

我找到了临时解决方案。

向GRUB bootmenu添加自定义条目

将以下代码附加到/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不是启动时第一个硬盘上的第一个分区,那么您的ESP就不同了! 例如hd1,gpt2用于第二个驱动器上的第二个分区。

如果驱动器使用MBR和传统分区hd0,gpt1hd0,msdos1 hd0,gpt1 hd0,msdos1分别更改为hd0,msdos1

将更改应用于GRUB

只需运行以下命令,该命令应生成新的GRUB配置,包括新的自定义条目:

 sudo update-grub 

现在重新启动,您应该能够立即启动Windows 8。 如果没有,并且Windows抱怨BCD配置损坏,请继续使用超级用户: 如何修复Windows 8 EFI Bootloader?


警告:在某些情况下,如果启动Windows 8,GRUB将被Windows启动管理器替换为默认启动管理器。

GRUB中错误的Windows条目是由于这个错误: https : //bugs.launchpad.net/ubuntu/+source/grub2/+bug/1024383

解决方案:从liveCD(或liveUSB)运行Boot-Repair的Recommended Repair

我找到了一种关闭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.ef并重置它直到卡住,但现在我很高兴。

我不知道是否只是启动W8就足够了,或者你是否必须登录然后重新启动。 也许有耐心的人(我在这方面工作超过半天)可以说出来。

我在我的Asus-x202笔记本电脑上遇到了同样的问题(运行W8和Ubuntu 13.04)。

对于我来说,稍微烦人的工作对我来说已经足够了:在启动菜单中转到系统(或者从一开始使用f2启动bios)。 如果使用覆盖引导,Windows将照常启动。

“覆盖引导”是主板配置菜单的“引导”选项卡上的菜单。 它允许您立即选择并立即启动安装在您的装备上的任何引导加载程序。

我的新款HP Pavillion Sleekbook,Model 15-b142dx也有类似的问题。 它预装了W8。 我能够从Windows中重新调整Windows分区的大小,然后从拇指驱动器安装64位Ubuntu 13.04。 但是,在重新启动时,W8正常启动,没有启动菜单。 所以,我使用了“boot-repair”,这使系统无法启动。 在启动时,它将打印:

 Failed to open \EFI\Microsoft\Boot\grubx64.efi - 800000000000000E Failed to load grub Failed to open \EFI\BOOT\grubx64.efi - 800000000000000E Failed to load grub Failed to open \EFI\BOOT\grubx64.efi - 800000000000000E Failed to load grub 

然后它会关闭。

经过一些试验和错误,我发现在启动过程中按F10会将我带到BIOS,我可以在那里禁用安全启动。 下一次启动时,我从grub获得了一个LONG菜单,其中包含许多条目:

 Windows UEFI bkpbootmgfw.efi Windows Boot UEFI loader EFI/HP/BIOSUpdate/CryptRSA32.efi . . . 

这些都包含在一个文件“/etc/grub.d/25_custom”中。 我制作了该文件的备份副本,然后删除了除Windows Boot UEFI加载器之外的所有条目。 (这是允许W8启动的条目之一)。 然后我运行了“update-grub”,并使用了更好的启动菜单,并且可以启动任一操作系统。