Booting Raspberry pi from SSD is more reliable then small might SD card that never designed for Operating System. After long waiting finally native USB boot for raspberry Pi 4 is here. I know it is in beta now but i can not wait to get my hands dirty with this. Now lets boot Raspberry pi 4 from USB SSD disk.

Raspberry pi 4

Raspberry pi 4

Note: Its not the final release and upgrade at your own risk.

You still need SD card to boot Raspberry pi 4 to make some configuration change so lets copy Raspberry Buster to sd card and to you SSD disk as well and boot your Raspberry pi 4 from sd card first and run following commands.

sudo apt update
sudo apt upgrade
sudo rpi-update
sudo rpi-update warning

sudo rpi-update warning

After successfully updating your raspberry pi reboot your Raspberry Pi 4

sudo reboot

Now install rpi-eeprom to change the content of the eeprom on your Raspberry pi 4.

sudo apt install rpi-eeprom

Now You have to change rpi-eeprom-update file. from FIRMWARE_RELEASE_STATUS=”critical” to
FIRMWARE_RELEASE_STATUS=”beta

sudo nano /etc/default/rpi-eeprom-update

Now after making changes to rpi-eeprom-update file you can run following command to check lates version

Raspberry Pi 4 eeprom version

Raspberry Pi 4 eeprom version

Lets program the eeprom with following command and then reboot your Raspberry Pi 4

sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-05-15.bin
reboot
Raspberry pi 4 update eeprom

Raspberry pi 4 update eeprom

Reading the EEPROM version, for me it is May 15th version but may be in next few days that changes and you might have different version.

vcgencmd bootloader_version

To view the configuration file used by the bootloader at boot time

vcgencmd bootloader_config

Now if you see BOOTORDER=0xF41. 4 is for booting from USB and 1 is booting from the sd card. Now we are lets move to SSD and you have to copy all .elf and .dat files from your SD card into the boot directory of your new SSD.

Raspberry pi 4 bootloader config and version

Raspberry pi 4 bootloader config and version

Now you need to copy all *.elf and *.dat files from your SD card to your USB SSD disk boot directory, you can list these files while your raspberry pi is still up.

[email protected]:~# ls -l /boot/*.elf
-rwxr-xr-x 1 root root  816124 May 22 11:44 /boot/start4cd.elf
-rwxr-xr-x 1 root root 3774404 May 22 11:44 /boot/start4db.elf
-rwxr-xr-x 1 root root 2272800 May 22 11:44 /boot/start4.elf
-rwxr-xr-x 1 root root 3031460 May 22 11:44 /boot/start4x.elf
-rwxr-xr-x 1 root root  816124 May 22 11:44 /boot/start_cd.elf
-rwxr-xr-x 1 root root 4846212 May 22 11:44 /boot/start_db.elf
-rwxr-xr-x 1 root root 2996928 May 22 11:44 /boot/start.elf
-rwxr-xr-x 1 root root 3755044 May 22 11:44 /boot/start_x.elf
[email protected]:~# ls -l /boot/*.dat
-rwxr-xr-x 1 root root  3146 May 22 11:44 /boot/fixup4cd.dat
-rwxr-xr-x 1 root root  5405 May 22 11:44 /boot/fixup4.dat
-rwxr-xr-x 1 root root  8417 May 22 11:44 /boot/fixup4db.dat
-rwxr-xr-x 1 root root  8419 May 22 11:44 /boot/fixup4x.dat
-rwxr-xr-x 1 root root  3146 May 22 11:44 /boot/fixup_cd.dat
-rwxr-xr-x 1 root root  7274 May 22 11:44 /boot/fixup.dat
-rwxr-xr-x 1 root root 10265 May 22 11:44 /boot/fixup_db.dat
-rwxr-xr-x 1 root root 10265 May 22 11:44 /boot/fixup_x.dat

Lets copy the all .dat and .elf files to USB SSD disk, i m doing this by mounting my USB SSD to to raspberry pi and copy these files but you can copy these files from using your computer.

Lets copy the all .dat and .elf files to USB SSD disk, i m doing this by mounting my USB SSD to to raspberry pi and copy these files but you can copy these files from using your computer. if you are already logge in as root you dont dont need put sudo in front of every command.

mkdir /mnt/usbssd
mount /dev/sda1 /mnt/usbssd
cp /boot/*.elf /mnt/usbssd
cp /boot/*.dat /mnt/usbssd

After copying *.elf and *.dat files boot Raspberry pi 4 from USB SSD disk.

One thing to note here, i tried USB 3 adapter to my Raspberry pi 4 USB3 port and as soon as i connect my usb 3 my Raspberry pi 4 stopped responding so i had to use USB 2 port on my Raspberry pi 4 even i have USB 3 SSD adapter.

Raspberry Pi 4 USB mass storage beta Link

Raspberry pi 4 Bootloader Configuration

Raspberry pi GitHub Link

Note:  USB mass storage boot will NOT work without the updated firmware start.elf binaries. These will probably be released via rpi-update in a few days time.  This release simply helps to validate if there are regressions in the current SD and Network boot modes.

If you want to resize your SSD disk to extend full disk space read this post: Resizing the USB SSD on Raspberry Pi