New Raspberry Pi 4 Bootloader USB / Network Boot Guide

Raspberry Pi 4 with Samsung 950 Pro NVME SSD
Raspberry Pi 4 with Samsung 950 Pro NVMe SSD

The new Raspberry Pi 4 bootloader has finally come out of beta and made it’s way into the official latest Raspbian! This has been long awaited since when the Raspberry Pi 4 was released it had no native support for booting from USB / Network but it was promised right from the start it would get it through a later update.

This guide will show how to configure the new bootloader and set up your Pi to boot from USB devices as well as the other boot options now available within the Raspberry Pi 4 bootloader.

If you are looking to boot Ubuntu 20.04 or Ubuntu 20.10 you should check out my guide specifically for Ubuntu here.

Equipment Used

Raspberry Pi 4
Raspberry Pi 4

The Raspberry Pi 4 is available in different memory configurations all the way up to 8 GB. It’s about the size of a credit card and uses an extremely low amount of power making it ideal for all sorts of projects and ideas!

Links: AliExpress.com*, Amazon.ae*, Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.com.mx*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.in*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.sa*, Amazon.se*, Amazon.sg*

NVMe (High Performance) Option:

Samsung 970 EVO Plus NVMe SSD

The Samsung 970 EVO Plus is a fantastic drive and has fallen in price substantially. It’s widely available around the world. The smaller capacities (such as the 250GB version) of this drive are perfect for the Pi! This is the top performance option without going into the “Pro” series of the lineup which are much more expensive.

Links: AliExpress.com*, Amazon.ae*, Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.com.mx*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.in*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.sa*, Amazon.se*, Amazon.sg*

ICY BOX M.2 NVMe Enclosure

The ICY BOX is basically a giant heatsink that you mount a high performance M.2 NVMe drive inside of. This enclosure is really fast but requires a powered USB hub. Not even the 3.5A adapter can reliably power it! The enclosure works well and will physically feel warm to the touch as it is pulling the heat off your NVMe drive!

Links: Amazon.ae*, Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*, Amazon.sg*

2.5″ SATA Option:

Kingston A400 2.5″ SATA SSD

The Kingston A400 has been a great drive to use with the Pi for years. It’s reliable, widely available around the world, has low power requirements and performs very well. It’s also very affordable. This drive has been benchmarked over 1000 times at storage.jamesachambers.com and is the #1 most popular SSD among the Pi community!

Links: AliExpress.com*, Amazon.ae*, Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.com.mx*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.in*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.sa*, Amazon.se*, Amazon.sg*

StarTech 2.5" SATA to USB 3.0/3.1 Adapter
StarTech 2.5″ SATA to USB 3.0/3.1 Adapter

Both the USB 3.0 and USB 3.1 variants of the StarTech 2.5″ SATA adapter work well with the Pi 4. I’ve used the 3.0 variant with my Pi 4 since launch and it has always worked well. I later bought the 3.1 variant and had the same positive experience. These two adapter variants are my go to adapters for all my Pi related projects that need a fast and easy 2.5″ SATA SSD!

Links: Amazon.ae*, Amazon.ca*, Amazon.cn, Amazon.com*, Amazon.com.au*, Amazon.com.mx*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.in*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.sa*, Amazon.se*, Amazon.sg*

Compact Option:

SanDisk Extreme Pro SSD

The SanDisk Extreme Pro USB SSD is a true solid state drive. This is different than a typical “flash drive” which uses extremely cheap memory and has very low random I/O performance/throughput compared to a real solid state drive. I’ve used both the USB 3.1 and USB 3.2 variants with the Pi successfully and they benchmark very well!

Links: AliExpress.com*, Amazon.ae*, Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.com.mx*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.in,* Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.sa*, Amazon.se*, Amazon.sg*

SD card option:

SanDisk Extreme A1 SD Card

The SanDisk Extreme A1-A2 SD card has the best scoring SD card on storage.jamesachambers.com for years and is second in popularity only to the SanDisk Ultra (often included in combo kits). The application class (A1) means random I/O speeds (very important when running an OS) have to meet a higher standard. There’s no benefit on the Pi for A2 right now so get whichever is cheaper/available.

Links: AliExpress.com*, Amazon.ae*, Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.com.mx*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.in*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.sa*, Amazon.se*

You may use other types of drives with the Pi such as M.2 SATA to USB 3.0 and m-SATA to USB 3.0. Here’s some adapters I’ve used for those types of drives:

UGREEN M+B Key M.2 Enclosure

The UGREEN M+B enclosure is a great enclosure for the Pi for M.2 SATA 2280 NGFF drives. It supports both B-key and M-key drives. Does not support newer NVMe drives. As with other types of enclosures it requires more power than other options!

Links: AliExpress.com*, Amazon.ae*, Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.in*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.sa*, Amazon.se*, Amazon.sg*

VL716 mSATA Enclosure

The VL716 mSATA enclosure lets you connect micro SATA drives to the Pi. These drives are an older type of SSD (usually seen in laptops) predating the M.2 slot but are still widely available and perform extremely well!

Links: AliExpress.com*, Amazon.ae*, Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.com.mx*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.in*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.sa*, Amazon.se*, Amazon.sg*

Another option for M.2 SATA (not NVMe) is to use the Argon One Pi case:

Argon ONE Pi 4 Case
Argon ONE Pi 4 M.2 Case

The Argon ONE M.2 is a M.2 SATA Pi 4 case / storage solution. With the case and M.2 SATA expansion board you can completely enclosure your Pi 4 and have a built in M.2 slot! The M.2 SATA board is sometimes sold separately from the case itself and can be used as well. Does not support NVMe, this is for SATA M.2 drives only!

Links: AliExpress.com*, Amazon.ae*, Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.com.mx*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.sa*, Amazon.se*, Amazon.sg*

Power Requirements

Power can be a serious problem with these drives. We are learning from the comments that you are especially likely to run into power issues with NVMe enclosures. A powered USB hub or a power adapter that puts out 3.5A comes not only just strongly recommended, it may actually be required that you choose one option or the other for your drive to function.

The specific requirements of how much power you’ll need depend on the adapter/enclosure and the model of your drive itself. As a very rough guideline, older models of drives tend to use more power than newer models of drives. 3.5″ form factor drives also use more power than 2.5″ drives. The earliest SSD models like first and second generation models are also well understood to use significantly more power than newer models. This is due to changes and improvements in technology over the years and even using different more efficient memory like 3D NAND. Some super high end performance drives will consume more power as well.

Here’s the current recommendations based on everyone’s comments combined with stuff I’ve personally used with the Pi:

CanaKit 3.5A Power Adapter

The CanaKit 3.5A adapter has an extra half an amp (500 mA) of capacity to give some breathing room to your accessories. This is bigger than the official Pi power supply which provides 3.0A.

Links: Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.com.mx*, Amazon.sg*

Sabrent Powered USB 3.0 Hub

The Sabrent powered USB hub delivers a whopping 2.5A of dedicated power for your USB attached devices. This is almost as much as the Pi adapter itself is rated for (3.0A). It will easily power the most thirsty of setups such as NVMe enclosures.

Links: Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.co.uk*, Amazon.es*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*

Note: Make sure Amazon doesn’t try to take you to the non-powered version and that it’s the one with the AC adapter that plugs in to provide extra power

Known Working Adapters

This is a compiled list of known working adapters built by myself from adapters I’ve purchased and commenters from ones they have purchased in this article and my older guide that utilized a SD card for USB booting.

StarTech 2.5″ SATA to USB 3.1 Adapter*2.5″ SATA to USB 3.0Verified working in comments (thanks Fredrick)
StarTech 2.5″ SATA to USB 3.0 Adapter*2.5″ SATA to USB 3.1Verified working great by myself and others on Pi 4
Inateck FE2004 2.5″ SATA to USB 3.0 Hard Drive Enclosure*2.5″ SATA to USB 3.0Mirco reports that this enclosure is working but trim is not supported
Samsung 2.5″ SATA to USB 850 EVO Kit /w Adapter* (Alternate amazon.de link*)2.5″ SATA to USB 3.0 KitThis is a kit that comes with a drive and adapter. Rene confirms the adapter works including with non-Samsung drives.
CSL 2.5″ SATA to USB 3.0 Adapter*2.5″ SATA to USB 3.0The CSL SL adapter is confirmed to be working by Krikitt in the comments. Available in Europe. Not available in US.
UGREEN 2.5″ SATA to USB-C 3.1 Enclosure Drive Caddy*2.5″ SATA to USB-C 3.1Confirmed to be working by CAProjects in the comments. Available in both Europe and US
UGREEN 2.5″ SATA to USB-C 3.1 “Protect What You Love” Case* (AliExpress Listing* – Make sure to select USB-C 3.1)2.5″ SATA to USB-C 3.1Reported working by Michal in the comments, thanks!
UGREEN 2.5″ to USB 3.0 “SATA USB Converter” Adapter* (AliExpress Listing*)2.5″ SATA to USB 3.0Also reported by Michal as working in the comments, thanks again!
UGREEN 2.5″ SATA to USB 3.0 Adapter Cable with UASP Converter*2.5″ SATA to USB 3.0This adapter is reported to be working by Mirco in the comments
SABRENT 2.5″ SATA to USB-C 3.1 Type A Adapter*2.5″ SATA to USB-C 3.1 Type AThe new USB-C 3.1 Type A version of the Sabrent adapter is reported as working in the comments by UEF. DO NOT get the USB 3.0 version as that one is below on the naughty list and won’t work!
AliExpress Generic 2.5″ SATA to USB 3.0 3 colors Hard Disk Case*2.5″ SATA to USB 3.0Reported as working with UASP support by pierro78 in the comments
AUKEY 2.5″ SATA to USB 3.0 Rigid Case*2.5″ SATA to USB 3.0Confirmed as working well in the comments by Alex
ASUS ROG STRIX Arion Aluminum Alloy M.2 NVMe SSD External Portable Enclosure Case Adapter* – (AliExpress Listing*)M.2 NVMe (B+M Key) to USB/USB-C 3.2 Gen 2It’s bold. It’s beautiful. It’s also confirmed working by TADRACKET and Steve B.
However, be warned, it takes a *lot* of power!
Steve B. reports that even with the oversized 3.5A CanaKit adapter* it does not work. If you have the standard 3.0 adapter you can be practically certain it won’t power this enclosure.
Does work with a powered USB hub*.
ICY BOX M.2 NVMe (M Key) to USB-C 3.1 Gen 2 Enclosure* (Alternate amazon.de listing*)M.2 NVMe (B+M Key) to USB-C 3.1 Gen 2Returning legendary commentary Frank Meyer reports:
Does not work with a 3.0A power adapter (also reported by TTE). It’s not enough power for this enclosure.
Does work with a powered USB hub*.
TDBT M.2 NVMe (B+M Key) to USB-C 3.1 Gen 2 Enclosure*M.2 NVMe (B+M Key) to USB-C 3.1 Gen 2Confirmed to be working well by WorkHard in the comments
AliExpress Generic M.2 NVMe (B+M Key) to USB 3.1 “M2 SSD Case NVME Enclosure”*M.2 NVMe (B+M Key) to USB 3.1 Type AConfirmed working by Jens Haase, thanks Jen!
SSK Aluminum M.2 NVMe (M Key) to USB 3.1 Gen 2 SSD Enclosure*M.2 NVMe (M Key) to USB 3.1 Gen 2Brian L reports this is working well with beta firmware upgrades, but that it did not work at all without them!
ORICO M.2 NVMe SSD Enclosure, USB 3.1 Gen 2 (10 Gbps)* (AliExpress Listing*)M.2 NVME to USB 3.1 Gen 2M.Yusuf has given the first ever report of a working Orico adapter! Make sure it’s the USB 3.1 Gen 2 version that says “Support UASP for NVMe SSD”. This is the way.
DELOCK 42570 M.2 SATA (B Key) to USB Micro-B 3.1 Gen 2 SSD Enclosure*M.2 SATA (B Key) to USB Micro-B 3.1 Gen 2Andreas Franek reports that the enclosure works with a 3.0A power adapter (gets a little warm)
Shinestar M.2 NVMe (M Key) to USB 3.0 Adapter*M.2 NVMe (M Key) to USB 3.0This is the adapter I’m using in the picture at the top of the article. It is for NVMe M.2 drives only and is getting hard to find
UGREEN M.2 NVMe (B+M Key to USB-C 3.1 Gen 2 SSD Enclosure*M.2 NVMe (B+M Key) to USB-C 3.1 Gen 2Confirmed working in comments by Chad D
UGREEN M.2 SATA (B+M Key) to USB 3.1 Enclosure*M.2 SATA (B+M Key) to USB 3.1 EnclosureReported as working well in the comments by John H. Reinhardt with a ASM1051E chipset
QNINE M.2 SATA (B Key) to USB 3.0 Enclosure*M.2 SATA (B Key) to USB 3.0I used this enclosure to benchmark M.2 SATA Lite-On and SanDisk drives — working great in 3.0 ports
ArgonOne M.2 SATA (B+M Key) Pi 4 Case*M.2 SATA (B+M Key) Pi 4 CaseThis case gives you a M.2 SATA port for your Raspberry Pi and is also a case! Confirmed working by Frank.
Tanbin mSATA to USB Adapter*mSATA to USB 3.0I used this mSATA to USB adapter for my Crucial M550 benchmark — working in 3.0 ports
Generic mSATA to USB 3.0 Adapter (fe2008)*mSATA to USB 3.1Confirmed working in comments by Nico
Canakit Raspberry Pi 4 Power Supply (USB-C)*3.5A USB-C Power SupplyCanakit has been making very reliable power supplies for several Pi generations now. Using a 3.5A power supply will give enough extra power for your Pi to power the drive without causing instability
Known Working Adapters

Known Problematic Adapters (Naughty List)

Here is a list of common USB adapters that are known to have problems with the Raspberry Pi 4. You can get some of these adapters working by using quirks mode (see the “Fix (some) USB Adapter Problems Using Quirks” section below).

FIDECO M207CPS USB3.2 to M2 NVME/SATA SSD Enclosure*M.2 NVME to USB 3.2 Gen 2Lee Myring reports that the FIDECO M207CPS has issues working with the Pi
UGREEN 30848 2.5″ SATA to USB 3.0 Hard Drive Enclosure*2.5″ SATA to USB 3.0Reporting as not working properly and disconnecting often by Mirco, thanks!
Sabrent USB 3.0 to 2.5″ SATA adapter*2.5″ SATA to USB 3.0Only works in the USB 2.0 ports. Will not boot in a USB 3.0 port. I have two of these and can confirm they don’t work. RIP to Sabrent, our previous king of the Pi 3 era of adapters.
Sabrent USB 3.0 to 2.5″ SATA Tool-Free External Hard Drive Enclosure*2.5″ SATA to USB 3.0Another nonworking Sabrent adapter reported by Alex, thanks Alex!
ELUTENG 2.5″ SATA to USB 3.0 Adapter*2.5″ SATA to USB 3.0Despite earlier reports as working Ryan and one other have reported this adapter does not work unless you enable quirks mode! Don’t make Ryan’s sacrifice in vain and avoid this one.
USB 3.0 to 2.5″ SATA III Hard Drive Adapter UASP Support-20cm, Black*2.5″ SATA to USB 3.0reported by dzm in the comments as having very poor I/O performance
ORICO 2.5″ SATA to USB C 3.0 Enclosure (Transparent)*2.5″ SATA to USB 3.0Several commenters have stated the transparent ORICO is not working. Avoid!
ORICO 2.5″ SATA to USB 3.0 Enclosure (Black) 2588US3-BKT*2.5″ SATA to USB 3.0Commenters report that the USB-C variant of the transparent ORICO enclosure also does not work
ORICO 2.5″ SATA to USB-C 3.1 Gen 1 Enclosure (Transparent)*2.5″ SATA to USB-C 3.1 Gen 1Confirmed as not working by Andrea De Lunardi in the comments (thanks!)
Vantec 2.5″ SATA to USB 3.0 USB Adapter with Case*2.5″ SATA to USB 3.0Does not work after hours of testing and frustration by Moshe Katz in the comments!
AliExpress Generic 2.5″ SATA to USB 3.0 “New USB 3.0 To 2.5in SATA 7+15Pin Hard Drive Adapter”*2.5″ SATA to USB 3.0Extremely cheap adapter from AliExpress — MADATALIEXPRESS bought 5 of them and none worked, PPCM had one working, very unreliable and slow when it does work, not recommended even if you get lucky!

So far we have not found a single ORICO adapter that has worked correctly so I would avoid that brand completely for the Raspberry Pi.

Prerequisites

Get Latest Raspbian & Updates

To edit the bootloader configuration you should have a copy of Raspbian on a SD card. Right now support in third party operating systems to do anything with the new Raspberry Pi 4’s firmware or bootloader is very limited / nonexistent. You can use a third party operating system later once you set the boot mode, but to actually make these changes we will use official Raspbian.

First make sure that you have the absolute latest updates and firmware for the Pi. To upgrade all your packages and firmware to the latest version use the following command:

sudo apt update && sudo apt full-upgrade -y

Once the update has completed restart your Pi with a sudo reboot command to apply the latest firmware / kernel updates.

Verify EEPROM Bootloader is up to date

We can check if your Pi’s bootloader firmware is up to date with the following command:

sudo rpi-eeprom-update

If your Raspbian is *very* out of date you may not have this utility and can install it using:

sudo apt install rpi-eeprom

The output from rpi-eeprom-update will look like this if you are not up to date:

BCM2711 detected
VL805 firmware in bootloader EEPROM
*** UPDATE AVAILABLE ***
BOOTLOADER: update available
CURRENT: Thu 3 Sep 12:11:43 UTC 2020 (1599135103)
LATEST: Tue 24 Nov 15:08:04 UTC 2020 (1606230484)
FW DIR: /lib/firmware/raspberrypi/bootloader/beta
VL805: up-to-date
CURRENT: 000138a1
LATEST: 000138a1

If it says any updates are available they be installed manually by adding ‘-a’ to the end of our previous command like this:

sudo rpi-eeprom-update -a

After the updates finish installing restart your Pi as firmware updates will not be applied until after a reboot. Now if you run rpi-eeprom-update to check for updates again it should say you are on the latest and up to date!

Verify Power Supply Size (3.5A strongly recommended)

Check your Raspberry Pi’s power supply size and make sure it is delivering at least 3.5A. There are a lot of USB C adapters for the Raspberry Pi that are only 3.0A. These will typically work fine, until you plug in something like a SSD which draws power from the Pi and there is nothing left to give.

Most SSDs are quite power efficient but HDDs draw significantly more. Older generations of SSDs used quite a bit more power than newer ones as well. If you are using an older drive or a drive that you know is power hungry you need to pay extra attention to having a quality power source with plenty of capacity.

A good alternative option to relying on the Pi to power the drive is using a powered USB hub* so your drive doesn’t need to draw power from the Pi’s limited power budget. Make sure you get one that is compatible with the Pi as some powered USB hubs won’t work properly with it so check the reviews and do your research to make sure people are using it successfully with the Pi.

Using a 3.5A power supply* or powered USB hub* will ensure your drive is getting enough power without impacting the Pi’s stability.

Prepare Bootable Drive

Image your bootable drive (your SSD / HDD / USB Flash Drive / etc.) the same way you imaged your micro SD card. You write the image of the operating system you want to run to the disk with Etcher / Win32DiskImager / however you normally would write one.

Once this is finished we are ready to edit the bootloader configuration to tell it to boot to our drive instead of the built in microSD slot.

If you are wanting to do a USB mass storage device boot with Ubuntu 20.04 or 20.10 check out my specific USB booting guide for Ubuntu 20.04 / 20.10 here.

Editing Bootloader Configuration

If you’ve completed the prerequisites you are now ready to edit your Raspberry Pi’s bootloader configuration to tell the Pi to boot from a specified device instead of the built in microSD slot. To edit the bootloader configuration use the following command:

sudo -E rpi-eeprom-config --edit

The default configuration will look like this:

[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
DHCP_TIMEOUT=45000
DHCP_REQ_TIMEOUT=4000
TFTP_FILE_TIMEOUT=30000
TFTP_IP=
TFTP_PREFIX=0
BOOT_ORDER=0xf41
SD_BOOT_MAX_RETRIES=3
NET_BOOT_MAX_RETRIES=5
[none]
FREEZE_VERSION=0

Our target is the BOOT_ORDER parameter in bold above. It is 0x1 in firmware versions up until 2020-05-150 and was changed to 0xf41 in newer versions after that. Here are the different configuration options for the BOOT_ORDER parameter (from Raspberry Pi documentation):

ValueModeDescription
0x1SD CARDSD card (or eMMC on Compute Module 4)
0x2NETWORKNetwork boot
0x3USB DEVUSB device boot – See usbboot (since 2020-09-03)
0x4USB MSDUSB mass storage boot (since 2020-09-03)
0xeSTOPStop and display error pattern (since 2020-09-03). A power cycle is required to exit this state.
0xfRESTARTStart again with the first boot order field. (since 2020-09-03)
Raspberry Pi 4 USB BOOT_ORDER Options

The configuration option we want is USB mass storage device boot or option 0x4. We can use this option by itself or combine it with other options in the table placed in the order we want the Pi to try to boot from. To understand how to do this, let’s look as Raspbian’s default value of 0xf41:

If you want to leave the SD card and the “restart on failure” fallback options in place you can leave/change it to 0xf41. Go ahead and use your arrow keys to navigate to the BOOT_ORDER line and change it 0x4 or 0xf41 so it reads:

BOOT_ORDER=0x4

or

BOOT_ORDER=0xf41 (to enable falling back to SD card if USB boot fails)

This translates to attempt to boot from USB mass storage first. If that fails, try to boot from SD card. If that fails, start over from step 1 and try again (back to USB mass storage). As another example, if you wanted to add booting from the network you could add the 0x2 value from the table for the “NETWORK” option and make it the final BOOT_ORDER value 0xf412. If you wanted to change the order so that the network boots first instead you could reorder it to 0xf241.

Choose the appropriate BOOT_ORDER you would like and use your arrow keys to move down to the BOOT_ORDER line. Change the line and press Control+X and then ‘y’ to save your changes. Make sure you have your boot device we set up in the prerequisites section plugged into one of the blue USB ports as these ports are USB 3.0 and the black USB ports are USB 2.0 (slower). Now restart the Pi.

If all went well the Pi will immediately boot up from your boot device instead of the SD card!

Help, something went wrong!

Try Booting from SD card

Generally if the Pi fails to boot from the USB device it will fall back to booting from the SD card. If the Pi didn’t boot after making the change try unplugging your USB device and just booting from the SD card again by removing power from the Pi and plugging it back in again.

If the device is booting fine from the SD card but not from the external drive double check that you have a compatible adapter and that the drive was imaged correctly. Plug it into a PC and make sure it has the files on it and perhaps try giving it a clean image again just in case something went wrong with imaging the first time.

Verify rpi-eeprom-config configuration

Make sure your changes that we made earlier actually stuck by verifying the configuration using the command:

sudo -E rpi-eeprom-config --edit

and verify that the BOOT_ORDER=0x1 line is changed to BOOT_ORDER=0x4.

Restore Bootloader to Defaults

If things are *really* broken and the Pi will not boot at all with your SD card or otherwise then you may need to restore the bootloader back to defaults.

To do this we need to prepare a SD card with the Raspberry Pi 4 EEPROM boot recovery tool. The easiest way to do this is to use the official Raspberry Pi Imager tool from the Raspberry Pi foundation to prepare the recovery image.

Here is how we create the recovery image inside the utility. Choose the “Misc utility images” category as shown below:

Raspberry Pi Imager Step #1
Raspberry Pi Imager Step #1

Next choose the “Raspberry Pi 4 EEPROM boot recovery” option:

Raspberry Pi Imager Step #2
Raspberry Pi Imager Step #2

Next choose your SD card and then choose “Write”. Now unplug your Pi and put in the newly prepared SD card. Connect the power and let it boot. This will restore your bootloader to defaults. You should see a continuous rapid green blinking light. You may now disconnect the power and put your original SD card back / reinstall Raspbian and boot the Pi normally!

For a more detailed step by step guide on this check out my Bootloader Recovery Guide

Try Beta Firmware

The beta firmware released since the original USB mass storage device support launched contains a bunch of fixes related to USB mass storage devices and USB booting. The downside is the beta firmware is not as well tested so you shouldn’t install it unless you are doing it to fix a specific issue addressed in those updates.

If your drive / USB storage adapter isn’t working then it is worth considering trying the beta firmware to see if the fixes in the versions released not on stable yet will help with your device.

To switch to the beta channel edit the configuration file with the following command:

sudo nano /etc/default/rpi-eeprom-update

Change the line FIRMWARE_RELEASE_STATUS=”critical” (sometimes it can be “stable”) to:

FIRMWARE_RELEASE_STATUS="beta"

Now press Ctrl+X and then ‘y’ to save our changes in nano. Now execute a Pi firmware update using:

sudo rpi-eeprom-update -a

The updater will tell you whether updates were applied or not. Now do a full reboot of your Pi as the firmware updates won’t be applied until you do! If you want to switch back to normal firmware simply change the configuration back to “stable” or “critical”.

Verify Drive Performance

You can make sure everything is running correctly (and as fast as it should be) by running my quick storage benchmark. You can run the benchmark with the following one-liner:

sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash

This will give you a score you can compare to the other Raspberry Pi Storage Benchmark results and make sure that you are getting an equivalent speed to your peers with the same device!

Fix (some) USB Adapter Problems Using Quirks

Some of the very common adapters on the naughty list above (such as the Sabrent) can be made to work by using USB quirks to disable UAS mode on the drive. This lowers performance, but it’s still much faster than a SD card and your adapter won’t go to waste.

To find out the quirks we need to find the device ID string for your adapter and then add an entry to cmdline.txt telling the kernel to apply them on boot.

Find Your Adapter

To apply the quirks we first need to get the adapter id. We will use the sudo lsusb command:

$ sudo lsusb
 Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 002 Device 002: ID 174c:55aa ASMedia Technology Inc. Name: ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge, ASM1153E SATA 6Gb/s bridge
 Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
 Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

On line 2 we can see my ASM1051E SATA 6Gb/s bridge adapter (it’s the known working StarTech.com 2.5″ SATA to USB 3.0* adapter). You will see something very similar to mine when you run the command and it shouldn’t be too hard to figure out which device it is. If you need more information add a -v switch to make the command sudo lsusb -v. This can sometimes add some additional details to make it easier to figure out which one is your adapter.

If you’re still not sure, we have another command that between the two that can narrow things down. Type / paste the following:

sudo dmesg | grep usb

 [0.828535] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
 [0.828568] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
 [0.828597] usb usb3: Product: DWC OTG Controller
 [0.828620] usb usb3: Manufacturer: Linux 4.19.75-v7l+ dwc_otg_hcd
 [0.828644] usb usb3: SerialNumber: fe980000.usb
 [0.830051] usbcore: registered new interface driver uas
 [0.830182] usbcore: registered new interface driver usb-storage
 [0.836488] usbcore: registered new interface driver usbhid
 [0.836511] usbhid: USB HID core driver
 [0.971598] usb 1-1: new high-speed USB device number 2 using xhci_hcd
 [1.154217] usb 1-1: New USB device found, idVendor=2109, idProduct=3431, bcdDevice= 4.20
 [1.154254] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
 [1.154281] usb 1-1: Product: USB2.0 Hub
 [1.301989] usb 2-1: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
 [1.332965] usb 2-1: New USB device found, idVendor=174c, idProduct=55aa, bcdDevice= 1.00
 [1.332999] usb 2-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
 [1.333026] usb 2-1: Product: ASM105x
 [1.333048] usb 2-1: Manufacturer: ASMT
 [1.333071] usb 2-1: SerialNumber: 123456789B79F

This is the dmesg log showing the hardware detection as hardware is activated on the Pi. If your log is really long you can generate fresh entries by just unplugging a device and plugging it back in and running the command again. Here we can clearly see that the ASM105x is what our StarTech adapter is being detected as.

Now we can go back to our first lsusb command and we want the 8 characters from the ID field that comes right after the Device:

Bus 002 Device 002: ID 174c:55aa ASMedia Technology Inc. Name: ASM1051E SATA 6Gb/s bridge

Our adapter’s ID is: 174c:55aa

Applying Quirks

To apply the quirks to our USB adapter we are going to edit /boot/cmdline.txt. Type:

sudo nano /boot/cmdline.txt

We are going to add the following entry into the very front of cmdline.txt:

usb-storage.quirks=XXXX:XXXX:u

In place of the X’s above you will put in your adapter’s ID that we got before. With the example commands I gave above mine would look like this: usb-storage.quirks=174c:55aa:u. After this my cmdline.txt looks like this (everything should be one continuous line, no line breaks!):

usb-storage.quirks=174c:55aa:u console=serial0,115200 console=tty1 root=PARTUUID=d34db33f-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

Now reboot the Pi. If the Pi fails to boot you can plug the SD card into the computer and go to /boot/cmdline.txt and undo the change we did so you can boot back in with your SD card.

Verifying Quirks

Once you have rebooted after changing cmdline.txt we can verify the quirks have been applied by doing another dmesg | grep usb command:

sudo dmesg | grep usb
 [1.332924] usb 2-1: New USB device found, idVendor=174c, idProduct=55aa, bcdDevice= 1.00
 [1.332957] usb 2-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
 [1.332983] usb 2-1: Product: ASM105x
 [1.333006] usb 2-1: Manufacturer: ASMT
 [1.333028] usb 2-1: SerialNumber: 123456789B79F
 [1.335967] usb 2-1: UAS is blacklisted for this device, using usb-storage instead
 [1.336071] usb 2-1: UAS is blacklisted for this device, using usb-storage instead
 [1.336103] usb-storage 2-1:1.0: USB Mass Storage device detected
 [1.336479] usb-storage 2-1:1.0: Quirks match for vid 174c pid 55aa: c00000
 [1.336611] scsi host0: usb-storage 2-1:1.0

This time we can see in dmesg that UAS was blacklisted for the device and it has loaded with the usb-storage driver instead. This driver tends to be more compatible with the “problematic adapters” but the performance is usually significantly lower. It’s definitely worth a try though as some adapters do better with the quirks performance-wise. The only way to know for sure is to run a benchmark (see “Verify Drive Performance” section).

Other Resources

If you want to see which Pi storage performs the fastest and get an idea of what kind of drives to look for check out my 2020’s Fastest Raspberry Pi 4 Storage Benchmarks

If you have one of the new Raspberry Pi 400 kits *then don’t miss my Pi 400 Overclocking and SSD Setup Guide

183 thoughts on “New Raspberry Pi 4 Bootloader USB / Network Boot Guide”

  1. Avatar for Scorpius

    So I got one of the ORICO NVMe enclosures with UASP support (ORICO M2PV-C3-BK-EP) and it worked immediately and nicely but it would lock up in a day or two, and sometimes in 14 hours with high CPU and high disk access.

    I moved it to a USB powered hub and works fine with no lockups at all.

    My conclusion is that I don’t think any of those NVMe USB enclosures can work without a USB powered hub unless your Pi is idle all the time.

    1. Avatar for jamesachambers

      Hey Scorpius,

      Thanks for letting us know your specifics. I definitely agree with you and have been giving stronger and stronger warnings about power when using NVMe enclosures every time I edit/update these articles!

      I’ve only had one NVMe adapter that didn’t require additional power and that was the QNINE stick style ones (not enclosures). They have no LEDs of any kind and are just basically a bare board with a USB connection that you set the M2 on. The only problem with these is that NVMe drives do get really really hot (which can reduce their lifespan and even cause them to fail if it gets hot enough) and the newer enclosures like the ICY BOX, the Rog Strix enclosure, etc. all have ways to pull heat off the drive to give you reliable long term operation. The ICY BOX is basically a giant heatsink and you’ll be surprised how warm to the touch it gets pulling heat off my Samsung NVMe high performance drives!

      I’m glad you got everything working, take care!

  2. Avatar for TomD

    Can’t connect with Raspberry Pi4 Channels-DVR (USB Boot Image) setup web site. Tried imaging it on Micro SD 32GB card, a 256 GB USB stick, and a Toshiba 2TB external box. A monitor connected to the Raspberry finishes the install at a “{OK}Started Update UTMP about System Runlevel Changes. Green Light is Solid. Attempting to connect to http://IP address:8089 or http://drv-server:8089 or http://drv-server.local:8089 from a Win10 Pro workstation and Android X86 box-Google app, all fail to find the server.
    Built the Raspberry Pi with both 32 bit and 64 bit OS downloads. Installed Channels-DVR using “curl –f –s https://getchannels.com/dvr/setup.sh | sh” command. Again temped to setup from Win10 using same url’s, No Go. Opening the setup from Raspberry desktop could not setup ECG connection to cable company. Failed login, using same login as used to cable company web site, and connect when running Channels-DVR on a Win10 system. Cable company tech support next to useless, do not support Linux, limited support for TV Anywhere (because 3rd party SW). Did verify Channels-DVR/TV Anywhere usage authorized in cable profile.
    Other symptoms—
    Monitor will blank out for a second then return to same screen, almost like a loose connection but triple verified.
    Started up an Android TV box that has TV Anywhere installed (on after restarting Win10 system). The screen said to configure the Raspberry Channels-DRV using web interface. Redirected to Win10 IP address and worked fine.
    Till the Android box I though the Pi was not broadcasting or allowing external connections. Maybe I’m fighting a different problem on both setups. Looking for ideas on fixing either setup. Not Linux literate but learning.

    1. Avatar for jamesachambers

      Hey Tom,

      This is the first time I have heard of this one! It definitely looks like it should support it and their support article is pretty recent (October of last year). Did you set it up using rpi-imager per these instructions?

      https://community.getchannels.com/t/beta-channels-dvr-server-for-raspberry-pi-4-usb-boot-image/24189

      Rpi-imager can definitely fix a lot of issues that occur vs. writing the image with Etcher/Rufus/etc. There’s so many weird obscure issues the rpi-imager tool fixes with drives/partitioning that are very difficult to find (or even know to look for) otherwise so that is always worth a try. I also recommend wiping the drive completely of all partitions (delete the entire partition table so it’s completely blank, nothing on it) as I have seen this fix some weird, weird stuff before with partitioning that even rpi-imager hasn’t fixed before!

      Your “Started Update UTMP about System Runlevel Changes. Green Light is Solid” almost sounds like a freeze/kernel panic to me. If you Google that error message you can see people getting that all over different Linux distros and the problem usually ends up being something like the drive has errors and needs an fsck, the drive is failing, etc. Do you have any other spare drives to test with to rule this out?

      I did see this here: https://community.getchannels.com/t/issue-with-raspberry-pi-image/25577/21 where it sounds like the headless image has nothing to really see which seems to create some confusion. You should still be able to connect with the browser like you were trying to do though so I think you may be looking at a crash/kernel panic or this should still work.

      This is a really tough one. It could even be networking related since Windows has some sneaky tricks to resolve hostnames that won’t work in Linux without additional configuration/packages to add mdns4 support. Definitely let us know what you find!

  3. Avatar for Yvo Tuk

    I’ve bought a Startech 2.5″ adapter using the AliExpress link, doesn’t work at all.
    When checking the information it turned out not to be StarTech but some other brand..

    Three adapters down.. none working so far. (at least not stable)

    1. Avatar for jamesachambers

      Hey Yvo Tuk,

      That is very annoying. I did some researching after your tip and found other people in the reviews saying that this AliExpress seller is basically lying about it being a StarTech. Please leave them one as well if you wouldn’t mind. I’m going to pull the link for that one down immediately!

      Which other ones have you tried? Were they also AliExpress? Sorry about that, it’s difficult when sellers are completely misrepresenting their product/brand while trying to provide international links and I appreciate you letting me know!

      1. Avatar for Yvo Tuk

        The other one was a AliExpress Generic 2.5″ SATA to USB 3.0 3 colors Hard Disk Case*
        That seemed to work when applying quirks and a powered USB hub, but it kind of collapsed after some time.
        First symptom was panels failing in HA, after that numerous read / write error messages on the terminal screen.
        This was after applying quirks.

        I’ve now bought a CSL – USB 3.0 SSD/SATA Adaptor Converter for SSD which turns out to be plug and play. No quirks required, just copied a fresh HA on, restored a snapshot and it’s running.
        That’s for a couple of hours now (can cheer to early 😉

  4. Avatar for bg

    I add to my previous comment that my ADWITS USB 3.0 UASP to SATA NGFF M.2 enclosure containing a WD Green 240 GB Internal SSD M.2 SATA had previously been able to boot my older RPI4 2gb when directly plugged into its USB3 ports. But on my new RPI4 4gb it would not work when directly plugged into the pi, though as mentioned it would work when attached via an ANKER powered USB3 hub (but not the Sabrent powered hub 🙁

    1. Avatar for jamesachambers

      Hey bg,

      Does the Pi actually power on when you try to boot using the Sabrent? A really common problem with the powered USB hubs is that the Pi can draw power from your USB hub. The Pi is detecting power from the hub so it’s trying to boot using that power (instead of your USB-C power cable) but the Sabrent hub can’t give it nearly enough power to boot.

      The Sabrent one definitely does this and I actually haven’t found a good widely available one that doesn’t backfeed power yet. I almost think there has to be like a $3 USB power filter or something we could stick on the end of it so that the Pi does not try to do this.

      There’s another simple fix where you can remove the 5V line from that cable that goes from your hub to the Pi. You can do this with a tiny bit of silver insulation tape or by actually cutting the wire. I definitely need to try this so you have inspired me to do this experiment with my Sabrent and write a more updated guide but there’s a pretty good guide on this is here: http://www.whatimade.today/how-to-protect-a-rasperry-pi-from-a-powered-usb-hub/. It’s a little dated but should still apply.

      Which Anker hub/model are you using? I’m really curious as this may be worth adding to my recommendations. I’m seeing several on Amazon and some of these have like 36W power adapters which would almost certainly explain why it works on those. The Sabrent hub provides much less extra power than that and is nothing even close to 36W which is enough to power several Pis and accessories! My guess is that the hub is literally able to power your Pi because it has a large enough power bank or you would have this exact same issue as well. Back in the day I used to power Pis off of USB hubs (Pi 1 and 2 days). Your Pi will probably work even if you remove the USB-C power cable if the Anker hub really is providing enough power to run it.

      On my Pi 400 which boots from a ICY BOX connected to the Sabrent USB 3.0 hub is I actually unplug the hub’s USB cable and then connect my Pi’s power and immediately reconnect the powered USB hub. Then it will boot up normally and find the SSD and boot off it and I’m curious if yours will do the same!

      1. Avatar for bg

        Hi James, thanks for your info. The Anker powered hub I used is over 6 years old now – its a 4-port usb 3.0 hub model number H4928-U3. When the rpi is off and I plug in the ADWITS a blue light on the ADWITS lights up but not the light on the Anker. When I power the rpi though the usb-c port, the rpi red and green lights come on and the Anker blue light flashes a few times and then goes steady and after a bit of blue light flashing on the ADWITS we are booted up.

        When using the Sabrent, when the ADWITS is inserted and the Sabrent button is press to power up the USB3 ports the ADWITS blue light lights up. When the power is applied to the rpi USB-C port the rpi red led lights up, but no rpi green light and no booting. So you must be correct about the Sabrent also putting power into the rpi usb3 port which is upsetting the pi. I was not aware that this was possible and it seems its possible of damage the from the voltage/current from the usb source. I’ll have a go at either snipping a few wires or more likely getting a couple of usb3 breakout boards and making sure that the 5v is not connected to the output on this concoction that connects to the rpi.

        1. Avatar for jamesachambers

          Hey bg,

          It sounds like you’re on the right track. I just published an article I had been working on for the past week today but I definitely want to experiment with this more. I think the silver tape mod is the most promising and just covering the 5V pin inside the Sabrent’s USB-A connector!

          The Anker’s behavior is pretty interesting. It definitely sounds like it’s still backfeeding power or making some kind of connection (intentional or unintentional)! For some reason it doesn’t seem to trigger the Pi’s boot sequence like the Sabrent does which only requires a momentary interruption of that connection to get going. Is the drive still being powered by the hub as well when you did your test with the Pi off? I feel like it shouldn’t even know it’s plugged in to an offline device and it makes me wonder if power is flowing from the hub through the drive to the Pi itself! It doesn’t sound like it’s enough to get it to attempt to boot like the other hubs.

          Let us know how it turns out when you can experiment more!

          1. Avatar for bg

            Hi James,
            I did try unplugging the Sabrent from the pi, then booting the pi and immediately connecting the Sabrent to the pi, but this did not work for me.
            Regarding the Anker the ‘powered’ usb3 ports are not switched so the device gets power as soon as its plugged in. But the hub to computer lead does not back feed any power it seems. I found this web page, probably out of date, but it does list some hubs that do not back feed. https://elinux.org/RPi_Powered_USB_Hubs.
            I would also note that I power my pi from an alternative power source not from the Anker usb hub.

            1. Avatar for jamesachambers

              Hey bg,

              Thanks for the info about the hub! I used to have some of the USB 2.0 hubs on that list for the Raspberry Pi 1 for this very reason! I couldn’t find any hubs that were still in production on that site for USB 3.0. The Anker one at the top was one I was really hoping to find but it looks like that was like 3 models ago.

              I’m guessing the tape thing is going to be the way to go to eliminate having to unplug it yet but I haven’t bothered with mine since it’s easy to just briefly unplug it and it fires right up. I’m not sure what is going on with the Sabrent hub as it has been a long favorite for years. I’m almost wondering if it’s defective!

              I haven’t really heard anyone concerned about the backfeed for a while other than it being annoying when the Pi tries to boot from it. Any discussions related to it happened years ago like this: https://www.reddit.com/r/raspberry_pi/comments/59ukpn/how_to_protect_a_raspberry_pi_from_backfeed_from/ and the consensus was always that it was harmless.

              I ordered a roll of electrical tape since I didn’t have any here and it should be coming Saturday and I will give the electrical mod a try!

              1. Avatar for bg

                Hi James,
                I got my hands on a usb3 female breakout board. I tested the Sabrent USB plug that goes to the pi and got out the multimeter. I was expecting to find 5.xx volts between its vbus and ground pins. But no! there was only Zero volts. I tried to find a voltage from any combination of its pins, with and without a usb item plugged into one of its powered ports and the power switch activated. Theres a nice steady 5.13 Volts available on the power ports when they are switched on, but I do not get any power from the hub to the pi. A usb memory stick worked ok any of the ‘power’ usb ports when they were switched on. I don’t have a suitable way to measure the current draw these power ports can provide. So I don’t think that power backfeed is the issue.

                1. Avatar for jamesachambers

                  Hey bg,

                  Fantastic discoveries! I did some more digging after your information and you’re right, there’s a lot more going on here. Check out https://www.raspberrypi.org/forums/viewtopic.php?t=244900#p1725858

                  The problem is all these cheap 4 port USB 3 hubs that you find on both eBay and Amazon are very poorly designed. The external 5V is connected to both Upstream and Downstream VBUS which causes confusion in the Raspberry Pi USB controller and the back powering problems. It has been suggested to cut the red cable (VBUS Upstream) between the Pi and the USB hub, however this is only half the job

                  This is really interesting. It looks like the power backfeed is part of the problem on some hubs but it’s not the whole story:

                  I have found that just cutting the red cable with my connected Hard Drives the Pi would randomly not recognised the attached Drives or not see the Drives after a reboot. I have also found that the Hard Drives would not reset or enter standby after a reboot leaving the Drives in a active state.

                  The only way was to send a software reset to the USB hub or disconnect and reconnect the Drive for the Pi to see the Drives which is a right pain.

                  This is really similar to the behavior I’m getting. If I reboot the Pi I have to do the disconnect trick but it sounds like there’s actually a way to send a software reset command to the USB hub which is interesting. Now for the good part:

                  The way round this problem is to disconnect the Pi Upstream VBUS Red Cable and connect it to the reset circuit of the USB Hub Controller chip. The USB Hubs I have been using have either a GL3510 or GL3520 Controller chip and both the external 5V rail and the Upstream VBUS are both connected to the reset circuit, so there is no way of resetting the Controller chip by lowering the Upstream VBUS. You need to lift one end of R1 disconnecting that end from the external 5V rail and solder the Pi Upstream VBUS cable to the other end of R1.

                  Amiga-Quantum52 on the Raspberry Pi forums calls this the USB VBUS mod. I bolded the part that I think explains this. Your Anker hub must not have the the external 5V rail and the upstream VBUS connected to the reset circuit but apparently this is exceedingly rare to actually find in production (and from what I can tell, yours is no longer in production either)!

                  It sounds like power backfeed may not be the issue at all on the Sabrent hub (considering your measurements you took) and that it’s the way the VBUS is wired (improperly and against the USB spec according to many in this thread) in these cheap hubs. Not a single person in this thread could name a single one other than the PiHut one that actually works correctly though and when I searched their site for powered USB 3.0 hubs I came up with nothing in my initial search.

                  I’ll have to crack open the Sabrent hub and take a look at the internals here (I do have a soldering iron) but this is fascinating information. I think we’re getting really close to some answers here, answers that are frankly extremely difficult to find and it looks like the fix won’t be super easy such as just a piece of tape!

  5. Avatar for bg

    Well I got a Sabrent powered USB3 hub and it would not work with my ADWITS USB 3.0 UASP to SATA NGFF M.2 enclosure containing a WD Green 240 GB Internal SSD M.2 SATA. The Sabrent hub appeared to work with other USB sticks when file copying etc.

    My ADWITS / WD M.2 worked ok on on old ANKER powered USB3 hub when connected to my RPI4. When I connected the ADWITS / WD M.2 to either the Sabrent or the ANKER powered hubs through one of those usb power monitoring things, both showed identical power draw. But the pi just would not boot up from the Sabrent. All a bit of a pain the *! port.

  6. Avatar for speedingcheetah

    There may be a typo in your table. of bad adapter. It says usb c, but links to a non C version.
    ORICO 2.5″ SATA to USB C 3.0 Enclosure (Transparent)*

    link goes to
    https://amzn.to/3lj0j8x

    I have this non C transparent case with a Samsung 850evo 500gb ssd in it, flashed with Channels DVR image, and it has been working fine on my Pi4 on the usb 3.0 ports fine.

    1. Avatar for jamesachambers

      Hey speedingcheetah,

      Thanks for the heads up. This is one of those Amazon listings where (at least on the US version) they combine the 3 different versions in the same item.

      This is a very good warning though that make sure that Amazon doesn’t take you to the wrong variation. Check the description carefully and make sure there aren’t multiple listings. The links will often try to route you to the closest listing in your country. I’ve started adding links to different Amazon sites directly to help avoid this but always be careful.

      Fortunately there aren’t too many more like this but there are some. It can also depend by country. It always pays to pay really careful attention as Amazon changes these and which ones they route to without letting me know in any way so always validate the drive and make sure it’s not a multi-select listing. Thanks again speedingcheetah!

  7. Avatar for Peter

    I tested the “Sabrent USB 3.0 to 2.5″ SATA Tool-Free External Hard Drive Enclosure*” and it worked out of the box! I could boot with USB2 and USB3. Maybe because of recent firmware updates?

    1. Avatar for jamesachambers

      Hey Peter,

      It’s definitely possible! Some others have left comments before saying that firmware updates did indeed fix drives on the naughty list so it’s always worth a try to see if your manufacturer offers an update (check Google).

      Thanks for letting us know your specific model and that there is hope for others that may have this!

  8. Avatar for GeorgeM

    Apparently on rpi4 ORICO 2.5″ SATA to USB C 3.0 Enclosure (Transparent) works on usb2 ports, no way on usb3 (blue ports)

    1. Avatar for Ares Lagae

      Please note that Orico has several transparent SSD enclosures. Some probably use a different chip. My post below explicitely refers to the Orico 2139C3-G2-CR-GL enclosure which has the Via Labs VL716 chip and does work on USB3 ports. Try to identify the chip on the PCB (which should be easy since the case is transparent) or investigate output of dmesg or lsusb.

  9. Avatar for Ares Lagae

    I just wanted to add that, in contrast to what is mentioned in the page, I had issues with the StarTech USB3S2SAT3CB adapter, and, in contrast to what is mentioned in the comments, the Orico 2139C3-G2-CR-GL enclosure seems to work great on all systems I tried. It is worth pointing out that the Orico 2139C3-G2-CR-GL enclosure uses a Via Labs VL716 USB 3.1 Gen 2 to SATA Bridge (https://www.viatech.com/en/2016/10/via-labs-vl716-usb-if-certification/) which probably has a better reputation and a wider support than many other chips, and presumably plays well with the Raspberry Pi 4 USB 3.0 host with is a Via Labs VL805. So the Via Labs VL716 might even be the chip of choice for the Raspberry Pi 4 and probably deserves some more attention on this page.

  10. Avatar for Steve B.

    Hi James,

    Thank you for sharing this information, very much appreciated. Just wanted to share my experience and equipment used to successfully set up booting a Raspberry Pi 4 8GB from USB SSD.

    * Raspberry Pi 4 8GB
    * [ASUS ROG STRIX Arion Aluminum Alloy M.2 NVMe SSD External Portable Enclosure Case Adapter](https://amzn.to/3uqZzSK)
    * [Samsung (MZ-V7S1T0B/AM) 970 EVO Plus SSD 1TB – M.2 NVMe Interface Internal Solid State Drive with V-NAND Technology](https://amzn.to/3ssc8eW)

    After going through the steps outlined in this article, I was experiencing an issue with the SSD not being able to write blocks – ext4 fs error. It quickly became clear that I needed a better power supply, so I purchased the following:

    * [CanaKit 3.5A Raspberry Pi 4 Power Supply (USB-C)](https://amzn.to/3pZ6Up3)

    After receiving and using the new power supply, the issue persisted, so I decided to go with the recommend USB hub:

    * [Sabrent 4-Port USB 3.0 Hub with Individual LED Lit Power Switches, Includes 5V/2.5A Power Adapter (HB-UMP3)](https://amzn.to/2PcqSAd)

    After setting up the new USB hub, everything worked as expected and is super fast. Also note, I did not have to apply the quirks to my configuration.

    Thanks again to all who have contributed to working through this.

    -Steve

    1. Avatar for jamesachambers

      Hey Steve,

      Thank you very much for outlining the process you went through to get this working with such great detail!

      I really like this new ASUS ROG STRIX enclosure but I’m not surprised it needs a ton of power. More and more we are discovering that NVMe enclosures seem to be the most power hungry of all of the storage adapters. Some, like the ROG STRIX appear to not even be able to get enough from a 3.5A adapter! It honestly makes sense because this enclosure has RGB and those lights do take a small amount of power. However, a small amount of more power is still more power, which puts this one at the top for energy requirements!

      I’m adding to the note for this enclosure that a 3.5A power adapter does not appear to be enough to power this enclosure and that people should look toward the powered USB hub for this enclosure (and probably most NVMe enclosures).

      Thanks again Steve!

  11. Avatar for Panos

    Have an ORICO transparent USB 3.1 enclosure and does not work. After I connect the power to the Pi, the SSD access light is blinking all the time and cannot SSH to it.

  12. Avatar for Jörgen Strömbro

    Hey James, and thanks for a great guide.

    I have an rpi4 4 MB with the StarTech usb to sata and a kingston a400.
    I’ve managed to run Raspian on the SSD so I at least know that works. However, when I try to boot HA the screen shows the rpi boot-up text for mine a split second and then the screen just goes black. How long should I wait until I know it’s not booting correctly?

    1. Avatar for jamesachambers

      Hey Jörgen,

      Steve was having the same problem in the comments a little bit further down with HA just yesterday!

      It’s a little confusing because when I do some searches about whether HomeAssistant supports this type of booting it seems like it does, or at least it did on previous Pis like the Pi 3.

      I know for Ubuntu I had to take a bunch of steps for it to be able to USB boot correctly on the Pi 4. I even went as far as to write a script called “BootFix.sh” which gets Ubuntu 20.04 to boot (otherwise it gets stuck after the Pi screen similar to how HA is).

      My suspicion is that HA needs to be updated to support USB booting for the Pi 4. It will probably *still* work on a Pi 3. Here’s a guide for the Pi 3 and it’s pretty similar to this one honestly. I can’t find any references to anyone doing it on the Pi 4 yet so I think this is a HA issue!

  13. Avatar for Peter

    Hi James

    I have run a few tests on an a 128GB Kingspec NVMe SSD running on the PCIe bus of a Raspberry Pi Compute Module 4 earlier this week and after the tests have run I filled in the user name “Viota” and a description of the test platform, however I don’t see these tests listed on your Fastest or Latest results pages. Am I doing something wrong or not filling in the test result web form correctly?

    1. Avatar for jamesachambers

      Hey Peter,

      That’s really cool! I think the issue is probably that my test might not be parsing PCIe drives yet. I’ll take a look at your test and they should appear once I update it to parse them!

      I have a 32GB Compute Module 4 and development board that should be coming soon which will help a ton in getting this added!

      1. Avatar for Peter

        Sounds good. If you need any help with this let me know, we have CM4 IO boards, CM4 modules in several varieties and a slew of SSDs that we are testing to find the best performing model for our new product.

Leave a Reply to jamesachambers Cancel Reply

Your email address will not be published. Required fields are marked *

Type here..