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.
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.
1 2 3 |
sudo apt update sudo apt upgrade sudo rpi-update |
After successfully updating your raspberry pi reboot your Raspberry Pi 4
1 |
sudo reboot |
Now install rpi-eeprom to change the content of the eeprom on your Raspberry pi 4.
1 |
sudo apt install rpi-eeprom |
Now You have to change rpi-eeprom-update file. from FIRMWARE_RELEASE_STATUS=”critical” to
FIRMWARE_RELEASE_STATUS=”beta”
1 |
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
Lets program the eeprom with following command and then reboot your Raspberry Pi 4
1 2 |
sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-05-15.bin reboot |
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.
1 |
vcgencmd bootloader_version |
To view the configuration file used by the bootloader at boot time
1 |
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.
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
root@pihome:~# 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 root@pihome:~# 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.
1 2 3 4 |
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
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