Hi I am making this thread because someone pointed that my previous was not specific enough. I am trying to move my root filesystem to external usb on my raspberry zero v1.3. I have additional raspberry pi 1B+ which I use for debugging cause it has regular hdmi output. I followed a few tutorials on how to do it an here are the steps i took:

Creating PRIAMRY partition via fstab on dev/sda called dev/sda1, then i formated the partition":
sudo mke2fs -t ext4 -L my_data /dev/sda1

Next step was mounting the partition in /mnt folder and copying root files to /dev/sda1
sudo rsync -axv / /mnt

The last thing I was supposed to do was changing cmdline.txt so that root=PARTUUID coresponds to the PARTUUID of dev/sda1 and at the end of the file I added rootdelay. And just before the reboot i changed /etc/fstab so that now it should mount my partition at boot now it says:

PARTUUID=My dev/sda1 UUID / ext4 noatime,nodiratime,defaults 0 1

And still no luck. After the reboot it says "waiting for root device PARTUUID=******************".

This is my /etc/fstab:
proc /proc proc defaults 0 0 PARTUUID=39c0b0b1-01 /boot vfat defaults 0 2 PARTUUID=735ad48f-8226-cd40-8405-77d27761a4e7 / ext4 defaults,noatime 0 1

This is my /boot/cmdline.txt:
console=serial0,115200 console=tty1 root=PARTUUID=735ad48f-8226-cd40-8405-77d27761a4e7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether rootdelay=5

I was trying different configurations like root=dev/sda1 in both cmdline.txt and fstab files. I tried using several more usb drives, like SSD or HDD even few pendrives. Still no luck. It acts like root is not mounting. I thought it was because of raspberry undervoltage so i bought external power supply for my hdd disk. Nothing changed.

Then I came across this usb_boot script. It moves all of the files from sd to usb, and changes cmdline.txt so that it points to root on usb. According to the creator and official raspberry pi website all i need after moving boot and root partitions to usb is sd card formated to fat32 and bootcode.bin file on it. But when I insert sd card to raspberry zero or b+ with only bootcode.bin it acts like there is no sd card at all. It just dont boot no matter what. All I need is move root to usb because it is going to be read/write server and i need higher capacity and durability. Why the bootcode.bin does not work and why usb drive is not mounting on boot when I use boot from sd and root on usb? Please help it is getting really frustrating I have been trying to fix this for weeks.

  • PARTUUID=735ad48f-8226-cd40-8405-77d27761a4e7 isn't a valid PARTUUID ... root will likely be PARTUUID=39c0b0b1-02 - or use UUID=735ad48f-8226-cd40-8405-77d27761a4e7 since that's the UUID of the root partition, not the PARTUUID
    – Bravo
    Oct 21, 2021 at 23:30

1 Answer 1


There are many things wrong with your Question, much detail missing.

There are 2 fundamental issues:-

  1. 735ad48f-8226-cd40-8405-77d27761a4e7 is NOT a PARTUUID
  2. modules-load=dwc2,g_ether is incompatible with use of the USB for storage.

Frankly trying to use a Pi Zero with an external drive is a waste of time. You would be better to get a real Pi.

If you REALLY want to try boot the Pi, then use SD Card Copier to copy to the HDD, selecting the option to create a new PARTUUID, then edit cmdline.txt on the SD Card to use the PARTUUID of the copied HDD.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.