Getting Rasperry Pi 4 B to boot from an SSD in USB 3.0 port

Finally got it working. There were quite a few issues along the way but the main revelation came when I noticed that I was able to boot from an USB 2.0 port after all. This helped narrow down the issue and eventually led to a fix that allowed me to boot from the SSD in USB 3.0 port.

That being said, If you are having issues with getting your Rasperry Pi to boot from an SSD, check first in which port you have the SSD plugged into. If you’re unable to boot the SSD being in the USB 3.0 port, try if it works the SSD being in the USB 2.0 port. If it does, here’s what you can try to get it to work with USB 3.0 as well. I’m going to assume that you have other things in order (such as boot order set up correctly and you are are able to boot up your Rasperry Pi one way or another).

1. Find idVendor and idProduct of your USB SSD

With your SSD plugged in the Raspberry Pi, run a command dmesg in the terminal.

You might get a huge wall of text but somewhere in there, you should find information about your USB SSD that might look something like this: [2.120121] usb 2-2: new SuperSpeed USB device number 2 using xhci_hcd [2.141723] usb 2-2: New USB device found, idVendor=2109, idProduct=3431, bcdDevice= 3.01

The important bits here are the values in idVendor and idProduct, so take a note of those. Yours likely differ from mine.

2. Edit /boot/cmdline.txt

Now, edit the mentioned file using sudo nano /boot/cmdline.txt. In the very beginning of the file, add usb-storage.quirks=idVendor:idProduct:u where in the place of idVendor and idProduct you use the values from the previous step. In my case, that would be usb-storage.quirks=2109:3431:u.

Save the file, exit the editor, power off Raspberry Pi, plug the SSD into the USB 3.0 port and it should boot properly.

You can find more information about the issue and the fix here.

I hope this helps you.