安装后,我该怎么做才能从 BIOS 更改为 (U)EFI?

安装后,我该怎么做才能从 BIOS 更改为 (U)EFI?

我这里有一台新买的笔记本电脑。这是我使用的第一台带有 (U)EFI 的设备。起初我没有运行安装,所以我切换回 BIOS 传统模式并在该模式下安装了 ubuntu。

好的。现在我想将预装的 Windows 重新添加到引导加载程序中以允许多重引导。这只能通过 EFI 来实现。所以我四处搜索,找到了此链接。我做了一些修改,因为经过一番尝试后,我能够在 efi 模式下启动 live cd 上的 grub,然后手动启动到 linux。

所以最后我在 EFI 系统分区上安装了 grub,并且能够直接从 EFI 启动到 linux。现在我已经看到,有grub.cfg两个位置:/boot/grub//boot/efi/EFI/grub/。运行时,update-grub只有 中的版本/boot/grub/会受到影响。对于(手动)安装,这不是问题,但任何内核更新都不会改变重要的/boot/efi/EFI/grub/grub.cfg。我尝试创建一个符号链接,但似乎文件在重写之前就被删除了。所以链接丢失了。

我的问题详细如下:

  • 我该怎么做才能自动更新?我应该将mount -o bind目录/boot/efi/EFI/grub转到吗/boot/grub?还有更好的解决方案吗?
  • 是否可以让 grub 查看另一个位置?
  • 更新将grub.efi安装在哪里?
  • 还有其他我至今忘记的问题吗?

答案1

据我上次检查,Ubuntu 版本的 GRUB 2 将 GRUB 二进制文件放在 EFI 系统分区 (ESP) 上,该分区/boot/efi在 Linux 中安装在。GRUB 配置文件(grub.cfg和各种支持文件)保留/boot/grub在另一个分区上。(在我看来,这是一个糟糕的设计,但那是另一回事……)因此,如果您使用 Ubuntu 的 GRUB 二进制文件,GRUB 的菜单应该会自动更新。

但是,如果您从源代码或其他人提供的二进制文件安装 GRUB,则其工作方式可能会有所不同,grub.cfgESP 上会同时存在 GRUB 二进制文件及其支持文件。这种设置实际上更安全,但 Ubuntu 的脚本不支持它,因此您必须在每次内核更新后手动更新。根据您的描述,您似乎有这种设置,尽管您链接到的网站似乎描述了使用 Ubuntu 的二进制文件进行设置,这是一个令人费解的不一致之处。您是否在某个时候尝试了其他方法,或者偏离了网站的说明来使其工作?您可以通过更改其中一个文件中的启动选项描述grub.cfg(假设您有两个文件)进行测试,然后查看重新启动时该更改是否出现在 GRUB 的菜单中。

假设您确实有一个在 ESP 上查找其grub.cfg文件的 GRUB 二进制文件,则有多种可能的解决方案,包括:

  • 安装 Ubuntu 版本的 GRUB 来覆盖您现有的版本。这样做很危险,因为它可能无法工作,因此可能导致无法启动安装。(您的初始描述表明您在 EFI 模式下的初始安装无法启动,这表明您的 Ubuntu 版本的 GRUB 可能有问题。)
  • 从 GRUB 切换到另一个引导管理器/引导加载程序作为您的主要启动程序。我自己的重新索引可能很容易运行,并且会自动处理内核更新。如果您尝试这样做,可能会产生无法启动的安装的风险,但风险小于用另一个 GRUB 替换正在运行的 GRUB,因为即使新启动程序完全失败,您也应该能够使用固件的启动管理器通过 GRUB 进行启动。

还有一条评论:新电脑出厂时总是会启用安全启动,这又增加了一个需要克服的障碍。Ubuntu 12.10 及更高版本都支持安全启动,但这并不总是有效。大多数第三方引导加载程序(包括 rEFInd)都需要额外的工作才能使用安全启动。因此,如果您还没有这样做,我建议您在固件中禁用安全启动。如果您想在安全启动处于活动状态的情况下启动,最好在安装引导加载程序后启用它,因为您将能够测试引导加载程序没有首先进行安全启动,然后将安全启动添加到图片中,并在了解基本引导加载程序配置正在运行的情况下对其进行调试。

答案2

如果 grub 在 EFI 分区中没有配置,它似乎会在下面查找/boot/grub

boot-repair导致我的 EFI 分区崩溃。我无法再启动任何 EFI 启动选项。不幸的是,我不知道到底是什么导致了崩溃,所以我无法提交错误。

由于我的整个 EFI 设置崩溃了,我不得不重新安装 Windows 和 Ubuntu 一次才能使一切运行,但现在看来一切设置都正确了。

相关内容