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

所以,我最后一次使用我的Ubuntu安装是昨晚 。 今天,当我启动时,它告诉我不允许启动grubx64.efi。 很容易。 我知道如何从我的BIOS重新启用它。

重新启用后,我再次尝试启动并收到以下错误:

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

然后在这个错误下面有一些’grub resuce’CL提示。 除非ls是一个有效的命令,否则永远不会想到它。 使用ls显示各种(hdx , *)文件/目录/驱动器。

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

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

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

当我注意到关闭安全启动的选项时,我正在浏览我的BIOS(想知道为什么我在遇到双启动Win8和Precise之前从未注意过它)。 我把它关掉了, ,GRUB加载了。 更重要的是,我现在可以从GRUB加载Windows 8; 我不再需要rEFInd作为中介。 从GRUB中选择Win8会显示一些错误(我可以通过按任意键来绕过它)。 我会在其他时间研究这个问题,除非我认为它确实存在风险。

正如您所发现的,禁用安全启动可以解决问题。 我的预感是你之前已经禁用它并且不知何故意外启用它,或者你之前使用的是启用安全启动的GRUB版本,并且软件更新安装了未签名的GRUB或以绕过填充程序的方式更改了引导路径(这是Ubuntu用来支持安全启动的原因。

另一种选择是更一般地添加安全启动支持。 如果您的第一个引导加载程序是rEFInd,您可以阅读rEFInd的安全引导文档 ,了解如何使其与安全引导一起使用的详细信息。 不幸的是,Ubuntu还没有附带支持MOK的shim版本,所以你需要安装另一个版本的shim并将Ubuntu的公钥添加到你的MOK列表中。 这是可能的,它甚至不是那么难,但它涉及使用几个命令行工具并非常精确地遵循指令。 请注意,Ubuntu在版本12.10中添加了安全启动支持。 我注意到你的问题上有一个12.04标签,所以如果你使用的是12.04,你的内核几乎肯定没有签名,这会使安全启动的使用更加复杂化。 总的来说,最好是禁用安全启动; 如果你有理由启用它,我会提到这个替代方案。

您面临的问题可能是由于某些基于强制(arm)和非强制(英特尔)处理器带有Windows 8徽标的事实。其中大多数是安全启动,“安全启动激活,固件检查在其执行的任何EFI程序中存在加密签名“。 要解决这个问题,您很可能需要禁用安全启动。 查看本文了解一些历史以及完成工作需要了解的内容:

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

正如在另一个线程中讨论的那样,这是因为你的grub映像没有安装--uefi-secure-boot参数(你可以在这里找到一个)。

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