Boot from NVMe¶
AryaOS boots from a microSD card by default. Supported hardware can boot from an NVMe SSD instead. NVMe is faster and has better endurance for continuous use. See Media longevity.
Booting from NVMe is a Raspberry Pi bootloader change, not something the AryaOS image does for you - the steps below are one-time, per unit.
1. Fit the drive¶
Seat an M.2 NVMe SSD (2230/2242/2260/2280) in the HAT. The Pi 5 auto-detects the PCIe
link. No config.txt change is needed for detection. To force PCIe Gen 3 (faster, but not
all HATs/SSDs are stable):
The Waveshare PoE M.2 HAT+ runs at Gen 2 by default, which is plenty for AryaOS.
2. Put AryaOS on the NVMe¶
Either flash the AryaOS .img directly to the NVMe from another machine, or clone a running
SD install to the NVMe on the box:
lsblk # confirm the NVMe is /dev/nvme0n1
# Option A - clone the running SD card to NVMe:
sudo rpi-clone nvme0n1 # if rpi-clone is available
# Option B - write a downloaded image (see the OS image backup card in Cockpit):
sudo sh -c 'xzcat /var/lib/aryaos/image/*.img.xz > /dev/nvme0n1'
findmnt / afterwards will show the SD root until you change the boot order.
3. Set the boot order to prefer NVMe¶
Edit the bootloader EEPROM config and set BOOT_ORDER so the Pi tries NVMe first, then SD:
Boot-order digits are read right-to-left: 6=NVMe, 1=SD, 4=USB, f=retry. 0xf416 means
NVMe > SD > USB > repeat, so a box with no NVMe still falls back to the SD card. Reboot.
4. Verify¶
Power headroom
NVMe adds roughly 2-4 W on the PCIe link. A marginal supply can cause A brownout when you add NVMe and SDRs. Pair NVMe boot with a proper 5V/5A (27 W) supply or a true PoE+ (802.3at) source. AryaOS surfaces under-voltage via power-health and falls back to safe mode if it crash-loops. See Hardware & requirements.
See also¶
- Media longevity - why NVMe/eMMC beats SD for continuous use
- OS image backup - pulling the unit is own
.imgto re-flash