HASS.IO -> transfer from SD card to SSD or USB

Is your pi3 rebooting reliably now after the initial issue?

Any one teste the X825 USB SATA board for the pi4? Is it working? https://www.aliexpress.com/item/4000050043559.html?algo_pvid=23160da8-a2ba-4998-b73b-61677bc782de&algo_expid=23160da8-a2ba-4998-b73b-61677bc782de-0&btsid=24d8c0c3-a2a3-43e2-9bd2-a50e3d874109&ws_ab_test=searchweb0_0,searchweb201602_7,searchweb201603_60

@Crhass, yes it has been 100% reliable since I fixed it with the bootcode.bin file on the sd card. In fact, I was able to successfully update from 97.2 to 98.1 this morning using the web ui dashboard button.

[edit: On a related note, I was able to make my smooth running hass instance even faster by adjusting ozw logging levels (I had some energy meter plugs that were spamming the ozw log). After moving to ssd my load averages with a large database (>1GB) dropped from 1.5ish down to 0.2ish… with the tweaks to my zwave logging that is now down to 0.05ish!!! That is awesome given my not so small network of 50 or so devices (easily 200+ entities recorded). So the pi3b+ is now looking like overkill for an ‘average’ size network when paired with an ssd, LOL.

Also, based on my calcs from the past weeks usage (database grew 1GB in 7 days), my 120GB ssd should be able to handle 1 years worth of data. It would take 2 years to fill the 100GB free space, but I believe when hass purges the database it needs at least enough free space to save a copy of the database. Hence, the db should not be allowed to grow larger than 1/2 of it’s storage size.]

hello @skynet01,

i made it working, after install Hassio in a docker env.

It works but the Rpi4 (i have the 4Gb sdram version) take between 5 and 10 minutes to open/display the desktop of Raspbian Buster…lol

After it works great, i upload a snapshot with samba and restore it…all works…

If i open a chromium web browser page in Buster desktop…what a mess! the Rpi goes to 100% processor, chromium bug…not stable at all…

Perhaps i ask to much to the Rpi4…?

it should be faster on Rpi4, are you using Hassos? Or running it in docker?

In other note, I tried following the guide to have USB SSD after boot in Pi4 doesn’t seem to work…
I tried following a few guides like (https://jamesachambers.com/raspberry-pi-4-usb-boot-config-guide-for-ssd-flash-drives/) . I get stuck on editing cmdline.txt but modifying cmdline.txt in /mnt/boot/ to use my newly formatted usb drive doesn’t seem to work. Upon reboot it still shows “/dev/mmcblk0p3” as the root partition. Anyone had success with this?

I got Pi4 + SSD working. Had to ditch Hassos for Raspbian but the performance is worth it. Posted a quick guide in this thread here: Rpi 4 installation


This sounds really promising! I’ve just had to ditch a HA-ruined SD card for the first time so anything to improve speed and reliability would be great.

You make it sounds really simple…TOO simple in fact…so can I just run my plan past you to see if you think it’ll work?

Currently running HassOS 2.12 with HA 0.98.5 on an rPI3B+.

I have a spare 250GB Crucial BX100 2.5" SSD knocking about in a non-powered Aukey USB-C enclosure which I am planning to use.

So if I…

  1. make a full snapshot backup and save this externally
  2. remove the SD card
  3. use Etcher to write the latest version of HassOS (2.12) to the SSD [EDIT: sorry, just realised I need 3.4]
  4. plug in the SSD to the Pi and power on
  5. do basic configuration, then upload and restore from my backup

… do you think it will work?

My main concerns are a) incompatibility of software/hardware and b) insufficient power to drive Pi, SSD, and my z-wave stick. Do I need a beta version of HassOS? [EDIT: as before, 3.4]

FWIW, personally I strongly considered trying to move from SD-> SSD on my Pi3+, but ended up just biting the bullet and purchasingd an Intel NUC (i5-6260u, 4GB RAM, 128GB SSD). Was about $200 on eBay. Might be a little overkill, but figured if I want to add RTSP cam feeds, or move my ZWave network off SmartThings to the NUC it would be able to handle it nicely.

Rough steps I took:

  • Backed up my config on my Pi3 & saved to local PC
  • I also made local .txt file backup copies of the config settings for Hass.io Add-On’s (Samba, DuckDNS, Configurator, SSH server [which I still haven’t gotten back working, but eh, whatever :wink: ])
  • Set static IPs via router on NUC and changed port forwarding to new NUC IP so DuckDNS would work.
  • Followed JuanMTech’s YouTube video / guide (https://www.juanmtech.com/set-up-hassio-in-docker-and-in-an-ubuntu-server/)
  • Copied the backup from local back to NUC and restored
  • Made sure I could log back into HA and then pulled the monitor, keyboard, mouse, etc. from the NUC and it runs headless in my network closet now.

Pretty much everything came right back up. Believe I had to change “ETH0” to “” in order to get Samba to work. Took a little over an hour, and I’m fairly novice and knew NOTHING about Linux/Ubuntu before starting. I’ve certainly learned there’s more than one way to successfully set this up - and not saying this is the best, it’s just what I did and is working well (knock on wood).

1 Like

Your procedure as stated should work. You may run in to 2 issues that are quick to fix.

  1. Your pi3b may not have USB boot mode enabled. To fix that you just bootup with an sd card containing raspbian with a special file. Specifically, after flashing raspbian buster lite to an sd card, add the line to the “config.txt” file on the boot partition:


Don’t forget to save the file. Now boot the raspbian sd and upon bootup your pi3b will now have usb boot mode turned on (on the next boot up).

  1. Your USB ssd may not be compatible with uboot. To fix this you copy the “bootcode.bin” file from your ssd (this file will be there after you flash hassos 3.4 with etcher) to the root of a small sd card (formatted fat32), and leave that sd installed so it can boot your ssd. This solution of course doesn’t technically get rid of the sd card, but at least the sd is only active briefly during bootup (ssd takes over after that and none of the common sd card slowdowns will happen… the sd will last ‘forever’ as well).

If you have a full snapshot and a fried sd card, you haven’t got much to loose by trying it out. Worst case you have to buy a cheap sd card (I am using an ancient 4gb card) to do both of those 2 steps to get it rolling. I recommend having a small sd card on hand when you do this just in case… that way any painful moments can be minimized. :wink:

With all this in mind, folks who may be on the fence and thinking about waiting for their sd to crap out before moving over… you might want to rethink that strategy especially if you don’t have a second small sd card on the side. If you move to ssd before the sd fails, at least that sd can still be used if needed.


ajoyce, it really was that simple for me. I used the steps you propose on my rpi3b+. (This rpi model already has USB boot mode enabled.)

Here are the steps I followed:

  • Created a snapshot and copied it externally.
  • Burned HassOS 3.4 to an SSD (Crucial BX500).
  • Booted up with the SSD (no SD card inserted).
  • Restored the snapshot.

It really was that easy.

1 Like

What is the difference between hassIO and hassOS? I have installed raspiand and HA on top of that. It seems to be hassio because I have hassio tab with backups and addon store. My issue is that I have only community addon without the standard one with duckdns, etc.

@Bartek_Pes HassOS is

Sorry, but it still not clear for me. To run HA on 3b+ with SSD the easiest way for beginners is…? The differences between hassOS i hassIO in terms of file size is only few MB.

If hass.io run on hassos. Then the file from https://www.home-assistant.io/getting-started/ should containt image wirh hassOS with hassIO on top of that. Correct?

If you use the HassOS install method, you can only run Hass.io and add-ons available in Hass.io. That may be all you want, and in that case, it is the best method. It is simple and beginner friendly.

You may want to run some other applications or programs that are not available as an add-on in Hass.io, then you would install Hass.io over Raspbian. I would recommend this 2nd method if you are using a USB SSD, other may disagree.

1 Like

Thanks a lot. I have managed to successful install hassOS. I was looking for simple solution that works with SSD. Raspbian seems to be more for advanced users.

HassOS needs to be maintained or all updates will be done automatically by updates in UI in hassio?

When you run HassOS the first time it will go out and grab the latest HassIO docker images to run. HassOS download does not contain HassIO until it boots the first time and downloads the docker images.

HassOS is an appliance. You don’t do anything in the OS at all. All updates are handled from the UI in HassIO

1 Like

Hey @truglodite,

Do you think we can upgrade HassOS to 3.5? It looks like it now supports SSD.


Yes I don’t see why you couldn’t. 3.5 is just building upon 3.4. So it also has rpi usb boot capability. With 3.5 out now, users looking to switch to ssd should use that instead of 3.4. Here’s the link to the rpi3 32bit image for convenience:


Also, check out the “(RC)” status… woohoo! We’re about one step away from usb boot on an official release (2.13). With the pace of development typical of the hass team, I bet it’ll hit within a few weeks.

@Bartek_Pes, what flamingm0e said… just wanted to add that for the updates, you use the hassio update button on the dashboard. Do not confuse this with the hassos update button under the ‘System’ page, which updates the hassos image to the latest release. Since the latest release of hassos is 2.12 (no usb boot yet), doing that now will leave your pi unable to reboot from ssd! As I mentioned above, it looks like the usb boot feature is going to be released with hassos 2.13. So this minor issue should be fixed very soon. To be clear, this minor issue is not a good reason to avoid moving to ssd… hassio and all plugins are still kept up to date with the dashboard update button… you just have to resist hitting that os update button on the system page until 2.13 comes out.

@truglodite, I am now confused.
:8123/hassio/dashboard -> udpate of hassio and HA
:8123/hassio/system -> update of host system (my current is HassOS 3.4), if I hit the update button then my HassOS will downgrade to 2.12? It is a bit confusing why my version is much higher than the official one.