为什么 grub 无法在 UEFI 中加载?

为什么 grub 无法在 UEFI 中加载?

我一直无法在 PC 上启动 Linux。我在不同的笔记本电脑上尝试过很多次 OpenSUSE 和 Ubuntu,但都不起作用。无论我运行多少次update-grub,它都无法运行。

他们俩都有MS 已签署垫片s因此 UEFI 应该正确加载它们,但实际上并非如此,即使update-grubgrub2-install输出总是说 grub 已成功安装。

我尝试关闭安全启动并再次安装 grub,但仍然不起作用。我还关闭了fastboot、快速启动和Intel SRT但这也无济于事。

我尝试过boot-repair,一次都没有出现任何错误。输出日志中显示:

如果您的计算机直接重新启动进入 Windows,请尝试更改 BIOS 中的启动顺序。

如果您的 BIOS 不允许更改启动顺序,请更改 Windows 引导加载程序的默认启动项。

例如,您可以启动 Windows,然后在管理员命令提示符中键入以下命令:

bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi

因此,在 UEFI 设置中没有选项可以更改启动顺序,只有像 BIOS 中的启动设备顺序,并且我必须运行最后一个命令。

现在它可以工作了,但我不想像那样从 Windows 引导加载程序链式加载 grub。我想直接加载 grub因为我想在新电脑上单独运行 Linux,而在虚拟机中只运行 Windows。有什么解决方案吗?

答案1

如果您有 uefi 系统,从技术上讲您根本不需要 grub。

但要回答这个问题,如果您甚至无法从固件启动时选项中更改启动目标,那么听起来您的 UEFI 实现非常有限。

您可以使用 Linux 编辑这些选项efibootmgr。只需将您的 grub efi 设置为第一个目标,如果您已正确配置 grub,它应该会从那里处理所有事情。

答案2

我又遇到了 Acer 笨重的 UEFI 问题。不知何故,当我运行efibootmgr编辑启动项时,更改无法保存。重新启动后,一切都重置了,所以我无法启动 Linux。我发现这个有效的答案重命名 Microsoft 文件夹并添加另一个条目

su -c 'cd /boot/efi/EFI && gzip /boot/efi/EFI/Microsoft'
su -c 'mkdir /boot/efi/EFI/1Microsoft && mkdir /boot/efi/EFI/1Microsoft/Boot && mv /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/1Microsoft/Boot/bootmgfw.efi'
su -c 'efibootmgr -c -w -L Win7 -d /dev/sda -p 1 -l '\EFI\1Microsoft\Boot\bootmgfw.efi' -b 6'

这很有帮助...直到我更新 Windows。所以我一直在寻找并找到了另一种方法。

在启动过程中,F2按 进入 UEFI 设置并切换到“安全”选项卡。在那里你可以看到“选择一个可信任的 UEFI 文件来执行”选项。点击enter它并选择要使用的引导加载程序的 efi 文件。输入所需的名称,然后按是的确认后,该文件将添加到启动菜单中。现在您可以切换到“启动”选项卡以更改顺序(如果需要)。或者F12在启动过程中按下 来启动该菜单

“安全”选项卡

相关内容