This process allows a Raspberry Pi to boot directly from and SSD. No SD Card is needed any longer.
Prepare one SD Card and one SSD by copying the Raspbian buster image on both devices, using Balena Etcher. Then install both devices on the Raspberry Pi. Power on the system.
First, update the system
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
Reboot and install rpi-eeprom
sudo reboot
sudo apt-get install rpi-eeprom
Change the place where the new contents of eeprom sits
sudo nano /etc/default/rpi-eeprom-update
Replace ‘critical’ by ‘beta’. Then save and close.
Program the eeprom with this command:
sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom
-2020-05-15.bin
Reboot.
Verify the bootlader version
vcgencmd bootloader_version
Verify the bootloader config
vcgencmd bootloader_config
Check that BOOTORDER=0xF41.
4: is for booting from USB, while 1 is for booting from SD Card.
Copy all .elf and .dat files from our SD card into the boot directory of your new SSD
sudo mkdir /mnt/mydisk
sudo mount /dev/sda1 /mnt/mydisk
then
sudo
cp /boot/*.elf /mnt/mydisk
sudo cp /boot/*.dat /mnt/mydisk
Shutdown the Raspberry. Remove the card. Power on.
Thank you to Andreas Spiess.
https://www.youtube.com/watch?v=zVhYvvrGhMU&feature=push-u-sub&attr_tag=pl5Lmt8epbKz0uIy%3A6
Instruction document from Andreas
We have to change two things:
- The content of the EEPROM on the Raspberry Pi4
- Some files on in the boot directory of the new SSD
As a preparation, we create an SD card and an SSD using the standard tools like Raspberry Pi Imager or Balena Etcher. Put the newest Buster on both.
Then insert the SD card in your Pi4 and boot.
Then update Raspbian as usual and add an Rpi-update. Say yes to everything.
sudo apt update
sudo apt upgrade
sudo rpi-update
Reboot and install rpi-eeprom to change the content of the eeprom
sudo reboot
sudo apt install rpi-eeprom
Now we have to change the place where the new content of the eeprom sits. We do that with editing this file and replace critical with beta. Save it and reboot.
sudo nano /etc/default/rpi-eeprom-update
(replace 'critical' by 'beta'). Close and Save
Now we are ready to program the eeprom with this command
sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-05-15.bin (check the latest available version of this file)
then
sudo reboot
If you want you can check the bootloader version:
vcgencmd bootloader_version (it is the May 15th version)
and
vcgencmd bootloader_config (chek if BOOTORDER=0xF41 - 4 is for USB and 1 is for SD Card)
Now we are done with the raspberry and can go on to the new SSD
We have to copy all .elf and .dat files from our SD card into the boot directory of our new SSD:
For that, we have to mount the SSD:
sudo mkdir /mnt/mydisk
sudo mount /dev/sda1 /mnt/mydisk
and copy the files from the SD card to the SSD:
sudo cp /boot/*.elf /mnt/mydisk
sudo cp /boot/*.dat /mnt/mydisk
Shutdown, remove the SD card, power up, and pray…