从 EFI Grub2 链式加载旧版 Windows 7 引导加载程序?

从 EFI Grub2 链式加载旧版 Windows 7 引导加载程序?

我似乎找不到办法做到这一点。而且使用 Grub Customizer 添加条目也不起作用。第一个分区是安装 Linux 的地方。

我当前的分区布局

我想添加一个条目来启动到包含旧版(BIOS)Windows 引导加载程序的 Windows 7 分区。

答案1

正如 mook765 在评论中指出的那样,这无法通过 GRUB 实现。问题在于,大多数 EFI 模式引导加载程序和引导管理器(包括 EFI 模式版本的 GRUB)都可以在 EFI 模式下启动 OS 内核和/或链式加载到其他 EFI 程序;但它们无法启动 BIOS 模式引导加载程序,而这正是您启动现有 BIOS 模式版本的 Windows 所需要的。我知道这条规则有三个例外:

  • 固件自己的启动管理器-- 大多数具有 BIOS 模式支持(由兼容性支持模块或 CSM 提供;也称为传统模式启动支持)的最新 EFI 都提供了内置启动管理器,使您可以在原生 EFI 模式和 BIOS/CSM/传统模式启动之间切换。您通常在计算机开机时按 Esc、Enter 或功能键进入此启动管理器。这可能很尴尬,在某些情况下根本不支持。
  • 重新索引- 我的rEFInd 启动管理器支持从 EFI 模式切换到 BIOS 模式启动。在 Mac 上,此功能默认启用。但在基于 UEFI 的 PC 上,您必须编辑refind.conf:取消注释该scanfor行并确保这hdbios是其中一个选项。由于您尝试从第二个硬盘启动 Windows,因此您可能也需要取消注释该uefi_deep_legacy_scan选项——但我建议仅在没有该选项的情况下执行此操作不会产生启动 Windows 的选项时才这样做。
  • 改装-- 这是 rEFInd 的前身项目。它支持 Mac 上的 BIOS/CSM/传统模式启动仅有的。如果您的计算机是基于 UEFI 的 PC,那么它就无法完成这项工作。如果您有 Mac,您可以使用 rEFIt;但由于 rEFIt 自 2010 年以来就已停用,rEFInd(我仍在开发)可能是更好的选择。

请注意,所有这些选项都要求固件提供 CSM,并且启用它。据我所知,所有 Mac(带有最新固件)和大多数基于 UEFI 的 PC 都提供 CSM,但少数基于 UEFI 的 PC 缺少此功能。如果您有这样的计算机,您唯一的选择是将 Windows 安装转换为以 EFI 模式启动。请参阅这一页有关如何执行此操作的说明。即使您的计算机提供了 CSM,您可能也想采用这种方式,因为 CSM 会稍微减慢和复杂化启动过程。另一方面,设置 rEFInd 或使用内置启动管理器可能更容易。您可能需要在固件设置实用程序中启用 CSM。如何执行此操作的详细信息因计算机而异。通常,有一个名为“启动模式”的选项,您可以将其设置为“UEFI 或传统”,或这些选项名称的一些变体。

答案2

通常grub2-mkconfig > /tmp/test.file应该会显示它找到的内容,如果它确实找到了分区,您可以使用以下命令将其写入 grub.cfg 中:

sudo grub2-mkconfig > /boot/grub/grub.cfg

这会将您的 Windows 分区添加到 grub 菜单中。

相关内容