How to Install Haiku on Real Hardware or a Virtual Machine
Verify an official Haiku image, test it live in a VM, prepare BFS and firmware boot safely, install, reboot, and validate the result.
Haiku’s anyboot image can run live, install into a virtual disk, or be written to physical media. The copy performed by Installer is simple; selecting, partitioning, and booting the correct target is where data loss and most failed installations occur. Prove the image and workflow in a disposable VM before modifying a real disk.
Choose the supported image deliberately
Download a stable release from Haiku’s official release page. Nightly images are for development and testing and the project explicitly warns they may be broken. For a modern 64-bit machine, x86_64 is normally the relevant variant; the 32-bit x86 hybrid release exists for BeOS binary compatibility. Non-x86 images remain unsupported development ports.
Record the exact filename, source URL, architecture, and release. Do not rename a nightly to look like a release or download installation media from an unverified rehosting site.
Use the SHA-256 value published beside that exact file:
sha256sum haiku-*-anyboot.iso # Haiku or Linux
shasum -a 256 haiku-*-anyboot.iso # macOS
Compare every character, not only the prefix. The release page also publishes a Minisign signature and Haiku signing public key; verify it when possible. A checksum detects corruption against the value you read, while the signature authenticates the release metadata.
Build a reversible VM first
Create an x86 or x86_64 VM matching the downloaded image, add a new empty virtual disk, and attach the anyboot ISO as boot media. Use ordinary emulated storage/network/display devices supported by the chosen hypervisor. Keep the first virtual disk free of other data.
Take a snapshot before partitioning if the VM supports it. Boot the image and select Try Haiku so the live desktop starts without changing the virtual disk. Confirm:
- Tracker and Deskbar appear and input works.
- Screen mode is usable.
- The virtual disk appears in DriveSetup with the expected capacity.
- Network and audio work if they matter to the evaluation.
- The image architecture matches the intended install.
VM success separates a bad download or misunderstood Installer workflow from physical-driver and firmware problems. It does not prove a real GPU, Wi-Fi adapter, NVMe controller, or suspend implementation is supported.
Prepare the VM target with DriveSetup
Launch Installer from the live desktop. If the empty virtual disk is not yet a valid target, use Setup partitions… to open DriveSetup. Select the virtual disk by capacity and device hierarchy, initialize the intended partition map, create a partition, and format the installation partition as Be File System (BFS).
Formatting or initializing destroys data. In the VM, verify that the selected device is the empty virtual disk, not the attached installation image. On physical hardware, model and capacity must match the written plan.
Haiku’s current DriveSetup documentation says it cannot resize or move existing partitions. For dual boot, create verified unallocated space beforehand with a tool appropriate to the existing OS/filesystem. Do not ask DriveSetup to improvise a shrink operation it does not support.
Return to Installer, choose the live Haiku volume as From and the new BFS volume as Onto, then begin. Read the final status; do not treat a progress bar disappearing as proof of success.
Reboot and validate the VM installation
Shut down normally, detach the ISO, and boot from the virtual disk. If the live medium remains first in the boot order, you may unknowingly start it again and conclude the installation worked.
After boot, inspect the revision and architecture, open several bundled applications, verify persistence by creating a test file and rebooting, and test package repositories and networking. Keep the VM as a known-good comparison for later bare-metal troubleshooting.
Back up and inventory physical hardware
Before touching real media, make a restorable backup of every existing system and file on the target disk. Save its partition table and note firmware mode, disk model/capacity, controller type, GPU, wired/Wi-Fi chipset, and current boot entries. Confirm Haiku hardware support and current release notes.
Disconnect unrelated removable disks where practical. A second partition is not a backup if the same disk is about to be repartitioned. Keep another computer or phone available for the official installation and UEFI guides while the target is offline.
Write the image to USB without guessing
Use the host operating system’s documented raw-image tool. Graphical imaging software can reduce device-name mistakes, but it still overwrites the selected drive. On Linux, after identifying the USB with lsblk, unmount its mounted partitions and write to the whole device—not a numbered partition:
lsblk -o NAME,MODEL,SIZE,TYPE,MOUNTPOINTS
sudo dd if=haiku-RELEASE-anyboot.iso of=/dev/sdX \
bs=4M status=progress conv=fsync
sync
/dev/sdX is a placeholder. Substituting the internal system disk erases it. Device names can change after unplugging/replugging, so re-check immediately before the write. macOS uses different device discovery, unmounting, and dd conventions; do not paste the Linux command unchanged.
Eject the completed medium cleanly. Reinsert it and verify its readable structure or hash the written extent if your imaging workflow supports that.
Boot the live environment on real hardware
Use the one-time firmware boot menu and select the USB entry matching the intended BIOS or UEFI mode. Haiku supports both, but installation layout differs. Do not randomly toggle storage-controller or Secure Boot settings on a working multi-boot machine; record any change and its previous value.
Select Try Haiku first. Exercise keyboard, touchpad/mouse, display modes, wired networking, sound, USB, internal storage visibility, shutdown, and a reboot from the live system. If the target disk or input disappears, stop and diagnose before installation. Safe mode can isolate display/driver trouble, but it is not evidence the normal configuration will work.
Follow the correct firmware-specific layout
For traditional BIOS installation, follow the main installation guide and DriveSetup instructions for the intended partition map and active/bootable BFS partition. Installer normally handles the required bootability step; do not run low-level makebootable merely because an old tutorial mentions it.
For UEFI, use the current official UEFI guide. Its current procedure is manual: it creates an EFI System partition formatted FAT32, creates a separate BFS partition, copies haiku_loader.efi into the documented EFI path, and then installs Haiku onto BFS. The guide warns that its fresh-install sequence wipes the target disk. Dual-boot EFI layouts need the advanced section and careful preservation of existing bootloaders.
Never mix BIOS partition/bootloader steps with UEFI steps. Determine the actual firmware mode and follow one documented path.
Install and perform acceptance checks
Open Installer, verify From and Onto by volume name and capacity, and begin only when the destination is unambiguous. When it finishes, shut down, remove the USB, and boot the installed disk.
Acceptance is more than reaching the desktop:
- Confirm release, architecture, clock, and firmware boot path.
- Reboot twice without the install media.
- Verify BFS free space and that saved settings survive.
- Test graphics mode, input, storage, networking, sound, and power behavior.
- Refresh repositories and apply supported package updates through Haiku’s tools.
- Reopen test files after another cold boot.
- Preserve logs and exact hardware identifiers for any bug report.
Keep the verified USB and backup until the installation has passed these checks. A VM-first rehearsal, authenticated image, explicit disk inventory, firmware-correct layout, and post-install persistence test turn a potentially destructive copy into a controlled installation.
Related:
- How to Back Up and Restore a Haiku System
- How to Set Up a Haiku Development Environment and Build From Source
Sources: