Well I can confirm that the datactl method has worked perfectly for me on a Raspberry Pi 4B.
My set up now consists of the Pi 4B connected to a Kingston A400 SSD using a Startech USB3 to SATA cable (USB3S2SAT3CB). The Pi is still booting from the sdcard but the data partition is on the SSD. I am running the full Home Assistant (standard install). Home Assistant reports the disk space metrics correctly and I have confirmed the partition has been moved across correctly.
All I had to do was:
- Backup (Just in case!)
- Connect the SSD to Pi using the cable
- Login into Home Assistant CLI over SSH (needs to be via develop port 22222).
- Get to a host shell using the ‘login’ command.
- Check the new disk is seen using ‘fdisk -l’, it showed up as an un-formatted disk /dev/sda.
- Use the datactl command to move the data partition - ‘datactl move /dev/sda’.
- Reboot as advised by the datactl command output - ‘ha host reboot’.
- Wait a while - mine took maybe 15-20 mins for a 120GB drive - Home Assistant will eventually boot up.
- Profit?
At some point it would be interesting to further investigate a USB boot solution, but I’m happy enough with this for now!