无法启动 Windows - Linux + Win8 的 UEFI 启动问题

无法启动 Windows - Linux + Win8 的 UEFI 启动问题

我在安装了Win8的PC上安装了openSUSE(12.2)。

一开始出现了问题,无法启动,经过一些“修复”后,Linux 启动了,但是当grub2-efi Windows 8我进入时出现此错误:

错误:找不到命令‘drivermap’
错误:无效的 EFI 文件路径

首先,我检查过,我的电脑里/boot/EFI/没有 Windows.efi文件,只有 openSUSE 文件。

我已经尝试过以下命令:

grub2-efi-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi 

我得到了:

grub2-efi-probe:错误:无法获取 /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi 的规范路径。”

我也尝试修改/boot/grub2-efi/grub.cfg并添加:

menuentry "Windows 8 UEFI" {
  insmod part_gpt
  insmod fat
  insmod search_fs_uuid
  insmod chain
  set root='(hd0,gpt4)'
  search --fs-uuid --no-floppy --set=root 4f84-ee2e
  chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi
}

正如一些网站所建议的那样......

我也尝试过:

menuentry "Microsoft Windows Vista/7/8 x86_64 UEFI-GPT" {
  insmod part_gpt
  insmod fat
  insmod search_fs_uuid
  insmod chain
  search --fs-uuid --set=root $hints_string $uuid
  chainloader /EFI/Microsoft/Boot/bootmgfw.efi

}

但没有运气。

我猜 Win EFI 文件已被删除,我需要它来启动 Win?我说得对吗?

在这种情况下,我在哪里可以找到它? 是否可以在不重新安装 Windows 的情况下解决此问题(我没有 DVD)?

编辑:

sudo ls -l $(find /boot/efi -iname "*.efi")
root's password:
-rwxrwxr-x 1 root root 665600 Jan  8  2013 /boot/efi/EFI/opensuse/grub.efi
-rwxrwxr-x 1 root root 120832 Mar 11  2013 /boot/efi/EFI/opensuse/grubx64.efi

答案1

您的两个 GRUB 配置条目中的第二个更接近正确。我通常提供的示例如下所示:

menuentry "Windows" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

您的示例缺少一行set root,您需要针对您的系统进行自定义。(它应该指向您的EFI 系统分区 (ESP)

或者,你可以启动 Linux 并安装我的rEFInd 启动管理器。rEFInd 比 GRUB 简单得多,而且手动管理配置也更容易;但由于 OpenSUSE 并未正式支持它,因此您更有可能必须手动配置它。(当然,您现在正被迫手动配置 GRUB,所以这可能并不是 rEFInd 的缺点!)关于 rEFInd 的一个警告:如果您在启用安全启动的情况下启动,则可能需要调整安全启动配置。特别是,我最近发现 Fedora 和 OpenSUSE 版本的 shim 使用不同的文件名,因此您可能需要尝试使用这些文件名或在固件中禁用安全启动。

相关内容