[Guide] Prepare Raspberry Pi for boot from USB/NVMe

My frustrating but ultimately successful experience setting up Volumio to boot via NVMe. Maybe I’m the only person to make this small mistake that led to me pulling my hair out for a whole morning, but maybe it’ll help someone.

I was trying to use SD Copy on Raspberry Pi OS to copy Volumio Beta from a USB SSD to a new M.2 NVMe mounted on a Pimoroni PCIe hat.

I had up-to-date Raspbian on an SD card and on the NVMe drive (clue!) and Volumio 4.062 on the USB drive.

What I tried:
Updated my Pi5 to the latest EEPROM firmware using the new updater plugin.
Set boot order to SD-USB-NVMe using the EEPROM config plugin.
Boot to Raspbian using the SD card so I could use the SD Copy program.

Each time it would show options to copy from USB-SD, SD-USB, NVMe-SD and NVMe-USB, but not SD or USB to NVMe. I tried different combinations of boot order using the EEPROM Config plugin, even excluding NVMe, so USB-SD (another USB drive with Raspbian) and SD-USB. Nothing worked.

Then it dawned on me that the Raspberry Pi OS on the NVMe was a clone of the SD. Even if it booted Raspberry Pi OS via SD, the NVMe was taking over! The solution was to change the system name on the SD’s OS and then it saw the SD as a separate system. Finally SD Copy offered the option to copy from SD /USBto NVMe. It works, it’s great!

Thanks to the devs for the excellent new EEPROM plugins.