Booting multiple OSs from multiple disks with UEFI

6,840

There are really three issues:

  • Boot loader location -- Boot loaders may be located on the primary disk's ESP, on the secondary disk's ESP, or on non-ESP partitions on either disk. Officially, the EFI spec allows the firmware to launch a boot loader from any ESP, but in practice non-ESP locations also often work if the partition in question uses FAT or if you've got a suitable driver installed. rEFIt, rEFInd, and GRUB 2 can redirect the boot process to boot loaders stored on other than the main ESP, although they need drivers to read non-FAT (or non-HFS+ on Mac) partitions. Some boot loaders, such as gummiboot, are limited to supporting the partition from which they launched, which could necessitate putting all your boot loaders on one ESP.
  • OS installation location -- An ESP-resident boot loader must necessarily support launching an OS that's primarily resident on some other partition. In principle, there's no reason this partition can't reside on another physical disk entirely, and I don't know of any practical impediments to doing so. Thus, you can install a boot loader on the primary disk's ESP and have it boot your main OS from the secondary disk.
  • Kernel location -- Linux boot loaders such as GRUB Legacy and GRUB 2 can load Linux kernels from locations other than the ESP, and in principle this other location can be a physically separate disk. In theory, ELILO can do the same, but I've never managed to get this to work. A kernel configured as an EFI stub loader must either be stored on an ESP or be loaded by an EFI that's less fussy about this or by a boot manager like rEFInd that can redirect to another partition or another disk. Thus, your kernel might need to be stored on the primary disk's ESP in some configurations. (Ubuntu uses GRUB 2 by default, so a standard Ubuntu installation is pretty flexible in this respect.)

In the end, there are few major limitations, at least in principle. You might run into some issues with buggy firmware implementations or if you use certain boot loader combinations, but you should be able to overcome these issues by proper placement of your boot loader and kernel files.

Share:
6,840
underskor
Author by

underskor

Updated on September 18, 2022

Comments

  • underskor
    underskor over 1 year

    How does booting multiple OSs from multiple disks work in terms of UEFI? I have SSD0 on which Windows 7 is installed, and SSD1 on which I'd like to have Xubuntu and Arch Linux. I understand the process when one disk is involved, but have no idea when it comes to multiple disks.

    Thank you.

  • underskor
    underskor over 11 years
    It is awesome that you are so active answering these questions, Rod! I went with rEFInd and it detected both OSs, but I am currently battling a Windows boot loop issue - superuser.com/questions/522664/…
  • Mike Lippert
    Mike Lippert about 9 years
    If you are adding a new drive to install a new OS on, should you create an ESP on that new drive (assuming there already is one on the current drive)? And with an ESP on 2 drives, how do they interact?
  • Rod Smith
    Rod Smith about 9 years
    A single ESP on a single disk is sufficient for handling as many OSes as you like on as many disks as you like, provided that ESP is big enough and there are no name conflicts. In theory, if you do create a second ESP on another disk, it should work more-or-less seamlessly with the first one. This may also be desirable or necessary if one disk is an external one that you move between systems. In practice, multiple ESPs can become confusing, both to you and to automated utilities, so I prefer to use just one whenever that's practical.