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. In real-life, even the best microSD cards for Raspberry Pi get no faster than about 38 MBps in sequential writes. Using an external SSD as your main storage drive could speed things up significantly and, with a few commands and a simple firmware update, you can 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.
Update (9/2): We have updated this how-to to show the new, easier way to boot your Raspberry Pi from USB.
How to Boot Raspberry Pi 4 from USB
If you want to start with a fresh install of Raspberry Pi OS, simply follow the instructions in our tutorial on how to set up Raspberry Pi or how to do a Raspberry Pi headless install and then skip ahead to step 6. The latest versions of Raspberry Pi OS (as of Aug 20 or later) have many of the necessary changes built-in.
1. Boot from a standard microSD card with the latest Raspberry Pi OS on it.
2. Update your OS and firmware by typing:
sudo apt update sudo apt full-upgrade sudo rpi-update
3. Reboot the Raspberry Pi
4. Install the latest bootloader by typing
sudo rpi-eeprom-update -d -a
5. Reboot the Raspberry Pi again.
6. Launch raspi-config
7. Select Boot Options (item 3) and press Enter.
8. Select Boot ROM Version and press Enter.
9. Select Latest and then Ok.
10. Select No to use the latest boot ROM. This will trigger the Raspberry Pi to complete a series of behind the scenes configuration steps. Press Ok to close the next dialog.
11. Select Boot Order and press Enter.
12. Select USB Boot and click Ok. Note that if there is a bootable micro SD card inserted, the Raspberry Pi will boot using that. Press Ok to close the next dialog.
13. Select Finish and when asked to reboot select No.
14. Launch SD Card Copier from the Accessories section of the start menu. Ensure that your SSD or Flash drive is connected to the Raspberry Pi using a USB 3 port.
15. Select the Copy From Device (micro SD card), and the Copy To Device (the SSD). Double check that the correct drives are selected and click Start to copy the files across. The process should take around ten minutes to complete.
16. Shut down the Raspberry Pi.
17. Remove the microSD card.
18. Power up the Raspberry Pi and it will boot from the USB SSD or Flash drive.
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.