未列出启动修复窗口

未列出启动修复窗口

今天我安装了 Windows 8.1,但它破坏了我的 GRUB。我尝试在 Ubuntu 的实时会话上运行启动修复 GUI,但重启 PC 后,GRUB 仅显示 Ubuntu。

安装之前,我在第一个 HD 上同时安装了 Ubuntu 和 Windows 7,并且 grub 可以毫无问题地显示它们。

在第二个 HD 上安装 Windows 8.1 后,引导加载程序(?)被 Windows 替换,我只能在 Windows 7 和 8 之间选择启动,但不能选择 Ubuntu。

我现在该如何修复 GRUB?我希望 GRUB 可以显示所有三个操作系统(即使是不同的硬盘)。如果不可能,我希望我可以选择要启动哪个硬盘,然后 grub 可以正确显示该硬盘的操作系统。

这是启动修复的输出(链接失效)。

答案1

我很高兴你解决了这个问题。为了将来参考,你可以使用 GRUB(或任何其他 EFI 启动管理器)在两个版本的 Windows 之间切换。不过,我知道这样做需要在安装第二个 Windows 之前进行规划:

  1. 正常安装第一个Windows。
  2. 启动 Linux 紧急磁盘(“安装前尝试”模式下的 Ubuntu 安装程序应该可以正常工作)。
  3. 更改类型代码EFI 系统分区 (ESP)更改为 Windows 会忽略的内容。gdisk在这方面最为灵活,因为您可以将类型代码设置为任何您喜欢的代码,例如 8300(Linux 使用的代码)。 您也可以选择更改 Windows 分区的类型代码,以使其不出现在第二个安装的引导加载程序中。 如果您使用gdisk,请务必使用 保存您的更改w
  4. 安装第二个 Windows。安装应在磁盘上创建第二个 ESP,并且您的计算机应启动到此版本的 Windows。(如果您没有通过更改其类型代码来隐藏第一个 Windows,它可能会作为 Windows 引导加载程序中的一个选项显示。)
  5. 再次以“安装前尝试”模式启动 Ubuntu 安装程序。
  6. 将第一个 ESP 上的类型代码改回正确的值(中的 EF00 )。如果您更改了第一个 Windows 分区的类型代码,请同时gdisk将其改回(中的 0700 )。gdisk
  7. 运行 Ubuntu 安装程序并安装 Ubuntu。

当该过程完成后,您应该让 GRUB 控制启动并为您提供两个 Windows 安装或 Ubuntu 的选项。但我不确定它是否会告诉您两个 Windows 安装的名称/版本;它可能只会为每个 Windows 安装显示“Windows”。

此过程的许多变体也应该可行,例如在安装 Ubuntu 后安装第二个 Windows(这将需要将 GRUB 重置为默认引导程序)。在安装两个 Windows 副本后,可能可以通过调整 ESP 和 Windows 分区的类型代码并使用每个 Windows 版本的安装/修复磁盘来执行类似操作,使其在目标 ESP 上重新安装 Windows 引导加载程序。

在任何一种情况下,关键在于您将拥有(至少)两个 ESP,每个版本的 Windows 一个。(Ubuntu 并不关心它使用哪个 ESP。)但是,双 ESP 设置在将来可能会造成混乱。例如,如果 Windows 7 安装程序看到两个 ESP,它就会感到困惑,因此重新安装将失败。(我不知道 Windows 8 或 10 是否有同样的问题。)当然,您更改了一次 ESP 类型代码,因此如果您需要重新安装 Windows,您可以再次更改。

答案2

sudo update-grub这样做了,问题解决了。

相关内容