为什么引导加载程序会安装在不同的硬盘上?

为什么引导加载程序会安装在不同的硬盘上?

当我在我的系统中安装操作系统时,我已经学会断开除目标驱动器之外的所有驱动器,因为引导加载程序往往会......随意降落在它想要的任何地方。

我记得上次遇到这种情况是在 2014 年安装 Windows 8 时,但就在昨天安装 Ubuntu 时又发生了同样的事情。我告诉 Ubuntu 安装程序以三星 SSD 为目标,结果却在我的 Windows NVME 驱动器上看到了为 Ubuntu 创建的启动项。这意味着目标驱动器无法自行启动操作系统,现在系统中存在对其他驱动器的不必要的、意外的和令人惊讶的依赖。这显然是不受欢迎的行为,因为我无法使用刚刚安装操作系统的驱动器进行启动,除非我重新连接一个本来就不应该被修改的驱动器。

为什么引导加载程序通常会在操作系统安装过程中执行此操作?考虑到操作系统安装向导明确询问操作系统应位于哪个驱动器上,然后引导加载程序只是……不去那里,这种行为尤其令人震惊?

答案1

这与 UEFI 实现有关。

尽管EFI 规格不限制 EFI/系统分区的数量或它们的位置(见第 13.3.3 和 13.3.4.3 节),理想情况下每个系统应该只有一个 EFI 分区。或者至少大多数发行版安装程序都遵循这一点。如果 EFI 分区已经存在,即使是 Windows 也不会在全新安装中创建新分区。

解决方案是手动创建单独的 EFI 分区,然后在那里安装引导加载程序。我不知道 Ubuntu 安装程序的具体步骤。但是,我在 Calameres 上通过选择Manual Partitioning并在新创建的分区上设置 EFI/Boot 标志完成了此操作。

PS:根据一些阅读,我猜测分区数量的限制是在旧规范中强加的,现在只是为了确保向后兼容性。

相关内容