UEFI 系统上的 Ubuntu 13.04,以 Windows 启动管理器作为主加载器

UEFI 系统上的 Ubuntu 13.04,以 Windows 启动管理器作为主加载器

在我的旧笔记本电脑(旧式 BIOS、MBR 磁盘)上,这完全可以正常工作:

  • 我打开电脑并看到 Windows 启动管理器

  • 我使用 EasyBCD(或 BootPart,或其他程序)在 BCD 菜单中添加一个选项,这样我就可以启动到 GRUB,然后进入 Ubuntu

我不知道如何在我的新笔记本电脑(UEFI、GPT 磁盘)上执行此操作,无论是在 UEFI 还是传统模式下。

目前我已经在笔记本电脑上安装(甚至启动了!)Ubuntu,但仅借助外部 GRUB(在 USB 闪存驱动器上)。

如何在 UEFI 笔记本电脑的 Windows 启动管理器中添加 GRUB 作为选项?

(不,我不想更改我的主要引导加载程序。所以不,我不想用 GRUB 覆盖 Windows 引导加载程序。)

答案1

据我所知,你不能。据我所知,Windows 引导加载程序不提供任何启动非 Windows EFI 引导加载程序的方法。不过,我可能错了;我承认我对 Windows 引导加载程序的了解有限。

相反,你可以配置任意数量的Linux 的 EFI 引导加载程序和引导管理器处理引导选择工作。当一切正常时,GRUB 可以完成这项工作;但从 13.04 版开始,Ubuntu 在安装时没有正确设置 GRUB 以进行双引导。EFI 错误还可能导致其他问题。要解决 Ubuntu GRUB 配置问题,最简单的解决方案有两个:

  • 跑步引导修复在系统上。如果成功,它将重新安装并重新配置 GRUB,以便可以启动 Windows。
  • 安装我的rEFInd 启动管理器。最简单的方法是在 Ubuntu 下安装 Debian 软件包。(不过,请确保您的 ESP 已安装在 上/boot/efi。)安装后,rEFInd 应能够直接启动 Windows 或 Linux,绕过 GRUB。

请注意,这两种解决方案都不能完全取代 Windows 引导加载程序;它们都只是运行另一个引导程序(GRUB 或 rEFInd)Windows 引导加载程序。如果您愿意,可以在此处停止阅读,但了解一些背景知识可能有助于理解这一点:

启动多重启动计算机时,启动管理器让您能够通过菜单在两个或多个操作系统之间进行选择。大多数 EFI 都包含一个笨拙但内置的启动管理器。rEFInd 也是一个启动管理器,GRUB 也包含一个启动管理器。引导加载程序,相比之下,EFI 会加载操作系统内核和任何相关文件并启动内核运行。EFI 不包含引导加载程序,因此每个操作系统必须提供一个。GRUB 是 Linux 的引导加载程序(但不是 Windows 的),除了作为引导管理器之外,Linux 内核(自 3.3.0 版以来)可以作为自己的引导加载程序,Windows 也提供自己的引导加载程序。rEFInd 是不是引导加载程序;要启动 Linux,它依赖于 EFI 存根加载程序或其他引导加载程序来加载内核。

因此,无法用 GRUB 替换 Windows 引导加载程序,因为 GRUB 不是 Windows 引导加载程序。不过,GRUB 可以使用其引导管理器功能链式加载到 Windows 引导加载程序。

答案2

毕竟这是可能的 - 将 .efi 引导加载程序添加到 Windows 启动管理器中,但至少在我的主板上这是一个非常糟糕的主意,因为更改是永久性的 - 例如从 Windows 启动管理器启动到 Ubuntu 后,您将始终启动到 Ubuntu,因为它直接编辑 UEFI 启动配置。

也只能通过手动编辑 BCD 文件来实现这一点。您可以查看此问题的可接受答案:Windows 8.1 UEFI x64 无法启动 UEFI 映像更多细节。

答案3

场景是 Windows 启动管理器是 UEFI 上的首选启动选项。

您始终可以使用固件中的启动设备选择键(DELL 上为 F12),它会为您提供所有已安装操作系统的列表作为启动选择。

如果启动过程太快,您可以随时将 Windows 启动菜单设置为文本样式,超时时间为 10 秒,然后从那里使用(DELL 上的 ESC 键,应该很常见)退出到固件启动选择。

如果你使用的是 Windows 7/8/8.1,并且想要直接启动到 Linux(Ubuntu),你可以使用一个名为引导下一步它允许直接启动到 UEFI 上任何已安装的操作系统(Windows、Linux)。

相关内容