By default, Raspberry Pi boots up and stores all of its programs on a microSD memory card, which has a maximum theoretical bandwidth of 50 MBps on the Raspberry Pi 4 and just 25 MBps on prior models. Using an external SSD as your main storage drive could speed things up significantly, but up until just recently, you couldn't boot the Pi 4 off a USB device. However, new beta-level firmware lets you do just that.
In our real-life tests of a Raspberry Pi 4 with SSD 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.
How to Boot Raspberry Pi 4 from USB
1. Boot from a standard microSD card with the latest Raspbian 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 "beta." You can edit the file by typing:
Sudo nano /etc/default/rpi-eeprom-update
After making the change, hit CTRL+X to exit. Make sure you enter Y when asked whether you want to save.
4. Install the beta bootloader by entering:
sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-05-15.bin
If this fails, it's possible that there's a newer beta with a different filename. Check the /lib/firmware/raspberrypi/bootloader/beta/ directory to find out.
6. Check the firmware version to make sure your update took. You can get the version by typing:
You should see that the firmware date matches the name of the beta file, which in our case was May 15th.
7. Copy your microSD card to your USB drive or burn a new Raspbian image to your USB drive. You can copy your existing microSD card by using the SD Card Copier application (under accessories) that comes with Raspbian. To burn a fresh install of Raspbian onto your USB drive, use Raspberry Pi Imager as you normally would when setting up a Raspberry Pi.
8. Download all the *.dat and *.elf files from the /boot folder of Raspberry Pi's firmware master branch on Github.
9. Copy the *.dat and *.elf files into the boot partition on your USB drive, allowing them to overwrite the files with the same names.
10. 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).
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.