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

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:

program_usb_boot_mode=1

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.

7 Likes

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.

Thanks

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:

https://github.com/home-assistant/hassos/releases/download/3.5/hassos_rpi3-3.5.img.gz

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.

Wow. That was… remarkably painless!

Rate-limiting step before was that I didn’t have a USB-C to USB-A cable - good old Amazon sorted me out though.

Following the steps above - everything worked first time, and SUPER rapid - HassOS installed in about 4 minutes, as opposed to the half hour I usually have to wait!

For whomever is updating the list of compatible devices (is that you, @truglodite?) I can confirm the following setup works flawlessly:

rPI 3B+
Crucial 256GB BX100
Aukey USB-C external SSD enclosure
AmazonBasics USB-C to USB-A cable

No faffing about with SD cards for bootcode.bin or stuff like that - plug and play using HassOS 3.5 RC.

Dreamy! Thanks for your help!

1 Like

Hahaha THAT’S why I screwed up my first trial run! Should have read this first. Never mind, all fixed now!

FYI, I did the update from 3.4 to RC 3.5 using the update button. It took me a couple of manual unplug (I don’t know why), but I’m now on HassOS 3.5 with my SSD.

I have booted 3.5 RC from a usb flash drive on an Rpi 3b after setting the usb boot mode as a test and restored a snapshot of my main system.

I noticed the status page said there was a HassOS update. I did this and it failed to reboot after that. Not sure why it thought there was an update.

Would like to see info about working ssd and cable combinations.

Also, can I ask if you power your SSD directly from the pi usb port?

@Crhass, see above. Latest HassOS stable release is 2.12. The 3.5RC version will try to ‘update’ to the latest stable version. So when you clicked Update it actually downgraded you to 2.12 - which is why it doesn’t boot any more. Just reinstall 3.5 as you did originally.

FWIW I’m running my instance off an SSD powered directly from the Pi USB, no other power cables required

1 Like

I believe that is one of the two unused expansion options in my surplus that I’m trying to decide between. I’m torn between the HDD I have, the m.2/usb hat or picking up a cheap SSD when I go get a Pi4 from MicroCenter.

I’m also trying to not go to MicroCenter because that’s an easy $200 gone in less than an hour. In the last 2 weeks… work has had me driving past MicroCenter 3 times… one of these days it’ll be at the end of the day and I won’t have the restraint.