HAOS USB Creator: AIO installer for dedicated x86-64 PCs (Legacy BIOS support).. Win/Linux/macOS

Hi,

HAOS AIO USB Creator enables you to create a bootable USB that installs Home Assistant OS onto a dedicated generic x86-64 PC. It handles the image download and USB setup for you, so you do not need deal with Ubuntu or manual disk-writing steps.

Added Linux .appimage, macOS (universal)

The basic idea is:

  1. Run the app.
  2. Select a USB drive.
  3. The app creates a bootable HAOS installer USB.(Alpine Linux based)
  4. The app downloads the latest Home Assistant OS generic x86-64 image and copies it to the USB. (it will also keep a copy on the PC for future use)
  5. Boot the target PC from the USB.
  6. The Linux installer checks for online for updates for the HAOS image.
  7. Select the internal disk to install HAOS to.
  8. The installer writes the official HAOS generic x86-64 image to that disk.
  9. Reboot into Home Assistant OS.

HAOS images are always verified before any deleting or writing

There is a unattended mode which will automaticly write to the disk, install will halt if more than one is detected and to protect from install loops it will try to set efi to next boot device, also a file is place on USB to catch it just incase (only effect new installs)

You can enable SSH while creating the installer if you still need to access the installer headless - root@ip

You can enable legacy boot for installing on older systems without UEFI through the Installer but if booting from the iso there is a prompt with timeout

The installer iso can also be used as is to create bootable media directly or used in VM’s. Internet access will be needed for the installer to download the HA image

No Home Assistant images are distributed with the software nor are they modified in anyway.
Project is open source AGPL-3

Thanks,

You are my Hero! i tried yesterday the complete day to create a usb stick with balena etcher. nothing worked.
Found your AIO Installer and it performed so good on the first try. Thank you so much!

Thanks, glad to hear it helped

fyi: the generic x86-64 image is not bootable... it needs to be wrote directly to the drive you wish to have HA installed on, thats actually what the customised linux installer does

Yes, if you check unattended install it will do a full install without a monitor

The one caveat is that it will only do a unattended install if there is only one internal drive in the system

The router failed to assign an IP address to the new installer, or the utility stalled while probing the network interface on the OnLogic device.

Running through different distributions blindly in headless mode, without a monitor, turns into a vicious cycle.

The Windows app downloads the Home Assistant OS image and copies it to the USB, so the booted installer only needs network access to check whether a newer image is available. If that check fails, it can safely continue using the image already on the USB.

If the installer cannot get network access, the same network interface may also be unsupported once the machine boots into Home Assistant OS. Is the network failure happening inside the installer, and/or after it reboots into HAOS?

When you say, “Running through different distributions blindly in headless mode, without a monitor, turns into a vicious cycle,” do you mean the installer is running repeatedly because the machine keeps booting from the USB? If the installer cannot switch the UEFI boot target after installation, the next boot should not silently reinstall. It should stop rather than continue into another install loop.

Thanks, worked like charm for my NUC with integrated NVMe which was hard to remove otherwise :slight_smile:
Best and keep going and creating, JR
BTW You could refine instructions a little bit to indicate which .zip is needed for using this AIO solution.

Hi,

  1. Hardware: I am using an industrial mini-PC OnLogic Helix HX310 (Intel Elkhart Lake platform, dual Intel LAN ports).
  2. The Goal: I need to perform a 100% headless installation of HAOS to the internal SSD because I do not have a monitor or keyboard connected to this machine.
  3. The Problem with HAOS-USB-Creator:
    The booted installer never gets network access on this machine.
  • When I flash the USB drive using HAOS-USB-Creator-win-x64.exe on Windows 10, insert it into the OnLogic PC, connect the LAN cable to the main port (LAN 1), and power it on, the machine never requests an IP address from my router's DHCP server.
  • I monitor my router's active DHCP client list constantly. The device simply never appears in the network under any hostname (like haos-installer or alpine), making it impossible to reach the stage where I can SSH into it and select the internal drive.
  • (Note: In previous manual experiments with other clean Linux distros like Ubuntu Server, the hardware was able to get an IP, but with the HAOS-USB-Creator Alpine-based image, the network interface remains completely dead/unreachable).
  1. Regarding the "vicious cycle":
    No, it is not an installation loop. By "vicious cycle," I meant my own manual, blind attempts to flash various other Linux distributions just to get SSH access to write the HAOS image manually, since the dedicated installer fails to bring up the network.

My main question:
It seems that the underlying Linux kernel/drivers of the HAOS-USB-Creator boot image do not automatically support or initialize the Intel network interface on this specific Elkhart Lake board. Is there any way to pre-configure static network settings or inject network drivers onto the USB drive before booting the machine?

P.S. Since your utility is Alpine-based, the network issue is most likely caused by Alpine's default behavior. Unlike Ubuntu, Alpine does not automatically launch DHCP client on all available interfaces (like eth1 or enp1s0), which is critical for multi-LAN devices like the OnLogic HX310. Implementing a global interface fallback (like setup-interfaces -a or a systemd/openrc udev rule to trigger udhcpc on any hotplugged link) inside the boot image would fix this headless blind-spot completely!

I'm glad it helped

good call, i'll both remove the img zip and rewrite it more clear

For a headless install, the intended to use the unattended option in the Windows USB creator. That writes the installer configuration to the USB and the booted installer should proceed without prompts and ONLY if it detects one internal disk. In that mode, network is still optional since the HAOS image is already on the USB. The attended install was not designed for SSH as it expects user input before it ever reaches the network check or DHCP attempt.

unfortunately if you can't use unattended because you have more than one internal disk then this is not going to work. I will look into enabling headless SSH installs in a next release.

This is just a great and siple way to install HAOS on a thin client. No downloading ubuntu or Debian first. Great job.

Wish i known of this sooner, would have saved me a bunch of time.

  • Added an option to enable root user ssh during installer
  • Updated the Alpine based installer to 3.24

Hi, you made a great job !
Do you think it’s possible to make installs on non UEFI ?
I’ve seen these docs, but perhaps it’s possible to make it from you installer ?

Added legacy boot. Tested on old laptop and vm with seabios

How fast !
Thank you very much !
I installed HomeAssistant with the “normal” installation on a UEFI PC, but was not able on non UEFI.
Thanks to your installer, I now have an old non-UEFI laptop ready to make a spare HA !

Curiously, I had to remove the installed OS (ubuntu) on it because the USB key did’nt want to boot (other bootable USB was working). But after that, all worked !

The work was already figured out in those threads I just repackaged it.

Added Linux .appimage

I noticed someone forked it to macOS (achirus-code) so I made sure it worked and rolled it in
App is signed and notarized

*Added universal macOS app

Updated to 1.2

  • Fixed a Windows USB creation failure affecting some drives.
  • Kept the Windows app responsive and its progress updating while writing the USB.
  • Simplified the Windows package, with a clearly named HAOS-USB-Creator.exe.
  • Fixed Windows release packaging for the large installer image.
  • Improved the Linux interface with clearer drive selection and colour-coded progress, completion and error states.
  • Clearly labelled the macOS download as Universal, for both Intel and Apple silicon Macs.
  • Updated download instructions and clarified the ISO’s existing legacy boot support.

Thanks to epfenninger for contributing the Windows USB write fix.

1550 total downloads. I didn’t expect it so wanted as a install solution.