这个答案适用于 UEFI 计算机吗?

这个答案适用于 UEFI 计算机吗?

我最受欢迎的答案之一是关于如何修复 grub 的说明。随着时间的推移,其他人为该答案贡献了错误修复。不过,最近的一条评论让我怀疑它是否适用于较新的 UEFI 硬件。

加博写道:

我在第 7 步收到“找不到 EFI 目录”的提示,无法启动。有什么想法吗?

我的所有硬件都是较旧的,UEFI 之前的硬件。所以我的问题是:我的说明(特别是第 7 步)是否适用于 UEFI 硬件?如果不是,需要做哪些改变?

答案1

如果你有 EFI,那么将会有一个EFI 系统分区 (ESP)在磁盘上。此分区必须安装在 上/boot/efi,以便 GRUB 可以使用它。分区:

  • 格式为 FAT32,
  • 通常较小 (100MB < size < 500MB)
  • 将启用boot标志
  • 包含一个EFI文件夹
  • EFI可以由 OEM贴上标签,但没有保证

我手头没有,但是您可以看到这种分区的示例:

因此,这里的任务大约在步骤 3 和步骤 4 之间:

  1. 找到 ESP
  2. 安装它:

    sudo mount /dev/sdXY /mnt/boot/efi
    

然后,您可以继续使用您通常的答案。我自己也做过。/boot如果您有一个单独的分区,请将其视为安装分区。

你可以将它挂载到任何你喜欢的地方。在这种情况下,只需在安装时指定 GRUB 的挂载目录即可:

grub-install --efi-directory=/foo/bar /dev/sdX

答案2

在您最初的回答中,您写道:

当你安装 Windows 时,Windows 会假设它是机器上唯一的操作系统 (OS),或者至少它不考虑 Linux。因此它用自己的引导加载程序替换了 GRUB。

在 EFI 下情况并非如此。好吧,Windows 仍然很粗鲁,可以说它认为自己是唯一的操作系统,但它并没有取代 GRUB。在 EFI 下,多个引导加载程序共存于EFI 系统分区 (ESP),Windows 确实如此不是删除或者替换 GRUB。

尽管如此,普通用户在安装 Ubuntu 后可能不会注意到 BIOS 模式和 EFI 模式 Windows 安装之间的任何差异,因为 Windows 在 EFI 模式下所做的是将其自己的引导加载程序设置为默认引导加载程序。因此,计算机最终会启动 Windows 而不是 Ubuntu。这好像与 BIOS 下的问题相同,但事实并非如此。

与您的解决方案类似的解决方案可能在 EFI 下有效,但这是过度的,因此可能会产生比解决的问题更多的问题。概括地说,在 EFI 下安装 Windows 后恢复 GRUB 的最简单方法是:

  1. 启动到 Windows。
  2. 下载并安装简易UEFI。
  3. 使用 EasyUEFI,将ubuntu条目移动到启动顺序列表的顶部。
  4. 重新启动。Ubuntu 应该可以启动,但没有 Windows 选项。
  5. 在 Ubuntu 中,sudo update-grub在终端窗口中输入。

此时,Windows 应该会在下次重启时作为 GRUB 菜单中的一个选项出现。

另一种方法是使用内置的 Windows 程序bcdedit而不是 EasyUEFI,但 EasyUEFI 更简单,尽管它是一个必须下载和安装的第三方程序。

相关内容