Raspberry Pi 5 in combination with PoE/M.2 HAT opens the possibility to use fast NVMe SSD drives. This significantly increases the speed of the system, makes it more reliable compared to traditional ones microSD-cards and allows you to store significantly larger volumes of data. In this article, I’ll show you how to completely migrate your system from SD to NVMe while keeping all your partitions and settings.
System preparation
First of all, you should make sure that the system is updated and the bootloader is up to date EEPROM supports work with NVMe. To do this, it is enough to update the packages in the terminal, update the bootloader firmware and reboot Raspberry Pi. After that, you can check with the team lsblk, whether the system sees a new SSD. If the output shows the device nvme0n1, then everything is ready for the next step.
apt update
apt upgrade -V
In the list, I saw that rpi-eeprom has a new version, so updating the system will not be useless.

After the update, it is advisable to reboot Raspberry Pi, and already after rebooting, you need to check whether NVMe SSD determined by the system:
lsblk
The device should appear in the list nvme0n1
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
mmcblk0 179:0 0 117.1G 0 disk
├─mmcblk0p1 179:1 0 512M 0 part /boot/firmware
└─mmcblk0p2 179:2 0 116.6G 0 part /
nvme0n1 259:0 0 238.5G 0 disk
You can close the terminal and go to the data copy GUI
SD card cloning
Cloning is done very simply – in Raspberry Pi OS there is a built-in utility SD Card Copier. It is in the menu “Accessories» and allows you to transfer the system from the card to another medium with one click.

When the program is launched, you need to specify the source SD card, and the target is SSD. I recommend checking the box that will create a new one UUID for partitions to avoid conflicts. After pressing «Start» the copying process will begin, which may take several minutes depending on the speed of the card and disk. In my case it looks like this:
- In the field Copy From Device you need to select an SD card from the list (mmcblk0)
- In the field Copy To Device must be selected from the NVMe SSD list (nvme0n1).
- Check the box Use new partition UUIDs – to avoid ID conflicts.
Start the copying process by clicking on the button Start.

The user will receive a warning that all data will be deleted from the NVMe drive.

You have to agree and then the copying process will begin.

The process may take several minutes (depending on the speed of the SD and SSD).

Now that the memory card is cloned, you can proceed to the boot priority settings.
Setting the download order
When the system is copied, you need to configure the boot so that Raspberry Pi started with NVMe. This is done through raspi-config. In the menu “Advanced Options” there is a clause “Boot Order», where it is enough to choose to download first from NVMe, then from USB and only then from SD. This setting is not written to the card or SSD, but to the built-in EEPROM board itself, so after that the Pi will always check for NVMe first. See screenshots.
sudo raspi-config
A window will open “Raspberry Pi Software Configuration Tool (raspi-config)” in which to select the following menu sections:
Advanced Options

Boot Order

NVMe/USB (Boot from NVMe before trying USB and then SD Card)

After selecting this option, the user will receive a message about the selected priority.

After that, you can exit the settings menu by clicking on the “Finish“. To apply the changes, the system will ask to reboot now. You can postpone the reboot to another time, but it is better to do it right away.
Checking the system operation
Since the reboot happened almost instantly, there are doubts about what exactly is being used NVMe no, but it’s better to check. Turn off Raspberry Pi, remove the SD card, leave only the SSD and turn on the device again. If everything is done correctly, the system will boot from the new medium. This can be verified by the team lsblk or mount, where the root section / should be displayed on nvme0n1p2.
mount | grep ' / '
/dev/nvme0n1p2 on / type ext4 (rw,noatime)
Here the root partition (/) onnvme0n1p2 which indicates that the download occurs precisely from NVMe. Now you can remove the memory card and work with the new NVMe drive.
After completing all the steps Raspberry Pi will work faster and more stable, because SSD copes with intensive reading and writing operations better than conventional ones microSD. In addition, a reserve of free space will appear, allowing you to store more data and run heavier applications.
Conclusions
Going from an SD card to an NVMe SSD for the Raspberry Pi is a simple but very noticeable upgrade. The system starts working much faster: programs open without delays, logs and databases do not create “bottlenecks”, and the loading of the Pi itself is reduced several times. In addition to performance, the reliability factor is also important – SSDs are much more resistant to wear and tear, while SD cards can fail after prolonged use.
Using the built-in utility SD Card Copier makes the migration process as easy as possible, even for beginners: all partitions are transferred automatically, UUIDs are updated, and the size of the root partition is adapted to the volume of the new media. Setting the boot order via EEPROM ensures that the Raspberry Pi will always choose NVMe as the primary drive.
In conclusion, replacing microSD with NVMe SSD is a step that doesn’t require complicated settings, but it makes a big difference to the Raspberry Pi experience. If you have a PoE/M.2 HAT and a compatible NVMe drive, we recommend doing this upgrade immediately after initial system setup.