使用UEFI从多个磁盘引导多个操作系统

如何从多个磁盘启动多个操作系统在UEFI方面有效? 我有安装了Windows 7的SSD0,以及我希望拥有Xubuntu和Arch Linux的SSD1。 我理解涉及一个磁盘的过程,但不知道什么时候涉及多个磁盘。

谢谢。

实际上有三个问题:

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

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

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