Raspberry Pi 4 - Won't boot from flash drive

I have updated the EEPROM on all of my Pi4s that I use for testing etc.

I have gone into raspbian and changed the boot order from SD to USB and I have flashed (using etcher and raspberry pi USB tool) several different operating systems on USB thumb drives (32Gb, Kingston USB 3.0) but to no avail.

I have done the same with USB hard drives and hard drives in a USB 3 dock, both work. But for some reason I can’t get the thing to boot from a regular thumb drive.

I have come across simular behaviour when trying to boot windows from a USB stick, something to do with a bit flip that tells they system it’s a USB or boot drive? But I am stumped as to how to fix it on the Pi4.

Any clues or help out there?

You are suspecting the boot partition does not have the “Boot Flag” set on? You can check this in Linux pretty easily with gparted, and if you can access the USB partitions in windows disk management, you could check it there?

It is also set table from window’s command line (DISKPART) or from Linux’s CLI (several *part apps)

That is if it is the “boot” flag you are thinking of.

I’ve not booted from USB on a Pi yet, but have a YT vid I was meaning to watch.
Do you have a link to the guide you followed?

I will check all that and see how I go, thanks for the solid answer.
The guide just involves booting from SD into raspberrian and doing a full update, upgrade3 and then a eeprom upgrade. The run the boot config app.

Something like that. I will try what you have suggested and post an update for anyone else who comes across this one.

1 Like

If you don’t have a 2 (or even 1 gb) sd card lying around, then obviously this is not for you. I like putting my old tech to good use.

I have a couple of 2gb micro sd cards lying around, so what I do is mount a usb ssd on /mnt, create a boot folder ( mkdir /mnt/boot ), mount the sd card in /mnt/boot, then untar the ROOTFS image for the Pi in mnt. I think you can extract the RPi image and then extract or copy everything over in mnt. You can use a live-boot system if you don’t have Linux installed on your main PC. The downside of this is that you need another USB beside the 32gb one you are trying to install Ubuntu on (you only need an 8gb usb for a live image for your PC, you could go with a 2gb model if you are using a lightweight distro). The sd needs to be formatted as fat32, the usb needs to be ext4.

My Pi doesn’t even care if it’s booting off of an sd card, on the ssd it boots Void Linux in 9 seconds start to finish (and powers off in 3). I didn’t bother to look how to boot directly off of the usb ssd and my 2 gb microsd cards are put to use (also, I can fit Alpine Linux on a 2gb sd and it’s surprisingly fast).

I am just rolling with Pi4 4Gb models at the moment, and really looking for the speed of USB3(avoiding the SD card all together).

I would have to buy some more SD cards before I had any lying around.
Pretty good workaround though.

Thanks for your 2c non the less :slight_smile:

1 Like

I moved full time for a week on a Pi4 (8gb, but could have easily used a 4GB model, 4GB were always just cache) with a 2GB SD card for boot drive and a 256GB M.2 NVME SSD (on a 3.0 enclosure) running Void (until I gave my TV to my mom and now I don’t have a monitor at all). And it was great. For some reason, Void and Fedora on my 32GB SD card was dog slow, but Ubutnu 20.04 and 20.10 were ok (aside from my beef with Ubuntu). I used this Pi for 2 months full time before on Ubuntu, last year and it was ok, but really, the difference between an SD and SSD and a slight OC to 2GHz makes a night-and-day difference, going from unusable (as a desktop) to an actually ok experience.

For anyone who want to try, you can dd (or use Pi Imager on) Ubuntu, Raspbian, Manjaro, Arch ARM, Fedora or anything else directly on an USB SSD, then just copy the boot (fat32) partition on a small SD card, then delete the original boot partition from the SSD and lastly, modify /boot/cmdline.txt (from the SD) and change /dev/mmcblk0p1 to /dev/sda1 and the Pi should boot from SD (to load grub and stuff) and then do everything else from the SSD.

I can barely wait to move and buy a portable monitor and move back to my Pi 4 as my main PC.

1 Like

Is that how one used to run from a USB drive before Pi4’s firmware update? Where you put the boot partition on an SD card, pointing to an install on a usb drive?

Yes, but for some reason, even with Raspbian, I updated to the latest stuff with apt (I remember seeing something about firmware in updates), but for some reason, Void doesn’t boot directly off of USB (but I don’t mind, my 2GB SD cards are wasting space and I like putting them to good use).

1 Like

Fair play, I’m spoiled, starting my pi journey with v4, so have it easy…

That’s weird. I’m seeing everywhere that you can just drop an image on a USB SDD and it just boots from it, no questions asked.
I’m about to pick up a cheap one for my setup, but you’re making me “worried” about the simplicity of the USB boot.

@Trooper_ish Don’t forget to overclock it to 2GHz if you get good enough cooling for it. It’s free performance.

This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.