I do Triple Boot (Silverblue, Windows 10 and Haiku)

Good day,

After doing several tests during the holidays, I finally decided to go with Silverblue as my distro, also because all the issues I had always with updating distros (be the distro Ubuntu, Fedora… ) from one release to the next one that ended up in useless systems needing clean install.

While I’m using Silverblue as a daily driver now, for basic stuff at work and for Game Development at home, I still need to do more testing in order to check that every single one of my needs are met, though that would need another topic.

So I decided to set up the Triple Boot on my UEFI GameDev box, and have Fedora Silverblue, Haiku and Windows. Before, this box was built with Windows 10, on an SSD drive (drive A), then added another SSD drive for Ubuntu (drive B). With this original setup, there was already an EFI partition on drive A used by Windows 10, then also by Ubuntu.

Doing some research everywhere online, and with all recommendations read regarding the issues with multiboot present in Silverblue, I decided to go for it (who said fear?), not without readying an USB key with Windows rescue, and backing up data.

So this is the process I followed in order to get all three OSes up and running:
1- Hardware related: Add the 3rd SSD drive (drive C) for Haiku.
2- Install Fedora Silverblue on drive B doing (manually):
2.1- Create a new EFI partition on drive B, to be mounted on /boot/efi
2.2- Create an ext4 partition on drive B for boot, mounted on /boot
2.3- Create an LVM on drive B for Silverblue install with
2.3.1- A logical volume for Root mounted on /
2.3.2- A logical volume for home mounted on /var/home
2.4- Discard swap at all. No swap space.

Silverblue’s installation went fine. The process completed without issues, and I was able to reboot into Fedora Silverblue. Grub screen already showed the Windows 10 boot manager available there.

3- Login to Silverblue and verify that EFI partition on drive B was “correct”, and the installation was working without issues, pin the deployment.
4- Mount EFI partition from drive A, and remove Ubuntu’s EFI files
5- Reboot and boot to Windows 10

While a bit scared this first time, Windows 10 booted without issues. Fedora Silverblue recognized the other EFI partition with Windows boot manager and everything went fine.

6- Install Haiku on drive C
7- Haiku does not install EFI files on EFI partitions, so had to manually copy them:
7.1- Reboot to Silverblue and make a /haiku directory inside /boot/efi/EFI, beside the /fedora one
7.2- Copy the Haiku bootx.efi file from the installation media onto this directory
7.3- Fill in the 40_custom file in /etc/grub.d with the following:

menuentry "Haiku" {
    insmod part_gpt
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --set=root 9935-1AF9
    chainloader ($root)/EFI/haiku/BOOTX64.EFI

The UUID coming from sudo blkid, and being the EFI partition on drive B (Silverblue’s).

With this, all three OSes are booting without issues, and can use them all. At least for now.
I must say, that I couldn’t boot Haiku for several days and couldn’t find out why until I realized I had made a typo, instead of BOOTX64.EFI I had written BOOT64.EFI. My bad.

The process was not that hard after all. In fact, I spent more time trying to fix the Haiku issue (couldn’t find the typo) than installing Silverblue with Windows 10 already there.

Hope this helps others who want to do multiboot with Silverblue.