X
    Categories: Guides

How to boot Raspberry Pi 3 from USB Storage

This tutorial quickly explains how to boot raspberry pi 3 from USB storage such as flash drive or USB Hard disk. As of April 2017 this has officially baked into there main kernel and is fully supported by raspberry pi.

Equipment List

Raspberry Pi 3 ► Amazon | Ebay

USB HDD ► Amazon | Ebay

Software List

Raspbian Pixel ► https://www.raspberrypi.org/downloads/

Etcher  ► https://etcher.io/

Process

Downloading Stuff

First you will need to download Rasbian Pixel, this method does work with other newer OS too such as OSMC.

Now we will need a piece of software called etcher to write the image onto our SD card and USB Storage device.

Prepare the SD-Card and USB Storage

With all the software downloaded, now lets write the downloaded image to both the SD card and USB storage device, if you are unable to detect the USB storage device be sure to check the “unsafe” option in settings of etcher

Program USB Boot Mode

Once both the images have been written, we will need to insert a line to our config.txt file located at

/boot/config.txt

now add

program_usb_boot_mode=1

to the end of the file on both sdcard and USB storage

This will set a bit in the OTP (One Time Programmable) memory in the Raspberry Pi SoC that will enable booting from a USB mass storage device. 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.

But you will still be able to boot from SD card if it is inserted and does not change the operations of your Pi

Now that the hard part is completed we just need to boot it from sd-card first. then reboot once it’s completely booted to ensure it has written the boot mode to the Pi. After the reboot you can now remove the SD-card and plug in the USB Storage device.

Be sure to remove the boot mode code from your sdcard when these steps are completed or you might flash another Pi by accident.

Troubleshooting

If your Pi is not booting from the usb storage device, you can check to see if the boot mode has been written by running this command on the Pi booted from SD

$ vcgencmd otp_dump | grep 17:
17:3020000a

ensure the output 0x302000a is shown. If not then the boot mode has not been written successfully.

Is it also possible that your USB Storage device is not supported, try on another storage device if possible.

 

 

novaspirit: Avid Thinker, Computer Programmer, Web evangelist, Hacking / Breaking expert, Problem Solver, Technology Obsessed, Gamer, 3D printing, Coffee lover!

View Comments (9)

  • Don,

    I love all your videos! You're awesome! I was hoping you could make a video of how to add a portable dvd to a pi or pi zero. Thanks!

    Adam

  • Hey Don!

    I'm from Brasil and don't miss your vídeos! I was waiting this tutorial at a long time! since you've posted about how to make home automation with openhab, i have done a lot of automations in my home, but i can't undestand some documentations, so... I could asking help to you? I can't find on youtube or any other placa on internet, tutorials about how to do simple rules on openhab. Realy Hope you could make a vídeo teaching off how to, for exaple, read a button and change status (werever this status was, change it, if on: change to off and vice versa) off an item on openhab. The pruporse is control a lamp digital or fisically ( because my gramma, dont use cellfones or computers). any way, congratullatins for your videos, them aways are fantastic! best regards, Daniel.

    • About "and don’t miss your vídeos!", I meant that I do not lose of watching any of your videos. Sorry if I did not know how to expire correctly.

  • Everything worked great thanks! Can we still use the force turbo in the config.txt? If so do we need the "boot_delay=1"?

  • Great videos. This worked with a 32 GB PNY USB drive but not with my 240 GB SSD from Patriot.

    I am wanting a low power system that has much more disk space for a cloud server.

    How do I add a swap file to this?

  • What are you using to power the hard disk? It seems as if its the same cable you are using to power the Raspberry pi and also send data between the Raspberry pi and the hard disk.

Related Post