Windows 8 没有出现在 Grub 中

Windows 8 没有出现在 Grub 中

我正在尝试让 Windows 8 出现在我的 Grub 菜单下。

  • 处理器:英特尔 4790k
  • MB:华硕 Hero VII UEFI BIOS
  • 显卡:EVA 970GTX
  • SSD 250G 850 三星 Evo
  • SSD 120G 850 三星 Evo

我在 上安装了 Windows /dev/sda,在 上安装了 Ubuntu 14.0.4.02 /dev/sdb

Ubuntu 也设置了 EFI 启动分区。

我运行了启动修复程序,启用了 EFI 启动分区,并将 Ubuntu 作为默认操作系统。

答案1

您有两个磁盘:

  • /dev/sda是一个装有 Windows 的 MBR 磁盘,并且在 MBR 中具有 Windows BIOS 引导加载程序。
  • /dev/sdb是带有 EFI 系统分区 (ESP) 的 GPT 磁盘。ESP 包含 GRUB 和 Windows EFI 引导加载程序,而 MBR 包含第一阶段 GRUB BIOS 引导加载程序。

请注意,您拥有适用于 Windows 和 Linux 的 BIOS 和 EFI 引导加载程序,因此不清楚您的操作系统是如何引导的——是在 BIOS 模式还是在 EFI 模式下。鉴于 Windows 安装在 MBR 磁盘上,我的直觉是它是在 BIOS 模式下安装的(并且应该可以引导);但可以想象它是在 EFI 模式下引导的,因为您的 ESP 中似乎有一个 Windows EFI 引导加载程序,即使它在另一个磁盘上。(另一方面,这些文件可能是由 Boot Repair 放置在那里的,它有时会“劫持”这些名称以获取 GRUB 的副本。)您的 Boot Repair 和 Boot Info Script 输出都包含efibootmgr运行,这表明它们是从 EFI 模式引导运行的;但它们看起来可能是从实时 CD 运行的,因此这不一定能诊断您的常规安装如何引导。您的grub.cfg文件有一些 EFI 特定的功能,这也表明 Ubuntu 的安装是 EFI 模式,但这可能会产生误导。

解开这个设置是可能的,但会相当棘手。不过,有一个潜在的捷径:

  1. 下载我的 USB 闪存驱动器或 CD-R 版本的rEFInd 启动管理器。
  2. 利用您下载的文件准备启动介质。
  3. 启动 rEFInd 介质。应出现其菜单,其中显示 Ubuntu 和 Windows 的选项。请注意,到目前为止(以及接下来的几个步骤中)使用 rEFInd 的目的是确保 Ubuntu 在 EFI 模式下启动,而不是在 BIOS/CSM/旧模式下启动。
  4. 测试启动选项。我预计至少有一个 Ubuntu 选项可以正常启动,但 Windows 尚不确定。(该选项可能会启动,然后挂起或显示错误消息。)
  5. 如果 rEFInd 可以正常启动 Ubuntu,尤其是它也可以启动 Windows,请在 Ubuntu 中安装 rEFInd PPA 或 Debian 包。
  6. 移除 rEFInd USB 驱动器或 CD-R 并重新启动。rEFInd 应该会启动,并从您的硬盘启动。
  7. 从 rEFInd 启动到 Ubuntu。
  8. 如果 rEFInd 确实不是启动 Windows,编辑/boot/efi/EFI/refind/refind.conf文件:取消注释该scanfor行并确保它hdbios在选项中。此操作激活 rEFInd 对从 EFI 模式启动切换到 BIOS 模式启动的支持。这个想法是让 rEFInd 向您显示以 BIOS/CSM/传统模式启动 Windows 的选项。
  9. 重新启动后,您应该会看到一个带有硬盘标志的新灰色菱形选项。运气好的话,这将启动 Windows(在 BIOS/CSM/传统模式下)。
  10. 如果新的 BIOS/CSM/legacy 选项无法启动 Windows,请取消注释该uefi_deep_legacy_scan选项refind.conf并重试。

请注意,如果您想测试 rEFInd 在 BIOS/CSM/传统模式下启动 Windows 的能力,您可以延迟将 rEFInd 安装到硬盘上并编辑EFI/refind/refind.confUSB 闪存驱动器上的文件。如果您想在安装 rEFInd 之前确保它可以启动两个操作系统,您可以这样做。

最终结果是,您将以 EFI 模式启动 Ubuntu,并以 EFI 模式或 BIOS 模式启动 Windows(无论使用哪种模式进行安装)。rEFInd 菜单上可能有额外的启动选项,但您可以通过进一步编辑来修剪它们refind.conf。特别是,您可以使用dont_scan_filesdont_scan_dirsdont_scan_volumes。您还可以删除无意义的启动文件,例如如果“Windows”启动文件(/boot/efi/EFI/Microsoft/Boot/*.efi)是 Boot Repair 创建的 GRUB 副本。

答案2

我设法解决了这个问题,但是我必须重新安装 Windows 8.1 和 Ubuntu 14.04。我必须通过禁用 CSM 并从 UEFI 模式启动来确保两个操作系统都安装在 UEFI 上。

我也遵循了以下指南:

http://www.linuxbsdos.com/2014/05/31/dual-boot-ubuntu-14-04-windows-7-on-a-pc-with-2-hdds-and-uefi-firmware/

非常感谢大家的帮助,尤其是@Rod Smith 帮我解决了引导加载程序的问题。

相关内容