Installing Home Assistant OS on an NVMe drive

Just curious as to whether my workflow here will work, as I haven’t seen many easily-consumed guides on how to do this. I plan to get a Raspberry Pi 5, and the Pimoroni NVMe base, and install HAOS on that drive and configure to boot from that.

Would the following work?

  1. Install the NVMe base and connect the NVMe SSD
  2. Flash an SD card with a simple OS like Raspberry Pi OS
  3. Boot into the SD card OS
  4. Use the Raspberry Pi imager to target the NVMe drive with a new fresh HAOS install
  5. Configure the Pi to boot into the NVMe drive
  6. Boot, and away you go

?

1 Like

It should work, I didnt setup HAOS but PiOS + Frigate in the same fashion

1 Like

Just an FYI - the Geekworm X1003 NVMe HAT allows for the rPi5 to be installed in the standard case with the active cooler. Only limitation is your M.2 choices are either 2230 or 2242. I’ve been monitoring the CPU temp and it never exceeds 56C - this in a very warm closet.

This looks great, but I’m in the UK and can’t find a supplier for it, unfortunately.

I am keen about this and would love to know more! I have a Geekworm X1001 and want to upgrade to an M.2 drive soon. I am unsure if it would work though with currently available hats. Please correct me if I am wrong, but I thought that booting from NVME via PCIe on a non-HAT+ compliant hat needs to be enabled in the /boot/firmware/config.txt file like dtparam=pciex1. Changing the boot order to include NVME is done editing the EEPROM, but is there an option in HAOS installation to enable the PCIe?

To boot from a non-HAT+ device you should also add:
PCIE_PROBE=1
to the EEPROM configuration

1 Like

Perfect! That worked a charm!

Hello @FabsFabios! I’m trying to do exactly the same thing! Can you provide the steps to set a boot partition on the NVMe drive with HAOS?

Thank you !

1 Like

Can you explain how to modify/add what you provided to EEPROM (or point me in the right direction for procedure instructions)? I’m familiar and comfortable with modifying and adding to my config using Studio Code Server - is editing EEPROM done in the same or similar manner? Sorry - I’m still rather new to all of this, but having a lot of fun tinkering and learning.

I can confirm that the @JimGR procedure works fine!
I’m using the Geekworm x1001 NVMe HAT with a 500GB Crucial p5 plus
(Boot in ~ 25 seconds)

My steps was:

  1. Install the NVMe base and connect the NVMe SSD
  2. Connect to Internet (RJ45)
  3. When trying to find boot device, press ALT to open graphic screen. Then Hold SHIFT to use Internet install method. That will download Raspberry Pi imager.
  4. Select OS and install to NVMe.
1 Like

I was able to get this to work fully over SSH.

  1. Use Pi Imager to install Raspberry Pi OS to SD card
  2. Before writing the image, edit the config to configure SSH
  3. Edit boot config to enable PCIE (I also enabled gen 3)
  4. Edit EEPROM config to change boot order and probe PCIE
  5. Use scp to copy HA OS image to sdcard (or download directly from pi using curl)
  6. Write image to nvme using dd
  7. Mount first nvme partition to edit HA’s boot config
  8. Enable PCIE in HA’s boot config
  9. Shutdown, pull sd card, restart, cross fingers.

Worked for me and I never had to connect a monitor or keyboard. I used a combination of these to get this figured out:

1 Like

Thanks! I just installed on a Crucial P3 on a Geekworm X1001-hat using the new network boot.
Good to know though, you first probobly need to update your bootloader to get the network boot functionality.
I booted Rapsberry OS from an SD card, updated the bootloader, removed the sd-card, tada.
Followed this guide:

Thank you SO MUCH, this really helped me. By accident, this solved another problem: When running HassOS, my fan speed was always at 100% and the pi was very loud. But when setting it up this way (first with PiOS from sd card, then switch to HassOS on SSD), it keeps the automatic fan regulation that PiOS brings along, even when the SD card is removed. Now my fan isnt even running most of the time, and it starts turning slowly when reaching 50°C

1 Like

I can confirm that this works. Argon ONE V3 / M.2 NVMe PCIe case with R Pi 5 8gb and Crucial P3 Plus 500gb SSD. I installed the components and booted the R Pi from an SD with the latest full version from the R Pi Imager. I ran the Argon setup scripts that allowed the SSD to be recognized and inserted into the boot sequence. Then I ran R Pi imager on this configuration and loaded the HAOS onto the SSD. Once complete, I shutdown, removed the SD, and on restart it opened into the HA welcome screen. It has been solid ever since.

Hello,
I just bought RPi 5 with SSD NVMe (with Raspberry-Pi OS Bookwork 64 bits pre-installed). Using an SD card, I was able to change the boot order to NVMe first.
But I have no display (no screen or cable). Is there a way to install HA OS on the NVMe sithout having a screen form the RPi?
Thanks !!

Could you please detail the command lines please? I am not a command line expert :frowning:

Just to let everyone know, i installed a 52Pi M.2 NVME M-key 2280 and PoE+ Hat on a Raspberry Pi5. Imaged the HAOS on the NVME beforehand via a USB to NVME enclosure and it booted straight from the NVME the Pi never touched an SD card.

2 Likes

I did the same installing direct to the nvme and HA booted right up into setup. I’d say go this route instead of spending time with a bunch of other steps. just my two cents.

I’m having issues with EP-0241 - 52Pi Wiki
Can you please explain any steps for changing and updating any config files. From your message it appear you did not do any EEPROM etc. steps.
Can you please list your steps ?