How to Boot from USB
In the fall of 2020, Raspberry Pi released the long-awaited Raspberry Pi 4 boot EEPROM to boot directly from a USB3 drive without having the MicroSD card plugged in. Jeff Geerling has a blog and video showing the upgrade: I’m booting my Raspberry Pi 4 from a USB SSD.
Prepare the Raspbian microSD
If you are updating multiple Raspberry Pis, like me, these steps only have to be done once to prepare the microSD card. Reuse the microSD on any Raspberry Pis that need the EEPROM update. Only the last two steps, “rpi-eeprom-update” and “vcgencmd,” get repeated after updating the first Raspberry Pi.
Flash a MicroSD card with Raspbian. I use Raspbian lite, the server version. Be sure to add the ssh file after flashing.
1
touch /Volumes/boot/ssh
Eject the microSD, insert it into the Raspberry Pi, power it up, and wait a bit for it to come online. Use ping to find the IP address on your network.
1
ping -c 2 raspberrypi
Connect to the IP address using ssh, and log in as user “pi” using the password “raspberry.”
Updating the EEPROM
If you have an older Raspberry Pi 4, you need to upgrade the boot loader EEPROM to enable booting from USB drives. Update Rasbian to get the latest boot loader, and then edit “/etc/default/rpi-eeprom-update” to allow the Pi to use the latest stable version.
1
2
3
sudo apt update
sudo apt full-upgrade -y
sudo vi /etc/default/rpi-eeprom-update
Change the status from “critical” to “stable.”
Now, find the latest EEPROM version.
1
ls /lib/firmware/raspberrypi/bootloader/stable/pieeprom-*
Install the latest one; in my case, that is 2020-09-03.
1
sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/stable/pieeprom-2020-09-03.bin
Reboot, reconnect, then verify that the bootloader is up to date.
1
vcgencmd bootloader_version
Use the same microSD card to update any other Raspberry Pis that need the new EEPROM. You only have to repeat the “rpi-eeprom-update” and “vcgencmd” steps for additional Raspberry Pi. Luckily, changing the boot firmware was a one-time change.