前言
从技术上讲,这不是Ubuntu 特定的问题,但我怀疑这对于 Ubuntu 用户来说是一个有效的问题。
实际问题
如果非 Ubuntu 操作系统位于与 Ubuntu 不同的物理驱动器上,那么通过 grub 启动非 Ubuntu 操作系统真的值得吗?
语境
设置
我的设置看起来(或者更确切地说看起来)如下:
- 台式电脑
- SATA 混合 SSD 上的 Ubuntu
- M2 SSD 上的 Windows 10
- 我通过 grub2 从 Ubuntu 所在的混合 SSD 启动(编辑)Ubuntu 和 Windows 10,在专用启动分区中
- 一切 EFI(如果相关)
由于市场主导地位,我使用 Windows 来处理那些只能使用 Windows 的事情,而使用 Ubuntu 来处理其他所有事情。
背景
几天前,我的 Ubuntu 所在的 SATA 混合 SSD 驱动器遭遇了灾难性故障,变得完全无法使用。
(注:事后看来,这是注定会发生的 - 2021 年臭名昭著的三星 EVO 870 之一......)
我很快意识到我什至无法启动 Windows,因为驱动器刚刚消失,BIOS 不知道如何从 Windows 所在的驱动器启动。
详细问题
经过 2 天的紧张购买新硬盘、重新安装和设置一切(还没有结束),我开始想知道通过 grub 启动 Windows 或任何非 Ubuntu 操作系统的实际优势是什么,位于 Ubuntu 所在的驱动器上。
另一种方法是,在启动计算机时进入 BIOS 设置来选择从哪个驱动器启动。
如果我没有使用 grub 并在各自的驱动器上启动每个操作系统,我仍然可以使用 Windows,而无需重新安装它。
我唯一能想到的是方便 - 导航 grub 菜单比在 BIOS 中移动驱动器启动优先级更容易。
但是,我可能缺少一些技术知识,这些技术使得从同一驱动器和分区引导不同操作系统成为必要,无论这些操作系统位于不同的物理驱动器中。
这就是我想更好地理解的,以便对我正在痛苦地重建的设置做出明智的决定。
回答
是的。Grub 非常灵活且易于配置。它可以在双启动设置中轻松地与 Windows 配合使用。Windows 引导加载程序 [BCDEdit?] 不关心 Ubuntu。在我看来,用 Windows 引导加载程序替换 grub 是自找麻烦。
我不会讨论其他操作系统,例如安装 Linux 的多个发行版以及使用 Ubuntu 中的 Grub、其他发行版中的 Grub 或其他发行版中的另一个引导加载程序的优点和缺点。
需要明确的是,当我们在 Ubuntu-Windows 双引导系统中使用 Grub 时,我们会保留两个引导加载程序。Grub 获得领导角色并首先加载。如果从 Grub 中选择 Windows,它将把引导 Windows 的工作传递给 Windows 引导加载程序。
BIOS (UEFI) 启动菜单怎么样?
它没有那么方便,并且它保留了 Grub 和 Windows 引导加载程序。UEFI 引导选项仅允许您在 Grub 和 Windows 引导加载程序之间进行选择。您仍然可以使用 Grub(仅适用于 Ubuntu),尽管它可能不会向您显示菜单并直接引导至 Ubuntu。
深层发掘...
主要问题(据我所知)是:当我有两个磁盘,每个磁盘都有一个操作系统时,处理启动的最佳方法是什么?
UEFI 和 ESP
现在的计算机都配备了 UEFI(BIOS 的后继者)。虽然在过去的软盘驱动器和阴极射线管 BIOS 不需要单独的分区,但 UEFI 需要一个称为 (U)EFI 系统分区 (ESP) 的专用分区。每台计算机的其中一个磁盘中应(至少)有一个 ESP。一个 ESP 足以处理多个磁盘中的多个操作系统。但是,可以有两个 ESP,每个磁盘一个。
ESP 和引导加载程序
过去,引导加载程序安装在引导磁盘的系统分区中。通过 UEFI,引导加载程序的部分会安装在 ESP 中。因此,无论您使用哪种引导加载程序、Grub 还是 Windows,您都需要了解 ESP 位于哪个磁盘中(或者每个磁盘是否都有自己的磁盘)以及引导加载程序的安装位置。
2 个磁盘 1 个 ESP
通常,计算机附带安装了 Windows。这意味着 ESP 通常与 Windows 位于同一物理磁盘中。在版本 23.04 之前,当您在第二个磁盘中安装 Ubuntu 时,Ubuntu 安装过程会将 Grub 放入它找到的第一个 ESP(即 Windows 磁盘中的那个)中。
在此设置中,如果您的 Ubuntu 磁盘损坏,您仍然可以通过进入 UEFI 设置并将 Windows 引导加载程序设为首选来引导计算机。
如果 Windows 磁盘停止工作会发生什么?那么,在这种情况下,您将无法启动 Windows 或 Ubuntu,因为 ESP 将随磁盘一起消失。
单个 ESP 的另一个缺点是,在例行 Windows 更新/升级过程中,它有时会注意到 Windows 引导加载程序不是默认引导加载程序,并将其设置为默认引导加载程序。之后计算机将直接启动到 Windows,而不显示 Grub 启动菜单。尽管最近我没有看到这种情况发生那么多。通过进入 UEFI 设置并更改默认值或使用引导修复等实用程序,可以轻松修复此问题。
2 个磁盘、2 个 ESP
在此设置中,每个物理磁盘都有自己的 ESP。这样,Grub 就会进入 Ubuntu 磁盘的 ESP,而 Windows 引导加载程序就会进入 Windows 磁盘的 ESP。Grub 仍将处于控制之中。也就是说,您仍然会看到熟悉的 Grub 启动菜单并像以前一样选择 Ubuntu 或 Windows。Grub 足够聪明(使用 OS_prober)来找出 Windows 引导加载程序位于另一个磁盘的另一个 ESP 中。另一方面,Windows 将会幸福地对其他 ESP、Grub 和 Ubuntu 一无所知。因此,Windows 升级不会扰乱默认引导加载程序。
第二。如果两个磁盘中的任何一个出现故障,计算机仍然可以使用另一个磁盘和另一个操作系统启动。
有关如何设置 2 磁盘 2 ESP 双引导系统的更多信息,请参阅安装 Ubuntu,而不接触 Windows 。
底线
无论您有两个还是一个 ESP,您都应该将 Grub 设置为默认引导加载程序。
希望这可以帮助