
Un Raspberry Pi 5 con un SSD NVMe al posto della microSD è più veloce e soprattutto più affidabile: le microSD, con le scritture continue di un server, prima o poi si rovinano. In questa guida installo Raspberry Pi OS Lite (64 bit) su un SSD collegato tramite una scheda di espansione M.2 e faccio partire il Raspberry direttamente dall’SSD.
Cosa serve
- Raspberry Pi 5 con alimentatore ufficiale da 27 W
- scheda di espansione PCIe per SSD M.2 (qui una Geekworm X1001)
- SSD NVMe M.2
- una microSD, usata solo per la preparazione
- un adattatore USB per SSD NVMe, per scrivere l’immagine dal computer
- Raspberry Pi Imager sul computer
Scorciatoia: se il firmware (EEPROM) del Raspberry è già aggiornato e l’ordine di avvio è già impostato sull’SSD, basta il passo 2 e il passo 6: si scrive l’immagine sull’SSD e si parte.
1. Preparare la microSD
Con Raspberry Pi Imager scrivi sulla microSD Raspberry Pi OS Lite (64-bit). Nelle impostazioni di Imager configura nome utente, password e SSH, così puoi collegarti al Raspberry dalla rete.
Monta sul Raspberry sia la scheda con l’SSD sia la microSD, poi avvialo: per ora parte dalla microSD.
2. Preparare l’SSD
Collega l’SSD al computer con l’adattatore USB e scrivi anche su questo Raspberry Pi OS Lite (64-bit) con Imager, con le stesse impostazioni.
Al termine, sul computer compare la partizione bootfs dell’SSD. Apri il file config.txt e aggiungi in fondo:
[all]
dtparam=pciex1
dtparam=pciex1_gen=3
La prima riga attiva il connettore PCIe a cui è collegato l’SSD (dtparam=nvme è un sinonimo, basta una delle due). La seconda porta il collegamento alla velocità Gen 3, circa il doppio della Gen 2 predefinita.
Rimonta l’SSD sulla scheda di espansione del Raspberry.
3. Aggiornare il sistema e il firmware
Collegati al Raspberry in SSH, ancora avviato dalla microSD, e aggiorna sistema e firmware:
sudo apt update
sudo apt full-upgrade -y
sudo rpi-eeprom-update -a
sudo reboot
4. Far vedere l’SSD al Raspberry
Aggiungi le stesse righe anche al config.txt della microSD:
sudo nano /boot/firmware/config.txt
[all]
dtparam=pciex1
dtparam=pciex1_gen=3
Riavvia con sudo reboot, poi verifica che l’SSD sia riconosciuto:
lspci
Deve comparire una riga simile a questa:
0000:01:00.0 Non-Volatile memory controller: ...
5. Impostare l’avvio dall’SSD
sudo raspi-config
Vai in 6 Advanced Options → A4 Boot Order → B2 NVMe/USB Boot e conferma. Poi apri la configurazione del firmware:
sudo rpi-eeprom-config --edit
Il contenuto deve diventare così:
[all]
PCIE_PROBE=1
BOOT_UART=1
POWER_OFF_ON_HALT=1
BOOT_ORDER=0xf416
PCIE_PROBE=1: fa cercare l’SSD sul connettore PCIe anche alle schede di espansione che non si annunciano da sole, come la X1001;BOOT_ORDER=0xf416si legge da destra verso sinistra: prima l’SSD NVMe (6), poi la microSD (1), poi una chiavetta USB (4), e se non trova nulla ricomincia (f);POWER_OFF_ON_HALT=1: quando spegni il Raspberry, riduce al minimo il consumo.
Salva e chiudi: le modifiche vengono scritte nel firmware al riavvio successivo.
6. Partire dall’SSD
Spegni il Raspberry con sudo poweroff, togli la microSD e riaccendilo. Ora parte dall’SSD. Per verificarlo:
findmnt /
Nella colonna SOURCE deve comparire /dev/nvme0n1p2.
Note
- La velocità Gen 3 non è certificata ufficialmente da Raspberry Pi. Con la maggior parte degli SSD funziona senza problemi; se noti blocchi o errori sul disco, togli la riga
dtparam=pciex1_gen=3. - La microSD puoi tenerla da parte come sistema di emergenza: con l’ordine di avvio impostato, se l’SSD non risponde il Raspberry parte dalla microSD.
- Riferimenti: le guide di Geekworm su avvio da NVMe con il Raspberry Pi 5, sulla scheda X1001 e sull’aggiornamento del firmware.