I’ve been running HA on a Pi4 2Gb for a few weeks using an SD card, and wanted to migrate to an SSD for reliability. My plan was to just do a fresh install on the SSD and then restore a backup. That didn’t go as planned so I wanted to go back to booting from the SD card until I sort out the SSD properly.
During the process of setting up the SSD I’ve applied the latest EEPROM update to the Pi4. This seems to have resulted in the Pi4 refusing to boot from my original SD card. I just get a rainbow screen after the initial Pi4 white/red boot screen.
I haven’t found a way of downgrading the EEPROM back to a previous version otherwise I would just do that. I can find the firmware binaries in github but they don’t appear to have .sig files with them which I’m guessing will probably prevent me from creating a custom eeprom flashing partition with earlier files on it. I haven’t tried doing this as I don’t want to brick the Pi4 (although I suspect it just won’t work rather than bricking it).
I tried creating a new SD card with PiOS on it and booting from that and it’s fine. On looking at the partitions on the PiOS installation it has the traditional boot files on it (bootcode.bin, start4x.elf etc). Whereas the HA SD card does not have these; it has a 25mb partition with a file called “Image” in it, then a 268Mb partition with /boot etc in it (which I can’t access and I presume is encrypted). Plus the hassos-* partitions.
I’m not at all familiar with the “Image” thing and couldn’t find anything about it in searches. But this seems to be the key difference between a bootable SD card and a non-bootable one. I tried creating a new SD card with a new HA installation (via Pi imager) and it still creates the same “Image” file and partition set, so I presume this is correct and that for some reason the new firmware doesn’t like that set of files to boot from. I don’t even know what the “Image” thing is, if anyone can fill the knowledge gap for me.
With the SSD, I can see it also has that Image file on it and the same set of partitions, and it does actually boot, although I can’t use it due to undervoltage issues causing all sorts of knock on errors. I probably just need a proper power supply in the long term but I want my HA back up and running from the SD card in the meantime and currently I can’t boot it.
So the firmware does seem to recognise the device as bootable with that partition arrangement when it’s on USB3, but not when it’s on an SD card.
Does anyone have any ideas how I can recover from here? I want to get back to being able to boot the SD card for now.
Summary and order of events:
- Flashed an SSD with new HA instance.
- Pi4 working fine at this point, I shut down HA and took out the card
- Plugged in the SSD and it seemed like it wasn’t booting. I followed the EEPROM firmware upgrade instructions posted elsewhere on here and did the upgrade.
- After updating EEPROM it seemed like it still didn’t want to boot the SSD so I went back to the original SD card
- SD card would not boot. I got 7 flashes of the led which means kernel not found.
- Attached a screen, saw that was on the rainbow screen so definitely not booting.
- Tried the SSD again; discovered it would actually kinda boot but lots of errors due to undervoltage.
- Tried SD again, does not boot
- Put PiOS on a different SD via Pi Imager (same brand and size). It boots fine.
- Put a new instance of HA on the same SD via Pi Imager, It does not boot (7 green flashes as before).
So I think I can conclude my SD card is fine, and it’s the latest EEPROM firmware that doesn’t like what’s on the card.
I sort of have the feeling if I could put the eeprom firmware back to an earlier version it will probably boot, but I don’t know for sure.
SD Card is a 32Gb Sandisk Ultra. Pi4 2Gb.
Can anyone provide any words of wisdom to help me get it back up and running?