Raspberry PI 4 – Come eseguire il boot da USB

Raspberry PI 4, esattamente come anche la versione precedente, porta ancora con se la comoda funzione di utilizzare un drive SD come unità principale di boot. Comoda si, ma purtroppo suscettibile ai frequenti fail che nel tempo colpiscono sostanzialmente tutte le unità SD sottoposte a continuo lavoro di lettura e soprattutto scrittura. Io stesso ho sperimentato sulla mia pelle il fail di ben 2 unità SD in uso nel mio Raspberry PI 4, e in entrambi i casi il disastro è stato improvviso e senza possibilità di recupero dei dati.

Finché i produttori del Raspberry non produrranno una versione che consenta l’installazione sulla scheda madre di unità allo stato solido come le NVMe ci dobbiamo accontentare (si fa per dire viste le prestazioni di tutto rispetto delle porte USB 3 del PI 4) di utilizzare drive connessi tramite porta USB.

Fortunatamente il nuovo sistema operativo, ma soprattutto il nuovo firmware per Raspberry PI 4, a differenza delle versioni precedenti portano con se la possibilità di eseguire il boot anche da drive USB nativamente. La funzione però deve essere attivata perché di default il sistema avvia solo da SD.

Come attivo il boot da USB?

Il boot via USB del Raspberry PI 4 si ottiene installando la versione più recente del firmware.
Anzitutto aggiorniamo il sistema:

sudo apt update
sudo apt full-upgrade

Poi assicuriamoci di avere installato la versione stabile più recente del bootloader.
Attenzione!
Qui molto spesso in vecchi tutorial viene chiesto di installare una versione critical o beta del bootloader. Non è necessario dato che è da tempo che le versioni “stable” funzionano benissimo. Ad oggi la versione più recente è la “pieeprom-2021-04-29.bin” e non ha problemi. Le varie versioni dei bootloader si trovano qui: /lib/firmware/raspberrypi/bootloader/

Ci sono un paio di modi per installare il bootloader: usando raspi-config oppure con comandi a terminale.

Metodo 1: raspi-config

Eseguiamo

sudo raspi-config

nella schermata selezioniamo l’opzione “Advanced options” e poi “Bootloader version”, quindi “Latest”

Confermiamo con OK e Riavviamo il Raspberry.

Metodo 2: comandi a terminale

Assicuriamoci prima di tutto che l’installer acceda alle versioni stable del bootloader

sudo cat /etc/default/rpi-eeprom-update

e verifichiamo che contenga

FIRMWARE_RELEASE_STATUS="stable"

Quindi eseguiamo l’upgrade eseguendo il comando

sudo rpi-eeprom-update -d -a

e riavviamo il Raspberry.

Con entrambi i metodi eseguendo il comando:

sudo vcgencmd bootloader_version

controlliamo che la versione avviata corrisponda a quella stabile installata

Apr 29 2021 17:11:25
version c2f8c388c4ee37ad709ace403467d163e8dd91ce (release)
timestamp 1619712685
update-time 1620283752
capabilities 0x0000001f

Avviamo da USB

A questo punto il bootloader è pronto, ma dobbiamo dire a Raspberry di utilizzare l’USB invece dell’SD per il boot. Per farlo usiamo di nuovo il comando:

sudo raspi-config

nella schermata selezioniamo l’opzione “Advanced options” e poi “Boot order”, quindi “Usb boot”

Fatto! Ora se installiamo in un SSD USB o in una pendrive USB il sistema operativo Raspbian e lo colleghiamo alla porta USB 3 del nostro Raspberry otteniamo il boot del sistema dal nuovo drive.

A questo punto potrebbe nascere spontanea una domanda: Come faccio a trasferire integralmente il mio sistema da SD a USB senza dover reinstallare tutto da capo?

Bene, la risposta la trovi in questo articolo.