I’ve been trying to install Haiku onto a USB drive using a live USB with the Installer. Numerous times I’ve gotten it set up, but haven’t been able to boot from the USB I installed it to, because it won’t show up as an option on the boot menu. Now, I’m using a Mac mini, from around 2017-2018. I know some people have had issues booting Haiku on Mac hardware, but given that I’ve been able to boot the live USB, I should be able to get one with the OS installed to work? I’ve tried everything I can think of and I can’t figure out what the issue is.
There’s several ways to go about getting Haiku to boot this way. The first is to use rEFInd from Rod’s Books. And I’ll let those who prefer this method explain how they get this working… as I don’t really use it myself.
The second (and it’s the method that I mainly use) is to use qemu to install a Nightly inside of a virtual environment (if you need EFI support, there’s binaries and instructions for building tianocore/ovmf here: https://github.com/BlankOn/ovmf-blobs).
Usually, because I’m dealing with pre-2012 Intel Macs, I’ll just go with an Intel partition map (and boot using the Mac’s CSM mode). Once the 4 GB image has been created and prepped using dd if=/dev/zero of=haikutosh-nightly-x64.img bs=4096 count=1000000, once that’s done (takes around 30-45 seconds on my hardware, the second step (from an Intel Mac running OS X/macOS) is /Applications/QEMU/programs/qemu-system-x86_64 -m 1G -hda haikutosh-nightly-x64.img -cdrom /Users/andrew/Downloads/Nightlies/haiku-nightly-hrev54465_x64.iso -boot d while plugged in so my Mac doesn’t throttle on me.
From there, I usually have an external drive where I’ve backed up macOS to (or you can install macOS to it) and either way, plug it in and hold option when the Mac first turns on. From there, I’ll copy the Haiku raw image then select the external HD/SSD and boot into macOS. From Terminal, I’ll first check with diskutil (diskutil list) to see what disk I’m aiming for (usually I find it’ll be disk0 and in that case I’ll do (sudo diskutil unmountDisk /dev/disk0), but always look just in case) then do dd to overwrite the macOS with the Haiku image: dd if=/Users/andrew/Desktop/haikutosh-nightly-x64.img of=/dev/rdisk0 bs=4096 (keep the r if you’re doing this from Mac; otherwise, just use the direct identifier) and restart.
And that’s usually that. The steps in between (such as to make an ESP and write in the EFI files, etc.) or to use a legacy ‘Intel partition map’ (MBR) is totally up to you. And also what method you want to use. Because I play around with VMs a lot, I usually go for the second method (and I admit it’s laziness on my part because it makes it easy to deploy across Macs). But there’s several other ways (like again, setting up rEFInd, manually putting a Haiku SSD/HD in the drive bay, booting off a Haiku DVD, etc.) and as I keep saying, it’s really up to you.
But that’s my method. And its really only good as a demo this way; the big drawback to it is that (afaik) BFS is not reliably expandable yet, which means that the partition size is fixed when written out like this. I’ve considered whether to distribute compressed ‘Mac edition’ images that can expand out between 32-128 GB (as most modern Macs ship with 32-128 GB disks), but that’d pretty much be a distribution (so that’s why I haven’t so far).
Thanks for the quick and in-depth response! I’m probably going to look in to using rEFInd, because I’m using a relatively small USB drive (32GB) and just want to boot it off that, rather than set up a whole new system.
This is likely because Installer only copies files from one bfs partition to another and doesn’t create ESP partition with haiku_loader.efi. This feature is not implemented and you will need to do it manually.