Boot from SSD

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:

  1. The content of the EEPROM on the Raspberry Pi4
  2. 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…