使用 UEFI 从多个磁盘启动多个操作系统

使用 UEFI 从多个磁盘启动多个操作系统

从 UEFI 角度看,如何从多个磁盘启动多个操作系统?我有安装 Windows 7 的 SSD0 和我想安装 Xubuntu 和 Arch Linux 的 SSD1。我了解涉及一个磁盘时的过程,但不知道涉及多个磁盘时的过程。

谢谢。

答案1

实际上有三个问题:

  • 引导加载程序位置-- 引导加载程序可能位于主磁盘的 ESP 上、次磁盘的 ESP 上或任一磁盘上的非 ESP 分区上。正式来说,EFI 规范允许固件从任何 ESP 启动引导加载程序,但实际上,如果相关分区使用​​ FAT 或您安装了合适的驱动程序,非 ESP 位置也经常可以工作。rEFIt、rEFInd 和 GRUB 2 可以将引导过程重定向到存储在主 ESP 以外的引导加载程序,但它们需要驱动程序来读取非 FAT(或 Mac 上的非 HFS+)分区。某些引导加载程序(例如 gummiboot)仅限于支持它们启动的分区,这可能需要将所有引导加载程序放在一个 ESP 上。
  • 操作系统安装位置-- 驻留在 ESP 上的引导加载程序必须支持启动主要驻留在其他分区上的操作系统。原则上,这个分区完全可以驻留在另一个物理磁盘上,我也不知道这样做有什么实际障碍。因此,您可以在主磁盘的 ESP 上安装引导加载程序,并让它从辅助磁盘启动您的主操作系统。
  • 内核位置-- Linux 引导加载程序(例如 GRUB Legacy 和 GRUB 2)可以从 ESP 以外的位置加载 Linux 内核,原则上,这个其他位置可以是物理上独立的磁盘。理论上,ELILO 可以做同样的事情,但我从未设法让它工作。配置为 EFI 存根加载器的内核必须存储在 ESP 上,或者由对此不太挑剔的 EFI 加载,或者由可以重定向到另一个分区或另一个磁盘的引导管理器(如 rEFInd)加载。因此,在某些配置中,您的内核可能需要存储在主磁盘的 ESP 上。(Ubuntu 默认使用 GRUB 2,因此标准 Ubuntu 安装在这方面非常灵活。)

最后,至少在原则上,存在一些主要限制。您可能会遇到一些固件实现错误或使用某些引导加载程序组合的问题,但您应该能够通过正确放置引导加载程序和内核文件来克服这些问题。

答案2

当使用启动管理器(例如 rEFInd)时,它会自动检测磁盘上所有已安装的引导加载程序,而不仅仅是 rEFInd 引导加载程序所在的磁盘。

相关内容