How to Boot Raspberry Pi from USB without SD Card

Published  August 12, 2025   0
Boot Raspberry Pi from USB Tutorial

Want to boot your Raspberry Pi from USB instead of unreliable SD cards? If you've used a Raspberry Pi long enough, you've probably faced the dreaded SD card failure. Maybe it corrupted right after a power outage, or maybe it just wore out from thousands of log writes. That's when I finally decided no more SD cards. They're great for getting started with Raspberry Pi, but when you want reliability and speed, it’s best to boot Raspberry Pi from USB.

And with the newer Raspberry Pi models, booting directly from a USB stick or SSD is not only just possible, it's surprisingly easy once you know which Pi you're dealing with. I went through the process for multiple models – Pi 3B, 3B+, 4B, and even the new Pi 5. So if you're wondering whether your Pi can ditch the microSD and run from USB alone, this guide is for you.

Why Boot Raspberry Pi from USB Instead of SD Card?

By default, Raspberry Pi boots from a microSD card. It's cheap and works fine, until it doesn't. Performance aside, SD cards wear out over time, especially with heavy I/O. If you're running anything that involves a lot of reads and writes, such as databases or frequent logging, this can become a real issue.

But there's also a speed factor. I found out that the Raspberry Pi 4's SD interface maxes out at around 50 MB/s. Older models like the 3B and 3B+ are even slower, topping out at roughly 25 MB/s. And in reality, even the best SD cards only deliver around 38 MB/s write speeds. That's just not ideal for running an operating system or doing any kind of heavy disk activity.

Now compare that to a USB 3.0 SSD. In real-world tests it was able to hit read speeds of 208 MB/s and write speeds of 140 MB/s. That's over five times faster than the best SD cards.

The difference is noticeable. Booting, installing packages, file operations, and even just browsing the Raspberry Pi OS desktop all feel significantly snappier with USB boot. If you’re moving beyond basic projects, configuring your setup to Raspberry pi boot from SSD can significantly boost performance.

How to Boot Raspberry Pi from USB ?

Before jumping in, I learned that not all Pis behave the same when it comes to USB boot:

Raspberry Pi Model

USB Boot Support

Description

Pi 3B

With one-time config

Needs an OTP flag set via SD card

Pi 3B+

Out of the box

USB boot enabled by default

Pi 4

Native with EEPROM

Supports USB 3.0 boot

Pi 5

Full support

Supports USB, PCIe NVMe boot

Raspberry Pi 3B: The One-Time USB Unlock

This one took a bit of digging. The Pi 3B doesn't support USB booting out of the box, you need to flip a hidden internal switch. More specifically, you need to set a flag in the Pi's OTP (One-Time Programmable) memory. It's permanent, but once set, you can boot from USB raspberry pi forever, even without a microSD card present.

⇒ Step 1: Boot from an SD Card with Raspberry Pi OS

To get started, I flashed the standard Raspberry Pi OS onto a microSD card and booted the Pi 3B from it. You can use Raspberry Pi Imager to do this. Once the OS is running, open up a Terminal window, you'll need it for the next steps.

⇒ Step 2: Enable USB Boot Mode via config.txt

Here's the command I ran:

USB Boot Mode on Raspberry Pi
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

What this does:

echo program_usb_boot_mode=1

writes the config flag to enable USB boot.

The(pipe)

sends that string into the next command.

sudo tee -a /boot/config.txt

appends that line to the file /boot/config.txt using superuser privileges.

By adding program_usb_boot_mode=1 to the config file, the Pi knows to write a flag to its OTP memory on the next reboot. This only needs to be done once in the Pi's lifetime, it won't harm the Pi or prevent future SD card boots.

⇒ Step 3: Reboot to Apply the Change

After modifying config.txt, I ran:

sudo reboot

This reboots the Pi and triggers the bootloader to read that new config option. If it sees program_usb_boot_mode=1, it writes the USB boot flag to the Pi's OTP memory.

⇒ Step 4: Verify OTP Flag is Set

Once the Pi restarted, I wanted to make sure the USB boot flag had been written correctly. So I ran:

vcgencmd otp_dump | grep 17:
OTP Verification to Boot Raspberry Pi from USB

Here's what that does:

vcgencmd otp_dump

dumps the contents of the Pi’s OTP memory (One-Time Programmable).

| grep 17:

filters for line 17, which contains the specific USB boot bit.

If the command returns something like:

17:3020000a

That's your confirmation, USB boot is now permanently enabled on your Pi 3B.

⇒ Step 5: Boot from USB (No SD Card!)

I flashed Raspberry Pi OS to a USB stick (just like I would with an SD card), plugged it into the Pi 3B's USB port, and removed the SD card. When I powered the Pi back on, it booted straight from USB. No more SD cards needed!

Raspberry Pi 3B+: USB Boot That Just Works

If you're using a Raspberry Pi 3B+, you're in luck. USB boot is already enabled from the factory. That means you don't need to tweak any config files or run terminal commands. You just flash the OS to a USB drive and can boot raspberry from USB immediately.

Here's exactly what I did using Raspberry Pi Imager:

⇒ Step 1: Open Raspberry Pi Imager: I started by opening the Raspberry Pi Imager on my PC. It's the official tool for flashing OS images onto SD cards or USB drives.

⇒ Step 2: Choose Your Pi Model: On Raspberry Pi Imager lets you specify the target board. I clicked the "Choose Device", and I selected Raspberry Pi 3B+. This helps the tool optimize the OS for your model.

Choose Raspberry Pi Model In Imager

⇒ Step 3: Choose Your Raspberry Pi OS: I clicked "Choose OS" and selected Raspberry Pi OS (32-bit) from the list. You can also use Raspberry Pi OS Lite if you're setting up a headless Pi (no monitor).

Choose Raspberry Pi OS In Imager

⇒ Step 4: Select the USB Drive: Next, I clicked "Choose Storage" and selected my USB stick from the list. Make sure you're selecting the correct drive, it will be erased during flashing.

Select USB Drive Raspberry Pi

⇒ Step 5: Write the OS: I clicked "Write", confirmed the warning, and let it flash the OS to my USB stick. This part took about 5-10 minutes.

⇒ Step 6: Boot the Pi 3B+ from USB: With the USB stick ready, I unplugged the SD card from the Pi (if there was one), inserted the USB stick into one of the Pi's USB ports, and powered it on.

And that was it. The Pi 3B+ booted from USB without any extra setup. No config files, no flashing bootloaders, just plug and go.

Raspberry Pi 4: Bootloader with EEPROM

The Raspberry Pi 4 is a major step forward. Instead of hard-coded boot logic, it uses a dedicated EEPROM chip to store its bootloader. That means you can update it and change how the Pi boots. By default, older Pi 4 boards may still prioritize microSD boot, but you can change that.

Option 1: CLI Method

⇒ Step 1: Boot from SD and Open Terminal

As before, I booted from an SD card loaded with Raspberry Pi OS and opened Terminal

⇒ Step 2: Update Everything

I ran the following to make sure my system and bootloader were fully up to date:

sudo apt update
Boot Raspberry Pi from SD and Open Terminal

sudo apt update: Fetches the latest package info from the repositories.

sudo apt full-upgrade -y

sudo apt full-upgrade: Installs updates for everything, including firmware and kernel.

Then I ran:

sudo rpi-eeprom-update -a

EEPROM Raspberry Pi

This command checks for the latest bootloader update and installs it if necessary. The -a flag means "apply any available updates automatically."

⇒ Step 3: Set Boot Order to USB

Next, I opened the Raspberry Pi configuration tool:

sudo raspi-config
Raspberry Pi Configuration Tool

Then navigated to: "Advanced Options → Boot Order → USB Boot"

Raspberry Pi ConfigurationBoot Order SelectSD Card BootRaspberry Pi Reboot

This sets the EEPROM bootloader to look for a USB drive first, before falling back to microSD.

⇒ Step 4: Reboot and Remove SD Card

Once the boot order was set, I rebooted, powered down the Pi, removed the SD card, and plugged in my USB SSD with Raspberry Pi OS installed. On the next power-up, you can now boot raspberry pi 4 from usb, faster than ever.

Option 2: Raspberry Pi Imager Bootloader Update

If you don't want to mess with the terminal, Raspberry Pi Imager has a handy method:

1.Open Raspberry Pi Imager on your PC and choose the Board.

Choose Raspberry Pi Model In Imager

2.Click "Choose OS" → scroll down to Misc Utility ImagesBootloader → select USB Boot.

Boot Raspberry Pi from USB

 

3.Click "Choose Storage" and select an SD card.

Select USB Drive Raspberry Pi

4.Click Write and wait for it to finish.

Erase SD from Raspberry Pi

5.Insert the SD card into your Pi and power it on.

In about 10 seconds, the green LED will blink rapidly or the screen may turn green, this means the bootloader update succeeded. Power off, remove the SD card, and you're now USB-boot ready.

Raspberry Pi 5 with Native USB and NVMe Boot

The Pi 5 is the most powerful Raspberry Pi yet and it comes with native support for USB 3.0 and PCIe booting right out of the box. No updates, no flags, no EEPROM tweaks required.

Here's All I Did:

  • Used Raspberry Pi Imager to flash Raspberry Pi OS to a USB SSD.
  • Plugged the SSD into one of the blue USB 3.0 ports.
  • Powered on the Pi 5 (with no SD card).

Even better: if you want insane performance, the Pi 5 supports direct booting from PCIe NVMe drives. Just get a compatible adapter, install it on the Pi 5's PCIe port, flash the OS to the NVMe drive, and boot like a mini PC.

Should You Boot Raspberry Pi From USB?

If you're tired of SD card failures, want faster performance, or just want your Pi to feel more like a real computer, yes. USB booting is 100% worth it.

For casual projects, SD cards are fine. But once you start pushing the limits of running servers, media centers, or anything long-term, USB booting is a simple way to add speed and reliability without changing much else.

If you want help flashing Raspberry Pi OS to a USB SSD, choosing the best drives, or even trying out NVMe booting on the Pi 5, especially for Raspberry Pi 4 boot from USB without SD card setups, I'd be happy to walk you through that next.

Raspberry Pi Setup Tutorials

Basic Raspberry Pi setup and configuration tutorials for beginners.If you wish to master the fundamentals before tackling USB boot projects.

 Getting Started with Raspberry Pi - Introduction

Getting Started with Raspberry Pi - Introduction

New to Raspberry Pi? This beginner-friendly guide guide you through the setup, OS installation, and basic usage of Raspberry Pi boards with practical tips.

 How to install Android on Raspberry Pi

How to install Android on Raspberry Pi

In this tutorial we will convert the Raspberry Pi in an Android device using a popular platform - emteria.OS.

How to setup DietPi on Raspberry Pi

How to setup DietPi on Raspberry Pi

Learn how to install DietPi on Raspberry Pi with this step-by-step guide. Set up a lightweight, optimized OS for your Pi with better speed and control.

 

Have any question related to this Article?

Add New Comment

Login to Comment Sign in with Google Log in with Facebook Sign in with GitHub