在 Windows 8 上的 UEFI 上双引导 Ubuntu 12.10(GRUB - 错误:找不到命令驱动映射)

Kou*_*ros 9 dual-boot uefi windows-8 secure-boot

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

以下是我的行动:

  1. 从 Windows 8 Computer Management 为 Ubuntu 腾出空间 (15 GB)
  2. 使用 EFI 启动 Ubuntu 12.10 amd64 LiveUSB 并启用安全启动
  3. 最后创建了 2 个新分区(13 GB Ext4 Root amd 2 GB Swap)
  4. 选择 Windows 8 EFI 系统分区来安装引导加载程序

Grub 在启动时给我:

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

2 条错误消息是:

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

Kou*_*ros 6

我找到了一个临时解决方案。

向 GRUB 引导菜单添加自定义条目

将下面的代码附加到/etc/grub.d/40_custom.

menuentry "Windows 8" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}
Run Code Online (Sandbox Code Playgroud)

您可以使用Ctrl+ Alt+T打开一个终端并运行sudo nano /etc/grub.d/40_custom,然后复制并粘贴代码。最后然后按Ctrl+O保存和Ctrl+X离开。

注意: hd0,gpt1这是我的 EFI 系统分区 (ESP) 的 ID。如果您的 ESP 不是启动期间第一个硬盘驱动器上的第一个分区,那么您的就不同了!例如hd1,gpt2,对于第二个驱动器上的第二个分区。

更换part_gptpart_msdos,如果驱动器使用MBR与传统划分,改变hd0,gpt1hd0,msdos1分别。

将更改应用到 GRUB

只需运行以下命令,它就会生成一个新的 GRUB 配置,包括新的自定义条目:

sudo update-grub
Run Code Online (Sandbox Code Playgroud)

现在重新启动,您现在应该可以启动 Windows 8。如果没有,并且 Windows 抱怨 BCD 配置损坏,那么继续超级用户:如何修复 Windows 8 EFI 引导加载程序?


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