Introduction: Booting Raspberry Pi 3 B With a USB Drive
The Raspberry Pi 3 B can be booted with a compatible thumb drive without spending any money!
Note: The Raspberry Pi 3 B+ can be USB booted out-of-the-box.
Step 1: Boot Your Pi on the SD!
The Raspberry Pi 3 B+ is able to boot from USB without any changes, but the Raspberry Pi 3 requires the USB boot bit to be set in the OTP (one-time programmmble).
To enable the USB boot bit, the Raspberry Pi 3 needs to be booted from an SD card with a config option to enable USB boot mode. Once this bit has been set, the SD card is no longer required. Note that any change you make to the OTP is permanent and cannot be undone.
You can use any SD card running Raspbian or Raspbian Lite to program the OTP bit. First, prepare the /boot directory with up to date boot files:-
sudo apt update && sudo apt upgrade && sudo reboot
Then enable USB boot mode with this code:-
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
This adds program_usb_boot_mode=1 to the end of /boot/config.txt. Reboot the Raspberry Pi with:-
Then check that the OTP has been programmed with:-
vcgencmd otp_dump | grep 17:
Check that the output 17:3020000a is shown. If it is not, then the OTP bit has not been successfully programmed. In this case, go through the programming procedure again. If the bit is still not set, this may indicate a fault in the Pi hardware itself.
If you wish, you can remove the 'program_usb_boot_mode' line from config.txt, so that if you put the SD card in another Raspberry Pi, it won't program USB boot mode. Make sure there is no blank line at the end of config.txt. You can edit config.txt using the nano editor using the command:-
sudo nano /boot/config.txt # then scroll all the way to the bottom
Step 2: After Reboot...
Now we need get a compatible USB drive that can be used to boot the Pi!
I am using a Buffalo RUF3-KS Drive because it's fast and cheap....Most of the Verbatim Drives don't work!
We now need to burn an .img to the usb drive(replace 'X' with your Storage):-
sudo dd if=/dev/sdX of="/path/to/image.img"
Do this carefully you can really screw up your computer!
Now you can shutdown your system:-
sudo shutdown now
Step 3: Booting It Up!!
Now you can remove your SD card....
After you have removed your SD card....insert the USB Drive in a USB port and power it up!