[Solved] Multiboot Haiku

In one disk, I have Haiku, as well as one Linux and a Windows partitions. The latter two boot fine, using UEFI.

The bootloader is elilo that came with the Slackware installer.
rEFInd is suggested and seems to have menu entries similar to those of elilo.

For the Linux partition to boot, the config is

image=vmlinuz
        label=vmlinuz
        initrd=initrd.gz
        read-only
        append="root=/dev/sda9 vga=normal ro"

What configuration do you have for the Haiku partition using elilo or rEFInd?
Please post it so that I can try to adapt to my use case.

If you are going to use rEFInd,
Follow the instructions here:

Then install rEFInd. It should scan your EFI partition and create entries for your operating systems. Manual configuration is normally not required.

I have never used ELILO previously, and it seems there are few tutorials for its usage with Haiku. Still, I suppose ELILO is a EFI able LILO (LInux LOader). If this is the case, then booting Haiku is almost identical to booting Windows with it:

  1. Make sure Haiku bootx64.efi is properly put in EFI partition as pointed out in previous post.
  2. Open ELILO configuration file and copy Windows configuration. Rename Windows → Haiku and change its boot *.efi loader to point to the file you placed on EFI partition at the previous step.
  3. In case some command should be run to make the new configuration active (for LILO it was the case), do it.

Hopefully, after that Haiku can be boot with ELILO.

Thank you both @alpopa and @beaglejoe, I already managed to boot Haiku on my desktop system.
I installed rEFInd as suggested.
For Haiku, as well as for OpenBSD, there were two steps that I had to take:

  1. Copy the BOOTX64.EFI (or equivalent with another name) to EFI/Haiku/ and EFI/OpenBSD.
  2. issue the command efibootmgr -c -l ‘\EFI\Haiku\haiku_loader.efi’ -L ‘Haiku Beta3’. Did similar for OpenBSD.

Previously, I tried the -l parameter with a /boot/efi/EFI/Haiku/haiku_loader.efi, but the boot proccess couldn’t find the file. With a shorter path and with \ instead of / path separator it’s working fine.

3 Likes