Running Ubuntu Server from an SSD on a Raspberry Pi is one of the simplest ways to squeeze real performance out of the tiny board. SD cards are fine for blinking LEDs or running a single Python script, but once you start hosting services, running containers, or doing anything disk‑intensive—SSD is the only sane option.
Below is a streamlined, headless‑friendly workflow that gets Ubuntu Server onto an NVMe SSD connected to a Raspberry Pi. No monitor, no keyboard, no magic. Just a Pi, an SSD, and a bit of patience.
What You Need
- Raspberry Pi – anything below Raspberry Pi 5 is a waste of time.
- NVMe SSD + adapter
- A decent microSD card (used only for installation)
- A computer with Raspberry Pi Imager installed
- Network access (Ethernet or Wi‑Fi)

Prepare the microSD Card
Start by installing Raspberry Pi Imager on your computer. It’s available for all major platforms.
- Open Raspberry Pi Imager
- Select Ubuntu Server 24.04 LTS (ARM64)
- Choose your microSD card
- Before writing, open the advanced settings and configure:
- Hostname
- SSH enabled
- Username/password or SSH key
- Wi‑Fi credentials (if needed)
Write the image and wait for the process to finish.
Save the Configuration Files
Before inserting the microSD card into the Pi, mount it on your computer and copy these three files somewhere safe:
cmdline.txtnetwork-configuser-data
These contain your SSH, Wi‑Fi, and user configuration. You’ll need them later when preparing the SSD.
These files are located on the boot partition of the microSD card
Boot the Pi From microSD
Insert the microSD card into the Raspberry Pi and power it up.
Give it a minute or two, then SSH into it using the hostname or IP address you configured earlier.
Once logged in, install Raspberry Pi Imager on the Pi itself:
sudo apt install rpi-imagerDownload the Ubuntu Server Image
Still on the Pi, download the Ubuntu Server image directly:
wget https://cdimage.ubuntu.com/releases/24.04.2/release/ubuntu-24.04.2-preinstalled-server-arm64+raspi.img.xzVerify the SSD Is Detected
Check that the Pi sees your SSD:
lsblk -fYou should see something like:
mmcblk0 (microSD)
nvme0n1 (your SSD)
If the SSD isn’t listed, fix that first—bad adapter, insufficient power, or missing firmware update.
Flash Ubuntu Server to the SSD
Use Raspberry Pi Imager’s CLI mode to write the downloaded image directly to the SSD:
sudo rpi-imager --cli ubuntu-24.04.2-preinstalled-server-arm64+raspi.img.xz /dev/nvme0n1This will take a few minutes.
Copy Configuration Files to the SSD
Mount the SSD’s boot partition:
sudo mkdir /mnt/nvfat
sudo mount /dev/nvme0n1p1 /mnt/nvfatNow copy the three files you saved earlier:
sudo cp cmdline.txt network-config user-data /mnt/nvfat/firmwareThis ensures your SSD installation boots with the same network and SSH settings as the microSD version.
Shutdown and Boot From SSD
Once everything is copied:
sudo shutdown nowRemove the microSD card and power cycle Pi.
If everything went well, the Pi should now boot directly from the SSD.
SSH into it just like before—only now it’s fast.
Done
You now have a Raspberry Pi running Ubuntu Server directly from an SSD.
No SD card bottlenecks, no random corruption, no drama.
This setup is perfect for:
- Home servers
- Docker hosts
- Home Assistant
- Kubernetes nodes
- Anything that needs real I/O performance








Leave a Reply