RPi & USB Root


The idea here is to move most of the raspbian operating system to a USB stick/thumb drive/whatever you want to call it.  This essentially moves all files except for /boot/ to that drive; i.e. the main OS is on the USB drive. 

This is helpful in that many USB drives have better life then SD cards considering that there will be lots of read/writes.  It also "feels" like Raspbian is more performant this way.  Oh, and I've only tested with Raspbian and last did it March, 2019; other OSs may work, but no guarantee.

Slow Down

Before the steps though, sometimes one (me) goes off and does things without doing enough research.  :-(  It is not like I did anything bad to my Raspberry Pis; nor would anyone else if they looked through the information below.  But one thing that might get folks where they want to be without as much headache is to permanently alter their Raspberry Pi 3B or 3B+ to boot directly from USB.  This page is not for discussing the ramifications of that choice.  There are lots of opinions as well as information out there; practice your research skills!  :-)

About That OTP Bit

In the end, the steps below are really only needed for Raspberry RPi 2s or older, or with RPi 3s if you don't want to mess with the OTP bit.  I successfully used the steps below on my RPi 2B and one of my RPi 3Bs.  With the method below, I could not use the UUID on one of the RPi 3Bs.  I converted to /dev/sdX# and using a USB drive for "root" was fine.  I did not try it in RPi 3B+ as the OTP bit was set and I put the raspbian image on a USB drive.  Also I could have investigated why the RPi 3B wasn't consistent with device path vs UUID, but I went the OTP path instead.

Oh, also, in March, I got a new kit with touchscreen & Raspberry Pi 3B+.  That RPi 3B+ was already set with the OTP bit to allow for USB booting.  

The Steps, Finally

Now onto the steps:


If you want to get fancy or just cleanup, the old root partition (probably /dev/mmcblk0p2) could be removed and the boot partition (probably /dev/mmcblk0p1) could be expanded.

Another BIG warning, if your setup uses /dev/mmcblk0p2, etc. then you may run into issues with using other USB drives.  You should really consider switching to UUID to make sure the correcrt drive is used.  But be comfortable moving the sd card and USB drive between systems.  At some point you will probably have a un-bootable system.  ;-)  That is part of the fun though, right?

If you run into troubles, don't forget that the boot partition is usually FAT32, so Linux, Mac or Windows could be used.  The USB drive is going to be ext4, so using Linux to edit its contents is the safest choice.  I like Kubuntu and elementary OS.