Raspberry Pi 5 NVMe Setup Guide: Install, Flash & Boot from SSD

Ari Mahpour
|  Created: April 1, 2025  |  Updated: April 29, 2026
At a Glance
Learn how to set up Raspberry Pi 5 NVMe storage with a PCIe HAT in covering installation, flashing, and booting from an NVMe SSD for faster, more reliable performance. Read more on The Pulse by Octopart!
Getting Started with NVMe and the Raspberry Pi 5

The Raspberry Pi 5 offers a massive performance leap over previous generations, yet many users are still held back by the limitations of MicroSD cards. Standard SD storage is often plagued by slow speeds and data integrity issues. By utilizing a Raspberry Pi 5 NVMe SSD setup with a PCIe expansion HAT, you can dramatically increase boot speeds and storage reliability. This guide covers everything you need to install, boot, and optimize NVMe storage for a superior Raspberry Pi experience.

Benefits of NVMe vs MicroSD on Raspberry Pi 5

While MicroSD cards are convenient, they are the primary bottleneck for the Raspberry Pi 5’s increased processing power. NVMe SSDs offer a massive leap in performance; while top-tier drives can hit 7,000 MB/s, the Raspberry Pi 5 PCIe storage interface (at Gen 3 x1 speeds) caps at approximately 900–985 MB/s. Even with this hardware limit, NVMe is significantly faster than the ~100 MB/s theoretical max of a high-end MicroSD card.

Beyond speed and reliability, NVMe SSDs offer greater consistency under heavy workloads. Unlike MicroSD cards, which degrade quickly with repeated writes, NVMe drives are designed for sustained performance. This makes them ideal for applications such as running databases, media servers, and AI workloads on the Raspberry Pi 5, where stable and high-speed storage is absolutely crucial.

Prepare Raspberry Pi 5 for NVMe Installation

Before setting up Raspberry Pi 5 NVMe storage, ensure you are running the latest version of Raspberry Pi OS from a MicroSD card. If you are starting from scratch, refer to the Raspberry Pi 5 Setup Guide.

To enable full support for the PCIe interface, you must update the system bootloader (EEPROM). Open the terminal and run:

sudo rpi-eeprom-update -a

Once the command finishes, you must reboot your Raspberry Pi to apply the firmware changes:

sudo reboot

After the reboot, your Pi is officially ready for the NVMe hardware. You can now shut down the system and proceed with the physical installation of your NVMe SSD and HAT.

Installing the NVMe HAT and SSD

For this setup, we are using the Geekworm X1001 NVMe HAT paired with a Silicon Power 512GB NVMe SSD. While the official Raspberry Pi NVMe HAT is an alternative, the Geekworm offers a compact, top-mounting design that is very popular for Raspberry Pi 5 PCIe storage projects.

Note on SSD Compatibility: Not all NVMe drives are created equal. Some high-power drives may draw more current than the Pi 5 can provide, and others have controller incompatibilities. Updating your EEPROM (as done in the previous step) is the best way to ensure your specific drive is recognized.

Step-by-Step Physical Setup

  1. Install the Spacers: Screw the brass standoffs into the mounting holes of the Raspberry Pi 5.
  2. Connect the PCIe Ribbon Cable: Gently lift the locking tab on the Raspberry Pi 5’s PCIe port and insert the FPC (flexible printed circuit) cable. Ensure it is seated squarely before clicking the tab back down.
  3. Mount the HAT: Place the Geekworm HAT onto the spacers, aligning the screw holes.
  4. Secure the Hardware: Use the provided screws to fix the HAT to the spacers. Then, connect the other end of the ribbon cable to the HAT’s PCIe connector.
  5. Insert the NVMe SSD: Slide your Silicon Power NVMe drive into the M.2 slot on the HAT and secure it with the small mounting screw at the rear.
A Geekworm X1001 M.2 NVMe adapter HAT connected to a Raspberry Pi 5 via ribbon cable through the PCIe slot, showing the empty M-key drive slot with labeled mounting holes for 2230, 2242, 2260, and 2280 form factor drives

Figure 1: NVMe adapter board (i.e. HAT) without NVMe drive installed

Flash NVMe SSD Using USB Enclosure

To install the OS, we’ll use the Raspberry Pi Imager. Since the SSD isn't on the Pi yet, you’ll need an external NVMe-to-USB enclosure. Select your OS and the NVMe drive, then begin flashing.

Once finished, unplug and reconnect the enclosure. Your computer might show a "Format Disk" error—ignore it. Open the partition labeled bootfs and locate the config.txt file. To unlock maximum speed, append these lines to the end of the file:

dtparam=pciex1

dtparam=pciex1_gen=3

Safely eject the drive, remove it from the enclosure, and mount it onto your HAT. Crucially, remove the MicroSD card from the Raspberry Pi 5 before powering it on. This ensures the bootloader defaults to the PCIe interface for a lightning-fast start

A Silicon Power 512GB M.2 PCIe Gen 3 NVMe SSD fully seated and secured on a Geekworm X1001 adapter HAT mounted on a Raspberry Pi 5, with USB and HDMI cables connected to the board.

Figure 2: NVMe adapter board (i.e. HAT) with NVMe drive installed

Mirror MicroSD to NVMe via SD Card Copier

If you don't have a USB-to-NVMe adapter, you can clone your existing OS directly to the SSD while it is mounted on the Raspberry Pi 5.

1. Hardware Prep & Recognition

First, physically install the NVMe HAT and SSD onto the Pi. Boot up using your current MicroSD card. To ensure the Pi "sees" the new hardware, open the terminal and edit your configuration:

sudo nano /boot/firmware/config.txt

Scroll to the bottom and add:

dtparam=pciex1

dtparam=pciex1_gen=3

Save (Ctrl+O, Enter) and Exit (Ctrl+X), then reboot.

2. Run the SD Card Copier

Once the Pi restarts, it will recognize the NVMe drive as a storage device.

  1. Go to the Raspberry Menu > Accessories > SD Card Copier.
  2. Copy From Device: Select your MicroSD card (usually /dev/mmcblk0).
  3. Copy To Device: Select your NVMe SSD (usually /dev/nvme0n1).
  4. Check the box for "New Partition UUIDs" to avoid boot conflicts.
  5. Click Start. This may take several minutes depending on your SD card speed.

3. Final Swap

Once the copy is successful:

  1. Shut down the Raspberry Pi completely.
  2. Remove the MicroSD card.
  3. Power back on. The Pi 5 will automatically detect that no SD card is present and move to the next boot priority: the NVMe drive.

Booting and Troubleshooting NVMe on Raspberry Pi 5

Troubleshooting & Final Thoughts

Once you power on, your Raspberry Pi 5 NVMe setup should boot into the desktop significantly faster than before. You’ll notice an immediate difference in system responsiveness and application load times.

However, if your Pi doesn't boot immediately, don't panic. Here is how to debug the process:

The "Spacebar" Debug Trick

If the screen remains black, you can manually intercept the bootloader:

  1. Power on the Pi and immediately tap the Spacebar repeatedly.
  2. The Raspberry Pi Bootloader Menu will appear.
  3. Press 6 to force the system to attempt an NVMe boot.
  4. Watch the text on the screen; if it hangs, it will usually give you an error code (like "Drive not found") that helps identify if the issue is the ribbon cable or the SSD itself.

Why Hardware Choice Matters

As mentioned earlier, the Raspberry Pi 5 PCIe storage interface is still evolving. Even with the latest firmware (sudo rpi-eeprom-update -a), some NVMe drives simply won't "handshake" with the Pi’s controller.

To save yourself the headache, I recommend sticking to drives known to work well with the Geekworm HAT:

  • Silicon Power 512GB (The one used in this guide)
  • WD Black SN770 (Highly reliable performance)
  • Crucial P3 / P3 Plus

Final Check: If you encounter stability issues or "system freezes" while using PCIe Gen 3, go back into your config.txt and change the line to dtparam=pciex1_gen=2. You’ll still get ~450 MB/s, which is 4x faster than a MicroSD card!

Final Thoughts: NVMe on Raspberry Pi 5

Switching from a MicroSD card to an NVMe SSD setup is arguably the single most impactful upgrade you can make for the Raspberry Pi 5. While it requires a PCIe expansion HAT and a few configuration tweaks, the results are transformative:

  • Performance: You move from ~100 MB/s (SD) to 800–900 MB/s (NVMe).
  • Reliability: No more corrupted SD cards from unexpected power loss or heavy write cycles.
  • Longevity: NVMe drives are built for years of sustained use, making them perfect for 24/7 servers or AI workloads.

Whether you are building a lightning-fast desktop replacement or a robust media server, Raspberry Pi 5 PCIe storage is the new standard for high-performance single board computer projects.

About Author

About Author

Ari is an engineer with broad experience in designing, manufacturing, testing, and integrating electrical, mechanical, and software systems. He is passionate about bringing design, verification, and test engineers together to work as a cohesive unit.

Related Resources

Back to Home
Thank you, you are now subscribed to updates.