Table of Contents
The Raspberry Pi 5 introduced native PCIe support, finally enabling direct NVMe SSD booting. If you have been frustrated by the sluggish read/write speeds of microSD cards, switching to an NVMe drive can deliver up to 10x faster storage performance. This guide walks you through every step of setting up NVMe SSD boot on your Raspberry Pi 5 in India.
Why Boot from NVMe SSD on Raspberry Pi 5
MicroSD cards have always been the Achilles’ heel of Raspberry Pi performance. Even the fastest UHS-I cards top out at around 100 MB/s sequential reads, and random I/O is significantly worse. An NVMe SSD connected via the Pi 5’s PCIe interface can achieve:
- Sequential reads: 800+ MB/s (vs ~90 MB/s on SD)
- Sequential writes: 600+ MB/s (vs ~30 MB/s on SD)
- Random 4K IOPS: 50,000+ (vs ~3,000 on SD)
- Boot time: Under 15 seconds (vs 30-45 seconds on SD)
For workloads like databases, Docker containers, web servers, or any I/O-intensive application, NVMe SSD makes the Pi 5 feel like an entirely different machine.
Hardware Requirements
Here is what you need for this project:
- Raspberry Pi 5 (4GB or 8GB model)
- NVMe M.2 SSD (2230 or 2242 size recommended; 2280 with compatible HAT)
- PCIe to M.2 HAT/Adapter for Raspberry Pi 5
- MicroSD card (for initial setup, can be removed later)
- 5V 5A USB-C power supply (official Pi 5 PSU recommended)
- Heatsink for the SSD (NVMe drives can get warm)
NVMe Adapters for Raspberry Pi 5 on Zbotic.in
Setting Up the NVMe HAT
Follow these steps to physically install the NVMe SSD:
- Power off your Raspberry Pi 5 completely and disconnect power.
- Connect the FFC cable from the Pi 5’s PCIe connector to the HAT. The connector is located between the HDMI ports and the USB-C power port. Lift the latch gently, insert the cable with the contacts facing down, and press the latch back.
- Insert the M.2 SSD into the HAT’s M-key slot at a slight angle, then press down and secure with the provided screw.
- Mount the HAT on top of the Pi 5 using the standoffs provided.
- Apply thermal pads between the SSD and the case if you are using one with a heatsink.
# Verify the NVMe drive is detected after booting from SD card
sudo lspci
# You should see something like:
# 0000:01:00.0 Non-Volatile memory controller: ...
# Check the block device
lsblk
# Look for nvme0n1
Configuring the Bootloader for NVMe
The Pi 5 bootloader needs to be updated and configured to boot from NVMe. Boot from your SD card first:
# Update the system and bootloader
sudo apt update && sudo apt full-upgrade -y
sudo rpi-eeprom-update -a
# Edit the boot order
sudo raspi-config
# Navigate to: Advanced Options > Boot Order > NVMe/USB Boot
# Select NVMe as the primary boot device
# Alternatively, edit manually:
sudo rpi-eeprom-config --edit
# Change BOOT_ORDER to: BOOT_ORDER=0xf416
# This means: NVMe first, then SD card, then USB, then network
# 6=NVMe, 1=SD, 4=USB, f=restart
# Reboot to apply
sudo reboot
Understanding BOOT_ORDER values:
6= NVMe boot4= USB mass storage boot1= SD card boot2= Network bootf= Restart the sequence
Cloning Your SD Card to NVMe SSD
The easiest method is cloning your existing SD card to the NVMe SSD:
# Install the SD Card Copier (comes pre-installed on Raspberry Pi OS)
# Or use dd for a raw clone:
# First, identify your drives
lsblk
# SD card is typically /dev/mmcblk0
# NVMe SSD is typically /dev/nvme0n1
# Method 1: Using SD Card Copier (GUI)
# Open the application menu > Accessories > SD Card Copier
# Select source (SD card) and destination (NVMe SSD)
# Method 2: Using dd (command line)
sudo dd if=/dev/mmcblk0 of=/dev/nvme0n1 bs=4M status=progress
# Method 3: Fresh install with Raspberry Pi Imager
# Use Raspberry Pi Imager on your PC
# Select the NVMe SSD via a USB-to-NVMe enclosure
# Flash Raspberry Pi OS directly to the NVMe SSD
# After cloning, expand the filesystem
sudo raspi-config
# Advanced Options > Expand Filesystem
For a fresh install, you can also use rpi-imager from another computer with the SSD in a USB enclosure, flash the OS directly, then move the SSD to the Pi 5’s HAT.
Performance Benchmarks: SD Card vs NVMe
Here are real-world benchmarks comparing a SanDisk Extreme 64GB microSD vs a Western Digital SN740 256GB NVMe SSD on Raspberry Pi 5:
| Benchmark | SD Card | NVMe SSD | Improvement |
|---|---|---|---|
| Sequential Read | 88 MB/s | 860 MB/s | 9.8x |
| Sequential Write | 32 MB/s | 620 MB/s | 19.4x |
| Random 4K Read | 3,100 IOPS | 52,000 IOPS | 16.8x |
| Random 4K Write | 1,800 IOPS | 38,000 IOPS | 21.1x |
| Boot Time | 38 seconds | 14 seconds | 2.7x |
# Run your own benchmarks:
# Sequential read/write
sudo hdparm -Tt /dev/nvme0n1
# Detailed I/O benchmark with fio
sudo apt install fio
fio --name=seqread --rw=read --bs=1M --size=1G --numjobs=1 --runtime=30
fio --name=randread --rw=randread --bs=4k --size=256M --numjobs=4 --runtime=30
Recommended Product
Waveshare PCIe To M.2 Adapter Board (E) With Cooling Fan for Pi 5
Troubleshooting Common Issues
NVMe Drive Not Detected
- Check the FFC cable orientation (contacts face down on the Pi 5 connector).
- Ensure the cable is fully seated and the latch is closed.
- Try a different FFC cable length (40mm is standard).
- Update the bootloader:
sudo rpi-eeprom-update -a
Boot Fails After Removing SD Card
- Verify BOOT_ORDER includes
6for NVMe. - Ensure the NVMe SSD has a valid boot partition.
- Re-insert the SD card, boot from it, and check
/boot/firmware/config.txt.
Slow Performance
- The Pi 5 PCIe runs at Gen 2 x1 by default. Add
dtparam=pciex1_gen=3to/boot/firmware/config.txtfor Gen 3 speeds (not all SSDs are stable at Gen 3). - Use
lspci -vvto verify link speed. - Ensure adequate cooling – thermal throttling affects SSD performance.
Power Issues
- NVMe SSDs can draw 2-3W. Use the official 27W USB-C power supply.
- If using a passive HAT without external power, consider a powered USB hub as backup.
Frequently Asked Questions
Can I boot Raspberry Pi 4 from NVMe SSD?
No, the Raspberry Pi 4 does not have a native PCIe interface. You can boot from USB SSD using a USB-to-NVMe enclosure, but speeds are limited to USB 3.0 rates (~400 MB/s). Only the Pi 5 supports direct NVMe boot via PCIe.
Which NVMe SSD size should I buy for Raspberry Pi 5?
2230 and 2242 sizes work best with most HATs. 2280 SSDs are supported by some larger adapters but may not fit in compact cases. Popular choices include WD SN740 (2230) and Samsung PM991a (2230).
Does NVMe SSD boot reduce the lifespan of the SSD?
Modern NVMe SSDs have endurance ratings of 150-600 TBW (Terabytes Written). For typical Raspberry Pi usage, even a 150 TBW drive would last over 10 years. SD cards actually fail much sooner due to limited write cycles.
Can I use both NVMe SSD and SD card simultaneously?
Yes. You can boot from NVMe and still mount the SD card as additional storage. This is useful for portable data or as a recovery option.
What is the price of NVMe setup for Raspberry Pi 5 in India?
A basic NVMe HAT costs around ₹800-1,500 from Zbotic.in, and a compatible 256GB NVMe SSD costs ₹2,000-3,500 from local retailers. The total investment of ₹3,000-5,000 dramatically improves performance.
{“@context”: “https://schema.org”, “@type”: “FAQPage”, “mainEntity”: [{“@type”: “Question”, “name”: “Can I boot Raspberry Pi 4 from NVMe SSD?”, “acceptedAnswer”: {“@type”: “Answer”, “text”: “No, the Raspberry Pi 4 does not have a native PCIe interface. You can boot from USB SSD using a USB-to-NVMe enclosure, but speeds are limited to USB 3.0 rates (~400 MB/s). Only the Pi 5 supports direct NVMe boot via PCIe.”}}, {“@type”: “Question”, “name”: “Which NVMe SSD size should I buy for Raspberry Pi 5?”, “acceptedAnswer”: {“@type”: “Answer”, “text”: “2230 and 2242 sizes work best with most HATs. 2280 SSDs are supported by some larger adapters but may not fit in compact cases. Popular choices include WD SN740 (2230) and Samsung PM991a (2230).”}}, {“@type”: “Question”, “name”: “Does NVMe SSD boot reduce the lifespan of the SSD?”, “acceptedAnswer”: {“@type”: “Answer”, “text”: “Modern NVMe SSDs have endurance ratings of 150-600 TBW (Terabytes Written). For typical Raspberry Pi usage, even a 150 TBW drive would last over 10 years. SD cards actually fail much sooner due to limited write cycles.”}}, {“@type”: “Question”, “name”: “Can I use both NVMe SSD and SD card simultaneously?”, “acceptedAnswer”: {“@type”: “Answer”, “text”: “Yes. You can boot from NVMe and still mount the SD card as additional storage. This is useful for portable data or as a recovery option.”}}, {“@type”: “Question”, “name”: “What is the price of NVMe setup for Raspberry Pi 5 in India?”, “acceptedAnswer”: {“@type”: “Answer”, “text”: “A basic NVMe HAT costs around u20b9800-1,500 from Zbotic.in, and a compatible 256GB NVMe SSD costs u20b92,000-3,500 from local retailers. The total investment of u20b93,000-5,000 dramatically improves performance.”}}]}
Get All Your Raspberry Pi Components from Zbotic.in
India’s trusted store for genuine Raspberry Pi boards, HATs, accessories, and components. Fast shipping across India with expert support.
Add comment