How to Boot Raspberry Pi 4 From a USB SSD or Flash Drive

2020-07-05

 By default, boots up and stores all of its programs on a microSD memory card, which has a maximum theoretical bandwidth of 50 MBps on the and just 25 MBps on prior models. In real-life, even the get no faster than about 38 MBps in sequential writes.  Using an external SSD as your main storage drive could speed things up significantly, but up until recently, you couldn't boot the Pi 4 off a USB device. However, new firmware in Raspberry Pi's  "stable" update channel let's you do just that. 

In our real-life last year we got impressive performance with sequential transfer rates as high as 140 MB / 208 MBps for reading and writing. You can also use a standard USB flash drive, though we found the performance worse than a microSD card on many tasks.

Update (7/5): We have updated this how-to to reflect the fact that USB booting firmware is now in the stable channel.

 How to Boot Raspberry Pi 4 from USB

1. Boot from a standard microSD card with the latest Raspberry Pi OS on it. 

2. Update your OS by typing:

sudo apt update sudo apt full-upgrade

3.  Edit the /etc/default/rpi-eeprom-update file and change the FIRMWARE_RELEASE_STATUS value from "critical" to "stable." You can edit the file by typing:

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

Raspberry Pi 4 USB Booting: Changing the eeprom-update file (Image credit: Tom's Hardware)

After making the change, hit CTRL+X to exit. Make sure you enter Y when asked whether you want to save. 

 4. Install the new bootloader by entering: 

sudo rpi-eeprom-update -d -a

5. Reboot.

6. Check the firmware version to make sure your update took. You can get the version by typing:

vcgencmd bootloader_version

You should see that the firmware date is June 15th (the first stable release to support USB booting) or later.

(Image credit: Tom's Hardware)

 7. Copy your microSD card to your USB drive or burn a new Raspberry Pi OS image to your USB drive. Note that NOOBS, which has a recovery partition, doesn't work for this (you need plain Raspberry Pi OS). You can copy your existing microSD card by using the SD Card Copier application (under accessories) that comes with Raspberry Pi OS. If you are copying your up-to-date microSD card, you can skip step 8.

To burn a fresh install of Raspberry Pi OS onto your USB drive, use Raspberry Pi Imager as you normally would when . Then follow step 8.

(Image credit: Tom's Hardware)

 8. Copy all the *.dat and *.elf files from the /boot folder of your microSD card (the one you just updated to the latest version of the OS) into the /boot folder on your USB drive. You can do this either from within Raspberry Pi OS or by connecting both drives to your PC. You can skip this step if you made your USB drive an exact copy of your microSD card.

(Image credit: Tom's Hardware)

 9. Shutdown your Raspberry Pi and remove the microSD card.

You should now be able to boot your Raspberry Pi 4 off of the USB device. Keep in mind that, if you are using an external drive that saps a lot of power from the bus, you may have issues (which you could probably solve by using a drive that has its own power source or by using a powered USB hub).  

(Image credit: Tom's Hardware)

For example, we had problems using a bus-powered, external Kingston HyperX SSD, which booted but -- perhaps because of how much power it was using -- none of our peripherals would work. A SATA SSD in a externally powered dock worked fine as did a USB Flash drive.