突然无法加载 GRUB(UEFI 问题)

突然无法加载 GRUB(UEFI 问题)

上次我使用 Ubuntu 安装时昨夜。今天,当我启动它时,它告诉我不允许启动 grubx64.efi。很简单。我知道如何从我的 BIOS 重新启用它。

重新启用它后,我尝试再次启动并出现以下错误:

错误:安全启动禁止从 (hd0, gpt7)/boot/grub/normal.mod 加载模块

ls然后,该错误下方出现了某种“grub resuce”CL 提示。除了这是有效命令外,我从未弄清楚。使用ls显示各种(hdx , *)文件/目录/驱动器。

请注意,尽管有各种教程,我从未从 GRUB 加载 Windows 8,因此我使用 rEFInd 在加载 GRUB(反过来,我使用它来加载 Ubuntu)和 Windows 8 之间切换。

我该如何重新启用 GRUB(并进入 Ubuntu)?有人知道是什么导致了这个问题吗?我记得昨晚安装了 Ubuntu 更新,但我记不清是否有任何与 UEFI 特定相关的内容。

答案1

我还没有找到确切的解决方案,但我设法通过一个更“通用”(缺乏更好的术语)的解决方案回到 Ubuntu。

当我查看 BIOS 时,我注意到一个关闭安全启动的选项(我不知道为什么我以前在双启动 Win8 和 Precise 时没有注意到它)。我关闭了它,然后,GRUB 加载。更重要的是,我现在可以从 GRUB 加载 Windows 8;我不再需要 rEFInd 作为中介。从 GRUB 选择 Win8 会显示一些错误(我只需按一下即可绕过任何关键)。我会在其他时间研究这个问题,除非我认为这是一件非常危险的事情。

答案2

正如您所发现的,禁用安全启动可以解决问题。我的直觉是,您之前要么禁用了它,然后不知何故意外启用了它,要么您之前使用的是支持安全启动的 GRUB 版本,而软件更新安装了未签名的 GRUB,或者以绕过 shim 程序(Ubuntu 使用该程序来支持安全启动)的方式更改了启动路径。

另一个选择是更广泛地添加安全启动支持。如果你的第一个引导加载程序是 rEFInd,你可以阅读rEFInd 的安全启动文档了解如何使其与安全启动配合使用的详细信息。不幸的是,Ubuntu 尚未附带支持 MOK 的 shim 版本,因此您需要安装另一个版本的 shim 并将 Ubuntu 的公钥添加到您的 MOK 列表中。这是可能的,而且并不难,但它涉及使用几个命令行工具并非常准确地遵循说明。请注意,Ubuntu 在 12.10 版中添加了安全启动支持。我注意到您的问题上有一个 12.04 标签,因此如果您使用的是 12.04,您的内核几乎肯定没有签名,这将使安全启动的更充分使用变得复杂。总的来说,最好将安全启动保持禁用状态;我提到这个替代方案是为了以防您有理由启用它。

答案3

您面临的问题可能是由于某些带有 Windows 8 徽标的强制性 (arm) 处理器和非强制性 (intel) 处理器所致。其中大部分是安全启动,即“在安全启动处于活动状态时,固件会检查其执行的任何 EFI 程序上是否存在加密签名”。要解决这个问题,您很可能需要禁用安全启动。查看本文了解一些历史以及完成这项工作所需了解的内容:

http://www.rodsbooks.com/efi-bootloaders/secureboot.html

答案4

正如所讨论的其他线程,这是由于你的 grub 映像没有使用--uefi-secure-boot参数安装(你可以找到一个已经制作好的这里)。

当然,您必须在 UEFI 中再次将其列入白名单。

相关内容