Minus a couple changes in the install process, this worked perfectly for me to run my rpi 4b off a 500gb USB 3.0 SSD. No SATA adapters, no boot from SD first, just USB 3.0 > USB-C on a Samsung T7 external SSD drive.
As for power, I did toss a 3A power supply on it and also plan to move the USB SSD to a powered USB Hub (just to keep things happy, cool, and powered), also probably toss an ice tower cooler on at some point to; but as of now, it runs 100x better and faster then my SD did — benchmarked at almost 8100. But… as noted, I did have to re-sync all my zigbee devices back into HA after the snapshot restore — Zwave devices weren’t effected though.
Basically follow Skeynet01’s guide.
- First create a full Snapshot of your HA (minus DuckDNS & LetsEncrypt)
I personally went with buying another $15 64GB SD Card off amazon to attempt this with, so i had a fullproof backup SD if this all went to hell.
I then Flashed my new 64GB SD (using Apple Pie Baker on OSX) with “Raspberry Pi OS (32-bit) Lite“. It’s on the same link as within the guide (if you dont want to scroll up… its Here also, ENABLE SSH!
The next part of the guide takes you to Toms Hardware Tutorial which has been updated recently to reflect the new USB Boot on RPi4. You wont have to keep an SD in to boot anymore. Ill type out the steps here, since TomsHardware page is one of the most AD-riddled pages I’ve ever seen. Typically I’d support sites like this helping people, but there’s a limit. When the site is so ad-flooded it makes reading the content extremely difficult, i draw the line there… 50+ ads is too much, Tom.
3a) So at this point i had a fresh 32bit RaspberryOS Lite installed on my SD, and a blank MacOS Extended (Journaled) (also known as HFS+) formatted 500GB USB 3.0 SSD.
3b) Before i started doing the updates and such on the SD, i plugged the SSD in.
- If you followed Skynet01’s steps you should have enabled SSH to your SD. So now connect to it. “ssh [email protected]”. The default password is “raspberry” (you’ll want to change that later at some point with “passwd”, but not yet)
sudo apt update
sudo apt full-upgrade
- Next, Edit the /etc/default/rpi-eeprom-update file and change the FIRMWARE_RELEASE_STATUS value from “critical” to “stable.” You can edit the file by typing:
sudo nano /etc/default/rpi-eeprom-update
Then hit CTL+X and then “Y” to save the edit and exit.
- now install the new bootloader by typing:
sudo rpi-eeprom-update -d -a
let the RPi 4 boot up again, then SSH over to it the same way as before.
now check the firmware version to make sure you have the latest one. At the time of writing this, it should say “June 15”, which allows the RPi4 boot from USB
Now Heres where i had to add a step. I had to run:
You’ll get some warnings etc, just click through them and agree. For some reason i kept getting boot errors regarding start.elf and recovery.elf not being compatible — This fixed that.
No Longer needed after latest update
Now reboot again.
at this point you have a few options; i decided to go with a fresh 32-bit RaspberryOS Lite install on the SSD. I plugged it into my Mac and used “Raspberry Pi Imager” to download and install the OS on the SSD.
Now pop your SD into a computer and copy all the .DAT & .ELF files from the boot folder (on SD remember). I copied these to a folder on my desktop.
Now plug in your SSD and overwrite all the .DAT & .ELF files you took from the SD card. Also, copy over a blank ssh file as well so you can ssh over to the SSD.
Now, plug you SSD into one of the [blue] USB 3.0 slots (leave SD out) and boot up.
This can either be really quick, or take a really long time depending on how big your SSD drive is. For my 500GB drive, it took about 45min to boot up the first time.
once its booted up, SSH over to it again, and continue to follow Skynet01’s guide above. Skipping over points 3 & 4. No need for the cmdline.txt edit or keeping your SD inserted to boot.
(If for some reason you cant SSH over to the new SSD, make sure you included that blank ssh file in the main boot dir)
Do those updates on your SSD. Then continue with the Docker install and HA etc as listed.
Once you’re all booted up and accessed your HA instance via IP:8123, you can install the SAMBA ADD-ON and copy your saved snapshot into the BACKUP folder and restore.
Everything restored for me fine, except Zigbee devices. I had to set those up again. I’m using the HUSBZB-1 USB for zwave & Zigbee.
This method worked perfectly for me, and I’m running so much faster then i was before on my SD.