安装 Ubuntu 后如何将引导加载程序从 grub 切换到 UEFI bios?

xxx*_*222 2 boot grub2 uefi windows-10

当我的计算机安装了单系统 Windows 10 时,引导加载程序是 UEFI Bios,它具有许多功能,例如在引导时更改默认 GPU。安装 Ubuntu 后,引导加载更改为 grub。我只是想知道如何在这两个引导加载程序之间切换?

Rod*_*ith 6

了解两种不同工具之间的区别很重要:

  • 引导加载程序是将操作系统内核加载到内存中并将控制权传递给内核的程序。这些通常是特定于操作系统的,因此您必须使用 Windows 引导加载程序来引导 Windows,并使用 Linux 引导加载程序(例如 ELILO、GRUB 或 EFI 存根加载程序)来引导 Linux。
  • 引导管理器提供菜单或命令行,使您能够启动特定的引导加载程序或其他与引导相关的程序。专门用作引导管理器的程序不会直接启动操作系统内核,尽管它启动的引导加载程序会这样做。

这种区别非常简单易懂,但有一些复杂的因素会使这种区别看起来相当模糊:

  • 一些程序,包括 GRUB,既是引导加载程序又是引导管理器。GRUB 提供了一个选项菜单,就像一个引导管理器;但它也可以直接引导 Linux 内核。但是,GRUB 不能直接启动 Windows 内核,因此为了引导 Windows,GRUB 将控制权传递给 Windows 引导加载程序。Windows 引导加载程序也可以用作引导管理器,但它通常被配置为直接引导到 Windows,因此该功能不太重要——至少,当人们像 Linux 用户一样设置时。(像 EasyBCD 这样的 Windows 工具可以帮助配置 Windows 引导加载程序的引导管理器功能,但我自己对这个工具不是很熟悉。我的理解是它在基于 EFI 的计算机上仍然几乎没有用。)
  • 从 3.3.0 版开始,Linux 内核包含了一个称为EFI 存根加载程序的功能,可将其转换为自己的引导加载程序。因此,引导管理器(如 rEFInd 或 gummiboot/systemd-boot)可以开始看起来很像组合引导管理器/引导加载程序,因为引导管理器启动内核。关键的区别在于引导管理器通过使用 EFI 系统调用来启动内核,就好像内核是一个引导加载程序——技术上确实如此。

要记住的另一个问题是 EFI 规范包括一个最小的引导管理器,它内置在固件中,而不是存储在磁盘上。可以使用该efibootmgr工具从 Linux或使用bcdedit第三方EasyUEFI从 Windows配置此功能不幸的是,EFI规范包括NO对什么样的用户界面,它的启动管理器应该提出指导意见。因此,一台计算机的启动管理器可能具有相当不错的用户体验,但另一台计算机可能糟糕到无法使用的程度。此外,某些 EFI 存在导致它们忘记或忽略其引导管理器配置的错误。

现在,为了回答您的问题,目前尚不清楚是什么工具提供了消失的功能——它可能是计算机的内置引导管理器、Windows 引导加载程序,或者制造商作为自定义引导管理器安装的东西。通常,Windows 引导加载程序提供很少或没有选项,尽管它可以配置为显示带有一些选项的菜单。但是,如果您仍然可以从 GRUB 引导到 Windows,那是通过 Windows 引导加载程序完成的,因此,如果显示这些选项的是 Windows 引导加载程序,我希望您仍然可以使用它们——但是之后您从GRUB选择Windows。(OTOH,也许安装 Linux 已导致 Windows 引导加载程序以您不想要的方式调整其选项。)

有时添加引导条目(通过efibootmgr)会导致计算机的固件删除其他条目或以其他方式调整其操作。如果这是您的问题的原因,您将不得不联系制造商或(可能更好)在特定于制造商的论坛上询问它,因为您看到了与您的计算机不同的功能。不幸的是,制造商客户对此的支持通常很糟糕,但是如果您朝这个方向四处走动,您可能会发现一些东西。解决方案(如果有)很可能是访问计算机的内置引导管理器,这通常可以通过在引导过程的早期按 Esc、Enter 或功能键来完成。(没有关于如何做到这一点的标准化。)

如果您看到的功能来自特定于制造商的引导程序,则可以将其添加到 GRUB 菜单;但是您需要找到提供该功能的 EFI 程序,然后手动或使用GRUB Customizer 之类的工具将其添加到菜单中或者,我自己的rEFInd可能会自动选择制造商的引导加载程序并将其显示为菜单选项,但我不能保证。您可以在EFI 系统分区 (ESP)上查找可能的程序,该分区通常安装/boot/efi在 Ubuntu 中。EFI 程序通常有.efi扩展名,所以你可以寻找那些。请注意,许多制造商也提供了他们自己的类似 ESP 的分区,用于存储 EFI 工具和配置文件,但这些分区可能不会在 Ubuntu 中自动挂载。您需要使用磁盘实用程序parted来定位它们,然后将它们挂载到文件管理器中或使用mount.