HAOS USB Creator: an AIO installer for HA for generic x86-64 PCs

Hii,

I’ve made an imaging tool called HAOS AIO USB Creator (the name needs workshopping).

The goal is to make installing Home Assistant OS on a dedicated generic x86-64 PC a bit more straightforward, especially for users who do not want to manually download the HAOS image, use a Ubuntu live USB and write the image manually.

The basic idea is:

  1. Run the Windows 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.
  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

The Linux installer img/iso can also be used to create bootable media directly or used in VM's

There is a unattended mode which will automatic write to the disk, install will fail if there is multi and to protect from install loops will try to set efi to next boot, also a file is place on USB to catch it just incase (only effect new installs)

It has worked in my own testing on a few real machines but I would really appreciate feedback from people who are comfortable testing.

No Home Assistant images are distributed with the software nor are they modified in anyway.

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.