HOW TO: Boot Raspberry Pi 4 from USB SSD DriveFebruary, 2021
The Raspberry Pi 4 comes with an EEPROM that supports USB booting. This HOW TO will walk you through updating the bootloader, verifying the boot order, coping the SD card image onto a USB SSD drive and finally booting from USB.
This HOW TO assumes you have the knowledge to execute commands from a terminal window on the Raspberry Pi desktop or over an SSH connection.
Make sure you are running the latest version of Raspberry Pi OS on your Raspberry Pi 4. You can download it from Raspberry Pi. You will also need to make sure the OS is all up to date.
sudo apt update
sudo apt full-upgrade
1. Check current running version of bootloader EEPROM image.
USB booting was supported starting with version 9-03-2020. You should see that version 9-03-2020 or later is installed. Now check to see if there is an update available.
You should see that the bootloader is up-to-date. By default you will only see updates from the "default" directory. Default updates are not released too often. Even if you see **UPDATE AVAILABLE** you can ignore it as we are going to check for an update in a more frequently released channel or directory called "stable".
2. Upgrade to the latest "stable" EEPROM version.
You will need to change the firmware directory from critical to stable to find the latest updates. To do this, you need to edit a file called
sudo nano /etc/default/rpi-eeprom-update
Change the word "critical" to "stable" and save the file.
Check once again for an eeprom update and you should notice a newer version.
3. Apply the update and reboot.
sudo rpi-eeprom-update -a
You can check the running eeprom version again to ensure the correct version.
4. Check BOOT ORDER configuration.
Take note of the BOOT_ORDER code. The defualt code is 0xf41 and is read right to left to determine the boot order.
1 = Check SD card
4 = Check USB drive
f = Start again
This boot order is exactly what we want. If the boot order code is anything other than 0xf41, you can change the boot configuration using this command.
sudo -E rpi-eeprom-config --edit
5. Copy SD Card image to USB drive.
Make sure you have connected your USB SSD drive to your Pi, very important for this step!
Though this step can be done completely from the command line, we are going to assume you have access to the GUI. You will be using the SD Card copier tool pictured below.
Ensure your FROM device is mmcblk0, this means we want the entire OS on the currently booted SD card. You should recognize the TO device as your SSD drive. This should be the only listing unless you have multiple USB drives plugged in. Hit START and the coping process will begin and could take some time to complete.
6. Shutdown, Remove SD Card and reboot.
Yes, all you need to do now is shutdown your Pi, remove the SD card and your Pi will boot from your USB SSD drive! Congrats! You can check out the video below for a complete visual example to help you understand the process in better detail.