将非 UEFI 引导目标添加到 UEFI grub

vel*_*lis 4 grub2 dual-boot uefi

我的系统中有两个磁盘:

  1. 非 UEFI Windows 10 安装
  2. UEFI kubuntu 16.10

这个系统是我的家庭服务器。我正在从 Windows 迁移到 Kubuntu,但需要一段时间,因为我还不能复制整个功能。与此同时,我想运行双启动,以便在我在任何空闲时间设置 Kubuntu 部署时,我可以按原样运行服务器(Windows)。所以:

我想将 Windows 引导添加到 grub 的目标列表,但是update-grub没有找到我的 Windows 引导加载程序。

我猜问题在于它正在寻找 EFI 引导,而只有传统 BIOS 引导。

有没有办法可以将我的 Windows 安装添加为 grub 目标?

小智 5

由于 UEFI 的工作方式(这可能是您系统上的工作方式),不可能让 GRUB 引导到不符合 UEFI 的操作系统,因为 GRUB 无法决定使用哪种引导模式,而 UEFI 将不加载非 UEFI 操作系统。

  • *GRUB* 无法做到这一点,但 GRUB 并不是唯一可用的 EFI 引导管理器。有关其他建议,请参阅我的回答。 (2认同)

Rod*_*ith 5

使用 GRUB 无法做到这一点;但是,使用我的rEFInd 启动管理器是可能的:

  1. 使用 Debian 软件包或 PPA 安装 rEFInd。
  2. 编辑/boot/efi/EFI/refind/refind.conf:取消注释该scanfor行并确保它hdbios位于选项之中。
  3. 重启。

结果应该是,在 rEFInd 屏幕中,启动 Ubuntu 的选项和启动 Windows 的灰色菱形选项。(如果您有多个磁盘,则可能有多个钻石启动选项,每个磁盘一个。如果您有多个磁盘,但只有一个这样的选项不起作用,请取消注释uefi_deep_legacy_scan中的该选项refind.conf。)

如果您想在硬盘上安装任何内容之前测试此过程,可以使用 rEFInd 的 USB 闪存驱动器映像(可在其下载页面上找到)来完成此操作。您必须EFI/refind/refind.conf按照刚才的描述在 USB 驱动器上进行编辑 - 但安装点当然可以是任何东西,而不是/boot/efi.

还有一点需要注意:rEFInd 可以在大多数基于 EFI 的计算机上启动 BIOS 模式引导加载程序,但并非在所有计算机上都可以。一些早期的 EFI 使用传统 BIOS 之上的 EFI,而不是带有 CSM 的 EFI。rEFInd 将无法重定向到早期 EFI 上的 BIOS 模式引导加载程序。(对于缺少底层 BIOS 或 CSM 的系统也是如此,但如果您能够在 BIOS 模式下启动 Windows,那么您显然没有这样的系统。)

您可能还需要考虑其他三个选项:

  • 在 BIOS/CSM/legacy 模式下重新安装 Ubuntu。您需要学习控制 CSM,以便可以以正确的模式启动安装程序。有关此主题的更多信息,请参阅我的此页面。
  • 安装适用于 Linux 的 BIOS 模式引导加载程序。即使在 EFI 模式下也可以执行此操作,但如果您不熟悉安装和配置引导加载程序,这可能是一项具有挑战性的任务,并且很容易出错。不幸的是,我没有指向提供分步说明的页面的指针,但这样的页面很可能存在。不过,作为一般建议,引导修复应该能够完成这项工作——如果您在 BIOS 模式下引导 Ubuntu 紧急磁盘来运行引导修复。(有关控制启动模式的信息,请参阅我的 CSM 链接。)
  • 将 Windows 转换为以 EFI 模式启动。这篇博文描述了如何做到这一点。这项任务难度适中,存在一定风险。总体而言,它可能比为 Linux 安装 BIOS 模式引导加载程序的风险更大;但是,我链接到的文档可以提供很大帮助。