GRUB 无法在具有 UEFI 的 Windows10+Linux 中加载

GRUB 无法在具有 UEFI 的 Windows10+Linux 中加载

我有一台带有 UEFI 的新计算机,但我无法在双启动中使用 Windows 10 和 Linux,安装 Linux+GRUB 并重新启动后,它会加载 Windows 而不会显示 GRUB,请注意,我首先安装 Windows,然后安装 Linux,如下所示通常。如果我擦除所有磁盘并仅安装独立的 Linux,则 GRUB 可以正常工作。我不知道问题是否与Windows 10或BIOS配置有关。

在 BIOS 设置中,我启用了 UEFI 模式,禁用了安全启动,启动顺序为 USB、CD/DVD、硬盘、操作系统启动加载程序,最后是网络。

我的硬盘是500Gb。

我用了50Gb来安装Windows(Windows生成的分区是EFI系统、微软保留、微软基本数据和Windows恢复)

对于 Linux,我创建了 /boot/efi 500Mb、/50Gb 和 swap 8Gb(没有 /home 分区,全部在 /root 中)。

第一次尝试:我创建了一个安装在 /boot/efi 中的 EFI 分区,安装了 linux,GRUB 安装没有错误,但启动后它加载 Windows 而不是 GRUB。

第二次尝试:我使用Windows创建的EFI分区并将其安装在/boot/efi中,安装了linux,GRUB安装没有错误,但启动后它仍然加载Windows而不是GRUB。

我认为这是 Fedora 发行版的问题,并尝试使用 KALI 和 Mint,但 GRUB 仍然没有加载,Windows 总是自动启动。

知道可能出什么问题吗?据我了解,Linux 可以在基于 UEFI 的系统中与 Windows 共存,但它不适用于我的笔记本电脑。

答案1

这并不容易调试。您需要考虑以下几个方面:

  • 你的分区表必须是GPT;
  • 您的引导加载程序(通常grub)必须安装在 EFI 系统分区 (ESP) 上,并且它需要是 EFI 版本的 grub(与 debiangrub-efi-amd64相比grub2+ 一些grub-efi-依赖项,如grub-efi-amd64-signedshim-signed)[感谢您的更正@TelcoM];
    • 考虑refind作为 的替代引导加载程序grub,您可能会取得更大的成功;
  • 如果您以 UEFI 模式启动,则只能安装 grub-efi(*)——即从实时 Kali/Ubuntu/Fedora 实时映像启动,并将 BIOS 等效设置程序配置为禁止传统启动;

(*) 严格来说并不正确,但是没有可靠的工具可以在不进行大量猜测的情况下完成此操作。refind在这方面做得比grub-efi;更好

没有理由说这是不可能的。

答案2

问题似乎是,当您首先安装 Windows 时,它的启动项位于 Linux 启动项之上,需要加载 Linux 启动项才能显示 GRUB。要修复此顺序,请尝试执行以下步骤:

  1. 进入启动设置,可通过在启动期间按特定键进行访问(查看笔记本电脑的手册)
  2. 找到更改操作系统启动顺序的选项(最有可能通过在启动顺序列表中的操作系统启动加载程序条目上按回车键来访问)。
  3. 将 Linux 条目移至 Windows 上方。
  4. 按 键save & exit并重新启动。

这将使 Linux 默认启动,并且 GRUB 应该出现,并提供启动到 Windows 的选项。

答案3

一个常见问题似乎是,现代系统可能提供的不是一种而是两种用于从可移动介质引导操作系统安装程序的引导选项:一种用于 UEFI 式引导,另一种用于传统 BIOS 式引导。大多数操作系统安装程序都会检测其启动方法,并会使用相同的方法自动安装操作系统的引导加载程序,不会提出任何问题。

如果您快速选择第一个可用选项从安装介质引导,您可能会意外地以旧版 BIOS 样式引导安装程序,然后它将尝试安装旧版 GRUB。但由于固件配置为 UEFI 样式引导,一旦安装完成,它将忽略传统样式的引导加载程序,反之亦然。

大多数 Linux 安装程序将允许您在实际安装开始之前按Ctrl+ Alt+F2来获取 shell 提示(不过,您可能必须在可用之前至少选择键盘/语言选项),您可以使用它来验证启动模式:如果该/sys/firmware/efi目录存在,则系统肯定以UEFI模式启动。

如果您完全不确定,您应该使用上面的提示来验证安装程序的启动模式,然后再继续进行 Linux 安装,并在必要时以另一种模式重新启动安装程序。

相关内容