Raspberry Pi 3B+ boot from USB SSD o HDD External drive: come eliminare ogni preoccupazione per la perdita di dati a causa della corruzione della scheda SD grazie all’uso di un disco esterno nella mia guida passo passo.
Raspberry memoria e scheda SD
Raspberry Pi è stato progettato, in tutte le sue versioni, per funzionare con una scheda SD quale supporto di memoria:

Una scheda SD, per quanto normalmente si misurino esclusivamente le performance in termini di velocità di lettura e scrittura, ha un numero massimo di scritture garantite dal produttore dopo le quali può diventare non più affidabile e di fatto richiedere la sostituzione (in modo non prevedibile !).

Quando dovete scegliere la scheda SD per il vostro nuovo Raspberry Pi ricordate sempre che:
- la capacità minima raccomandata con Raspberry Pi OS è di 8 GB, potete ovviamente salire
- la classe della scheda SD, che definisca la velocità di scrittura continua, non è normalmente importante se non per applicazioni che richiedono performance elevate (come ad esempio i database)
- tutti i modelli recenti di Raspberry Pi utilizzando il formato micro SD
Raccomando comunque di scegliere un modello di scheda SD con velocità di scrittura minima di almeno 30 MB/s corrispondente alle classi di velocità UHS 3 (U3) o Video 30 (V30).
Puoi approfondire leggendo la mia guida per scegliere scheda micro SD per Raspberry Pi.
La frequenza di scrittura delle applicazioni che utilizzate, inclusi i log, determinano la durata effettiva: il risultato è comunque il rischio di perdere i dati.
Per gestire questo problema ci sono due azioni:
- ridurre la frequenza delle scritture sulla scheda SD
- collegare un hard disk esterno che diventi la memoria primaria
Raspberry Pi 3B+ boot from USB SSD or HDD external drive: riduzione scritture scheda SD
Vediamo quali sono le soluzioni possibili per ridurre la frequenza delle scritture su disco in un Raspberry Pi.
Identificare file ed applicazioni con frequenti scritture su disco
Il passo preliminare è quello di identificare i file che vengono scritti dalle applicazioni più frequentemente mediante il comando iotop
:
sudo apt-get install iotop
sudo iotop -bktoqqq
Il cui output indica i processi che hanno maggiormente contributo all’I/O sul vostro sistema.
Se conoscete bene le applicazioni che girano sul vostro Raspberry Pi, il miglior approccio è quello di abbassare la verbosità dei log a quanto effettivamente necessario.
Mettere i log su RAM disk
L’idea è quella di mettere in RAM disk i file di log modificati più frequentemente: in questo modo potremmo ridurre drasticamente ridurre le scritture su disco ed anche migliorare le performance.
Ovviamente:
- dobbiamo avere memoria sufficiente per farlo
- possiamo farlo esclusivamente con dati di natura transitoria di cui non abbiamo bisogno dopo un eventuale riavvio del sistema
Per facilitarvi nel compito, la raccomandazione è quella di configurare le applicazioni in modo che tutte utilizzino il la medesima directory per scrivere i propri file di log.
Nel mio caso ho creato i seguenti drive in RAM all’interno del file di configurazione /etc/fstab
:
tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=50m 0 0
tmpfs /home/pi/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0
tmpfs /tmp tmpfs defaults,noatime,mode=1777,size=30m
Per farlo in modo ancora più semplice è possibile installare Log2RAM che tra l’altro, si occupa anche periodicamente o allo shutdown di scrivere comunque su disco. In questo modo ci portiamo a caso il vantaggio della riduzione delle scritture ma riducendo comunque il rischio di perdere dati.
Disabilitare log di sistema
Prima di procedere con Raspberry Pi 3 B+ HDD hard disk esterno, possiamo comunque ridurre le scritture sulla scheda SD disabilitando molti dei log di sistema.
Potete farlo facilmente modificando il file /etc/rsyslog.conf
aggiungendo all’inizio della sezione:
###############
#### RULES ####
###############
la riga seguente:
*.* ~
Potete anche eventualmente disattivarli in modo più fine commentando invece le singole righe del file di configurazione.
Nel mio caso specifico ho disabilitato solamente daemon.log
e syslog
che erano di gran lunga i file più voluminosi.
Raspberry Pi 3B+ boot from USB SSD or HDD external drive: come collegare
Per poter espandere lo spazio di archiviazione oltre quello della scheda SD di sistema e’ possibile collegare Raspberry Pi 3 B+ HDD hard disk esterno USB.

Sul mercato si trovano dischi USB in formato 2.5″ e 3.5″ con le caratteristiche seguenti:
- HDD hard disk esterno USB 2.5″: contenitore di dimensioni ridotte e di solito auto-alimentato attraverso il cavo USB stesso
- HDD hard disk esterno USB 3.5″: contenitore di dimensioni maggiori e solitamente con alimentatore proprio da collegare alla presa elettrica
Nel caso di alimentazione mediante il cavo USB abbiamo le ulteriori opzioni:
- collegamento diretto alla presa USB del Raspberry Pi, ma attenzione ai limiti di potenza
- collegamento tramite un bus USB
Per semplificare il numero di componenti, ho deciso di procedere con l’alimentazione dell’HDD hard disk esterno utilizzando direttamente una presa USB del mio Raspberry Pi 3.
Raspberry Pi 3B+ boot from USB SSD or HDD external drive: alimentatore
Il primo dubbio e’ verificare se i consumi totali siano compatibili col mio alimentatore Raspberry da 2.000 mA / 10 W:

Per verificare la versione hardware del vostro Raspberry Pi potete usare questo astruso comando:
rev=$(awk '/^Revision/ { print $3 }' /proc/cpuinfo) && curl -L perturb.org/rpi?rev=$rev
che però fornisce un risultato molto facile da leggere:

Tramite un paio di autorevoli siti disponibili in rete:
- Raspberry Pi Dramble – Power Consumption Benchmarks
- Raspberry Pi 4, 3A+, Zero W – specs, benchmarks & thermal tests
Possiamo facilmente confrontare i consumi dei vari modelli di Raspberry Pi:
Che ci dicono che in condizioni di massima occupazione della CPU gli assorbimenti massimi sono:
Modello | Potenza | Corrente |
---|---|---|
Raspberry Pi 4 B | 7,6 W | 1.520 mA |
Raspberry Pi 3 A+ | 5,4 W | 1.080 mA |
Raspberry Pi 3 B+ | 6,4 W | 1.280 mA |
Raspberry Pi 3 B | 5,9 W | 1.180 mA |
Occorre anche aggiungere gli eventuali assorbimenti delle periferiche aggiuntive collegate al vostro Raspi.
Ho quindi ordinato un Toshiba Canvio Basics, uno degli hard disk esterni più venduti, probabilmente per l’eccellente rapporto qualità / prezzo:

Verificandone la scheda tecnica, vediamo che l’assorbimento massimo dell’hard disk esterno Toshiba Canvio Basics tramite bus USB è pari a 900 mA:

Sommando i consumi massimi di Raspberry Pi 3 B+ HDD hard disk esterno otteniamo una potenza massima assorbita pari a 8,15 W / 1.630 mA.
Direi che il mio alimentatore Raspberry dovrebbe farcela in agilità a supportare Raspberry Pi 3 B+ HDD hard disk esterno, ci sono comunque molte opzioni tra cui scegliere:
Visto che ci siamo vediamo come ottimizzare al massimo i consumi, ad esempio leggendo Raspberry Pi Zero – Conserve power and reduce draw to 80mA.
I principali accorgimento possibili per risparmiare energia sono i seguenti:
Azione | Risparmio (mA) | |
---|---|---|
Disattivare HDMI | 25 | Se il vostro Raspberry non e' collegato ad un display o TV, potete risparmiare energia disattivando l'HDMI mediante il comando /usr/bin/tvservice -o (-p per attivarlo).Per disattivare l'HDMI all'accensione basata aggiungere la linea di comando al file di configurazione /etc/rc.local . |
Disattivare i LED | 5 per LED | Potete risparmiare ulteriore energia spegnendo i LED del vostro Raspberry. |
Ridurre gli accessori | > 50 | Ogni dispositivo collegato al Raspberry consuma energia: un mouse o una tastiera consumano fino a 50-100 mA. Se non li utilizzate effettivamente scollegateli. |
Attenzione al software installato | > 100 | Se sul vostro Raspberry girano innumerevoli applicazioni in background, la CPU viene consumata comunque. Rimuovete tutte le applicazioni che non vi servono effettivamente. |
Raspberry Pi 3B+ boot from USB SSD or HDD external drive: collegamento
Una volta collegati Raspberry Pi 3 hard disk esterno e verificato che il sistema continua a funzionare occorre configurarlo.
Raspberry Pi 3B+ boot from USB SSD or HDD external drive – Scelta file system
Attenzione: la scelta del formato e’ irreversibile pena una nuova formattazione del disco con conseguente perdita dei dati.
Le opzioni sono le seguenti:
- NTFS: formato di Windows ma con grossi problemi di prestazioni su Raspberry Pi. Sconsigliato.
- FAT: vecchio formato di Windows con massima compabilita’ nella versione FAT32 (con limite di 4 GB sulla dimensione dei file).
- OSX: formato di Apple non compatibile con Windows.
- EXT: formato nativo di Linux con massime prestazioni. Utilizzabile comunque su Windows ed Apple.
La mia scelta e’ EXT4 poiché conto di utilizzare il disco esclusivamente col Raspberry Pi.
Raspberry Pi 3B+ boot from USB SSD or HDD external drive – Verifica disco
Per verificare l’effettivo collegamento del disco esterno, potete eseguire questo comando:
sudo blkid
/dev/mmcblk0p1: LABEL="boot" UUID="0F5F-3CD8" TYPE="vfat" PARTUUID="19f14882-01"
/dev/mmcblk0p2: UUID="0aed834e-8c8f-412d-a276-a265dc676112" TYPE="ext4" PARTUUID="19f14882-02"
/dev/sda: LABEL="TOSHIBA EXT" UUID="C826CBA726CB94BA" TYPE="ntfs" PARTUUID="0d6345c3-01"
/dev/mmcblk0: PTUUID="19f14882" PTTYPE="dos"
Che ci indica chiaramente come il nostro disco TOSHIBA EXT
sia effettivamente visibile dal sistema.
Raspberry Pi 3B+ boot from USB SSD or HDD external drive – Verifica partizione del disco
Ora possiamo verificare il nome della partizione corrispondente al nostro disco esterno:
sudo fdisk -l
Disk /dev/sda: 931,5 GiB, 1000204883968 bytes, 1953525164 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0d6345c3
Device Boot Start End Sectors Size Id Type
/dev/sda * 2048 1953521663 1953519616 931,5G 7 HPFS/NTFS/exFAT
Il secondo disco elencato, nel mio caso /dev/sda
, è il disco USB connesso (possiamo riconoscerlo anche dalla capacità molto grande). Potete notare come fosse già formattato e pronto all’uso con Windows.
Raspberry Pi 3B+ boot from USB SSD or HDD external drive – Formattazione del disco
Per formattare la partizione del nuovo disco col filesystem EXT4, perdendo tutti i dati eventualmente memorizzati, usiamo il comando seguente:
sudo mkfs.ext4 /dev/sda -L etichetta_volume
dove /dev/sda
è il nome della partizione da formattare e l’opzione -L
permette di assegnare un’etichetta.
Potete verificare l’elenco delle partizioni mediante il comando lsblk
.
Raspberry Pi 3B+ boot from USB SSD or HDD external drive – Directory e permessi del disco
Completata la formattazione del disco, possiamo montare una directory associata all’hard disk esterno da agganciare al file system principale del sistema. Per convenzione i dischi esterni sono sempre montati all’interno della directory /mnt
.
Creiamo quindi una sottodirectory /mnt/ext_hdd
con il comando mkdir
:
sudo mkdir /mnt/ext_hdd
Cambiamone i permessi di accesso con chmod
per renderla accessibile in lettura e scrittura da tutti gli utenti del sistema:
sudo chmod 777 /mnt/ext_hdd
Raspberry Pi 3B+ boot from USB SSD or HDD external drive – Mount del disco
Finalmente montiamo il disco sulla stessa directory con il comando mount
:
sudo mount /dev/sda /mnt/ext_hdd
Raspberry Pi 3B+ boot from USB SSD or HDD external drive – Mount automatico del disco
Per impostare il sistema in modo da montare automaticamente il disco esterno ogni volta che si effettua un riavvio basta fare una modifica al file di configurazione /etc/fstab
:
sudo nano /etc/fstab
Aggiungendo, dopo le partizioni di sistema associate alla scheda SD, una riga per la partizione del disco esterno:
/dev/sda /mnt/ext_hdd auto defaults,user 0 1
Al riavvio il disco, se acceso prima del Raspberry Pi, verrà rimontato automaticamente. Nel caso ci dimenticassimo di accendere il disco, è sempre possibile montarlo manualmente in un secondo momento come già descritto in precedenza.
Raspberry Pi 3B+ boot from USB SSD or HDD external drive: boot da USB
A partire dalla versione Raspberry Pi 3 non è più necessaria un’alimentazione supplementare per i dischi esterni, dunque possiamo pensare di spostare tutto sul nostro hard disk esterno.
Raspberry Pi 3B+ boot from USB SSD or HDD external drive – Installazione rsync
Ora possiamo installare rsync
, un tool che tiene sincronizzati i dati tra diverse directory:
sudo apt-get install rsync
Raspberry Pi 3B+ boot from USB SSD or HDD external drive – Copia scheda SD su disco esterno
Copiamo l’intero contenuto della scheda SD all’interno del disco esterno tramite rsync
:
sudo rsync -axv / /mnt/ext_hdd
Raspberry Pi 3B+ boot from USB SSD or HDD external drive – Modifica cmdline.txt
Ora indichiamo il nuovo disco di boot modificando il file cmdline.txt
, di cui e’ meglio creare una copia di backup preliminare:
sudo cp /boot/cmdline.txt /boot/cmdline.txt.bak
sudo nano /boot/cmdline.txt
In particolare ci interessa la voce root=
, dove va scritta la posizione del disco esterno (ovvero /dev/sda
). Inoltre occorre aggiungere la voce rootdelay=5
alla fine del file, in modo da impostare un tempo di attesa prima di montare il file system di root.
La nuova riga di configurazione sarà dunque la seguente:
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/sda rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait rootdelay=5
Infine blocchiamo il boot dalla scheda SD andando a commentare la riga della sua partizione sul file /etc/fstab
:
#/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
Il risultato sarà il seguente:
df -k
File system 1K-blocchi Usati Disponib. Uso% Montato su
/dev/root 960378896 2224584 909299940 1% /
devtmpfs 495484 0 495484 0% /dev
tmpfs 500092 0 500092 0% /dev/shm
tmpfs 500092 12900 487192 3% /run
tmpfs 5120 4 5116 1% /run/lock
tmpfs 500092 0 500092 0% /sys/fs/cgroup
/dev/mmcblk0p1 43436 22138 21298 51% /boot
tmpfs 100016 0 100016 0% /run/user/1000
Notate che ora tutto il sistema si trova nel disco esterno, ad eccezione dei file di boot ancora presenti nella scheda SD che sarà necessario tenere sempre inserita nel Raspberry Pi.
E’ anche possibile configurare il firmware su scheda in modo da abilitare il Raspberry boot da USB hard disk esterno senza ricorrere più alla scheda SD come spiegato in HOW TO BOOT FROM A USB MASS STORAGE DEVICE ON A RASPBERRY PI 3.
Se ti e’ piaciuto scoprire come collegare Raspberry Pi 3 B+ HDD hard disk esterno e come fare Raspberry boot da USB, puoi anche scoprire come ho usato il mio Raspberry Pi per hackerare la mia pompa di calore, leggi Rotex HPSU Compact hack con Raspberry Pi e PiCAN2: prima parte.
Leggi tutti i miei articoli su Raspberry Pi:
Ultimo aggiornamento Amazon Affiliate 2025-02-21 at 19:55
ciao avrei una domanda avrei un msxvr ( e un computer msx fatto con un raspberry pi3+ ) visto che e un bel pò lento vorrei velocizzarlo passando il software su un ssd e farlo partire da li .
come potrei fare ?
esiste un modo di modificare l’immagine della sua sd da windows ?
grazie e buona giornata
Ciao Alex,
innanzitutto complimenti per possedere questo oggetto!
Sinceramente non saprei, ho cercato qualcosa in rete ma non ho trovato nulla.
Due domande:
1) hai provato a leggere la SD da PC per capirne la struttura?
2) hai un modo per accedere al Linux sottostante (ammesso che ci sia)?
Può essere eseguito anche su una chiavetta USB, giusto?
Ciao Luigi,
si’ ma eviterei per non avere lo stesso problema di SD Card che si bruciano.
Si funziona benissimo, la domanda che vorrei porre è:
dal momento che adesso il sistema viene eseguito dall’ hard disk, tutto quello faccio compreso aggiornamenti avvengono sull’hard disk, giusto? Suppongo che fare un back up di sistema come facevo con Win32DiskImager facendo l’ immagine della SD, adesso invece vada fatto sull’ hard disk, non so se è valido lo stesso strumento.
A questo punto però non dovrebbe più servire tenere aggiornata la SD. Della quale mi piacerebbe sapere
quali sono i file essenziali da tenere, suppongo che tutto il resto può anche essere eliminato.
Grazie mille per eventuali delucidazioni
Saluti Salvatore
Ciao Salvatore,
come scrivevo nell’articolo “tutto il sistema si trova nel disco esterno, ad eccezione dei file di boot ancora presenti nella scheda SD che sarà necessario tenere sempre inserita nel Raspberry Pi”.
Come forma di backup ora utilizzo RClone su Google Drive.
Ciao,
scusa non capisco come fai ad alimentare un ssd da usb:
Come da te citato:
“Sommando i consumi massimi di Raspberry Pi 3 B+ HDD hard disk esterno otteniamo una potenza massima assorbita pari a 8,15 W / 1.630 mA”.
“modello 3 B+ = 5,1 W / 980 mA”
1630-980= 650mA –> la porta usb erogo al massimo 500mA
Ciao Gregorio,
leggi nella documentazione What are the power requirements?
“The Raspberry Pi B+ and 2 Model B can supply 600mA/1.2A to downstream USB peripherals, switchable by a firmware setting. This allows the vast majority of USB devices to be connected directly to these models, assuming the upstream power supply has sufficient available current.”
leggendo nella documentazione.. ti manca il comando “max_usb_current=1”
leggendo dalla documentazione.. ti manca il comando “max_usb_current=1”
Ciao Gregorio,
devi leggere la documentazione aggiornata. Non trovi quel comando in questo articolo perché non serve più: a partire dal Raspberry 3B quella configurazione e’ diventata di default.
La tua osservazione e’ errata.