Come avviare il Raspberry Pi 4 da SSD o chiavetta USB

Vi spieghiamo come avviare il Raspberry Pi 4 o il Raspberry 3 da un SSD o da una chiavetta USB.

Avatar di Avram Piltch

a cura di Avram Piltch

Il Raspberry Pi 4 in queste ultime settimane può essere considerato un vero e proprio trend topic, come potete vedere dalla lista degli articoli di cui è protagonista:

Nel seguente articolo andremo a vedere quali sono i passaggi che bisogna seguire se si vuole far avviare un Raspberry Pi da un altro dispositivo di archiviazione che non sia la solita microSD.

Come molti di voi sapranno, per impostazione predefinita Raspberry Pi si avvia e memorizza tutti i suoi programmi su una microSD. Questo tipo di memoria non è tra le più veloci a causa della larghezza di banda piuttosto limitata.

Nonostante sul Raspberry Pi 4 lo slot di memoria possa raggiungere un massimo teorico di 50 MBps, che è comunque il doppio di rispetto a quello del Pi 3B+ o degli altri modelli Pi 3, la verità è che potreste ottenere maggiore velocità collegando un'unità esterna a una delle porte USB del Raspberry Pi, in particolare a quelle del Pi 4 che offre connessioni USB 3.0, che raggiungono un massimo teorico di 660 MBps.

Sfortunatamente al momento non è ancora possibile poter avviare un Pi 4 da un’unità esterna, ma è comunque una funzionalità che la Raspberry Pi Foundation ha promesso d'implementare nei prossimi aggiornamenti del firmware.

Quello che però al momento è possibile fare è forzare Raspbian, il sistema operativo basato su Linux ed esclusivo per i Raspberry Pi, ad usare un’unità esterna per la sua partizione “root”, che contiene tutti i programmi e i dati.

Quello che si andrà ad ottenere alla fine sarà una piccola partizione di avvio su una microSD ma il cuore pulsante dell’intero sistema starebbe su un veloce e prestante SSD o su una penna USB.

In attesa dell’aggiornamento che consentirà di avviare il Raspberry Pi 4 direttamente da un’unità esterna, senza richiedere nessuna microSD, potete seguire i passaggi che troverete nel prossimo paragrafo.

Se invece volete sapere come avviare un Pi 3 da un’unità esterna allora dovrete saltare alla sezione successiva di questo articolo.

Come far funzionare il Raspberry Pi 4 da un SSD

La prima cosa da fare è preparare la vostra unità esterna in modo che tutti i dati necessari si trovino su di essa:

  • Collegate l'unità esterna al Pi tramite una delle USB 3.0 (quelle blu).
  • Avviate una finestra del terminale. Per farlo si può cliccare l’icona sul desktop, premere la combinazione di tasti CTRL+ALT+T oppure collegarsi al Pi tramite un altro computer usando SSH.
  • Utilizzate il comando fdisk -l per visualizzare a schermo l’elenco di tutte le unità presenti sul Pi 4.
sudo fdisk -l

Dopo aver digitato il comando, apparirà a schermo una lista di tutte le partizioni disponibili. Prendete nota della seconda partizione della scheda microSD (anche se potreste non avere bisogno di queste informazioni, è sempre bene averle a portata di mano), è lì che Raspbian archivia i dati. Nel nostro caso, come si può vedere nell'immagine, il nome riportato è /dev/mmcblk0p2.

Ricordate il nome assegnato alla vostra unità esterna, che probabilmente è /dev/sda ma potrebbe essere diverso se avete più di una unità collegata.

  • Avviate fdisk, puntando al vostro drive esterno.
sudo fdisk/dev/sda

Vi apparirà un prompt che vi darà la possibilità di visualizzare una lista dei comandi di fdisk.

  • Digitate p nel prompt per vedere la lista delle partizioni presenti sul drive.

Probabilmente su questa schermata vedrete solo una partizione, ma magari vorrete eliminarne alcune, nel caso ce ne fossero diverse.

  • Digitate d per eliminare la partizione primaria. Se ne avete diverse che volete eliminare, ripetete questo passo più volte.

  • Digitate n per creare una nuova partizione, premete p per renderla una partizione primaria e digitate 1 in modo da renderla la partizione 1, poi premete Invio due volte per selezionare le sezioni di inizio e di fine predefinite.

  • Digitate w per scrivere e applicare i cambiamenti al drive.

Se visualizzate un messaggio di errore che riporta qualcosa come “Dispositivo o risorsa occupato”, riavviate il vostro Pi e riprovate. Potrebbe accadere che un altro processo utilizzi il drive esterno, impedendo che venga partizionato.

  • Formattate la nuova partizione in ext4. Ricordate che il nome della partizione sarà il nome del drive seguito da un 1 in chiusura. (Esempio: /dev/sda1)
sudo mkfs.ext4 /dev/sda1

Questa procedura potrebbe richiedere qualche minuto.

  • Create una nuova cartella chiamata /media/newdrive, che sarà utilizzata per montare l’unità esterna.
sudo mkdir /media/newdrive
  • Montate la nuova partizione come /media/newdrive. Ricordate che il nome della partizione avrà l’1 in chiusura. Quindi sarà /dev/sda1 e non solamente /dev/sda.
sudo mount /dev/sda1 /media/newdrive
  • Copiate tutti i file dalla vostra cartella root usando il comando rsync -avx.
sudo rsync -avx / /media/newdrive

Questo processo potrebbe impiegare anche un’ora di tempo se avete molti dati.

  • Aprite /boot/cmdline.txt per modificare
sudo nano /boot/cmdline.txt

Dopo aver digitate questo comando vedrete cmdline.txt aperto in un editor di testo sul vostro terminale.

  • Incollate il seguente testo alla fine della prima (e probabilmente unica) riga di cmdline.txt.
root=/dev/sda1 rootfstype=ext4 rootwait

Questo testo comunica al Raspberry Pi di identificare /dev/sda1 (purché si tratti della partizione dell'unità esterna) come unità di archiviazione primaria.

Per avviare il Pi 4 avrete bisogno sia della microSD che della vostra unità esterna collegata. Il Raspberry Pi non può avviarsi se l’unità esterna non è collegata dato che il file cmdline.txt appena modificato si trova, per l’appunto, su di essa.

Premete CTRL+X per uscire e Y (quando vi viene chiesto di salvare) quindi Invio per confermare.

Se volete commentare questo testo in modo da poter avviare ed eseguire da una singola scheda microSD, potete semplicemente inserire il codice su una seconda riga con il simbolo di commento # davanti.

  • Per concludere la procedura dovete semplicemente riavviare il vostro Pi 4. Ricordate che non si avvierà se non è collegata l’unità esterna.

Come avviare il Raspberry Pi da chiavetta USB

A differenza del Pi 4, le precedenti versioni del Raspberry Pi possono essere avviate direttamente da USB. In questa sezione vi mostreremo la procedura da seguire su questi modelli, al termine della quale non sarà neanche necessario avere la microSD inserita nell'apposito slot del Raspberry Pi.

  1. Create la vostra unità di boot esterna. Ci sono fondamentalmente due metodi per farlo:
    • Usare Etcher per “masterizzare” il sistema operativo Raspbian sull'unità esterna. Si tratta di un metodo che funziona bene, ma non copia alcun dato da una build esistente.

  • Clonate la vostra scheda microSD in uso sull’unità esterna usando SD Card Copier, una funzione integrata in Raspbian che si trova nel menu Accessori.

  • Create o trovate una scheda microSD avviabile. Se già ne avete una allora usatela.
  • Collegate entrambe le unità al vostro Raspberry Pi e avviatelo.
  • Aprite il file /boot/config.txt per modificarlo
sudo nano /boot/config.txt
  • Aggiungete program_usb_boot_mode=1 in fondo al file e salvate.
program_usb_boot_mode=1

  • Riavviate il Raspberry Pi con la scheda microSD all'interno e l’unità esterna collegata. In fase di avvio, il Pi riscriverà un minimo il firmware, comunicando di avviarsi dall’unità USB. Questa procedura va fatta una sola volta e poi si deve rimuovere program_usb_boot_mode=1 da config.txt, poiché la modifica è ormai stata applicata al firmware.
  • Riavviate nuovamente il vostro Pi ma questa volta con la scheda microSD rimossa. Se tutto è andato nel verso giusto, dovrebbe partire dall’unità esterna.

Da qui in poi il vostro Raspberry Pi si avvierà dall'unità esterna, a meno che non sia scollegata. Se non ci sono unità esterne avviabili il Pi si avvierà dalla sua microSD, a patto che almeno questa sia inserita nello slot.