Una de les optimitzacions que es recomanen per a millorar el rendiment de les #RaspberryPi és moure el sistema operatiu a un disc dur conectat per USB3. Amb les "noves" Raspberries aquest procès és encara més fàcil.
Buscant millorar l'estabilitat de LaDragonera, he volgut aplicar-ho a la Rasbperry Pi que la mou i ha estat més fàcil del que m'esperava!
En aquest article explico com moure un Raspberry Pi OS que actualment està funcionant en una Raspberry Pi 4 des d'una Micro-SD a un disc dur SSD conectat via un adaptador SATA III a USB3. De fet, tot el procès es podria reduir a tres passes:
Per al tercer pas jo he clonat el sistema que ja tenia funcionant, però també serveix fer servir el Raspberry Pi Imager i instalar el sistema operatiu en un disc USB en comptes d'en una tarja Micro-SD.
He dividit aquest article en les següents seccions:
A partir de la Raspberry Pi 4 (incoent la 400 i la CM4), hi ha una EEPROM encarregada (entre d'altres) de manejar la seqüencia d'arrancada.
Fins a aquesta, l'única opció que teníem era moure el sistema d'arxius root /
al disc USB i deixar el sistema d'arxius d'arranque /boot
a la tarja Micro-SD, de forma que la màquina arranca amb la tarja i seguidament va al USB a buscar el sistema operatiu.
Amb la nova estratègia, la Raspberry Pi directament va a buscar l'arranque al disc USB, permetent-nos retirar definitivament la tarja Micro-SD.
En aquest article em centraré en aquesta nova estratègia, ja que l'acció és sobre una Raspberry Pi 4.
Tal com diu la Wikipèdia, la EEPROM és una memòria ROM reprogramable i de només-lectura instal.lada en un xip, que té l'objectiu de mantenir certes configuracions de la màquina independentment del sistema operatiu que se li instal.li.
El sistema d'actualització de la Raspberry Pi OS manté també actualitzada la EEPROM, i amb l'aplicació de configuració de la Raspberry Pi raspi-config
podem també interactuar amb la configuració de la seqüencia d'arrancada.
Hi han diversos paràmetres que es poden configurar a la EEPROM, i per això també té la seva pròpia èina de configuració rpi-eeprom-config
.
Llegiu més sobre els paràmetres de configuració i com interactuar amb la EEPROM en la documentació oficial: Bootloader Configuration - Raspberry Pi Documentation - Raspberry Pi hardware.
Per a aquest article estic assumint el següent:
Com a ordinador secundari on executo la clonació dels discs i des d'on em conecto a les Raspberries via SSH és un Mac relativament modern.
El programa que faig servir per clonar la tarja al disc USB és el balena Etcher. També es pot fer amb la comanda dd
, compatible amb Mac i Linux.
La tarja Micro-SD d'origen és una SanDisk Extreme A2 U3 V30 XC I de 64 GB. També he probat el procediment amb una SanDisk Extreme A1 U3 V30 HC I de 32 GB amb molt millors temps de còpia.
El disc dur és un DOGFiSH SSD 64 GB SATA III que m'ha costat 18 euros, juntament amb un conversor SATA III a USB3 que m'ha costat 6,50 euros. Cal tenir en compte que el disc SSD ha de ser igual o superior en capacitat a la tarja Micro-SD!
El meu Mac funciona només amb USB-C, així que cal un adaptador USB-A a USB-C, ja que la Raspberry és USB-A i el cable el volem per a ella.
El meu Mac té entrada de SD, així que simplement he usat un adaptador SD a Micro-SD d'aquests que fiques una tarja dins d'una altra.
Abans de fer res, ens hem d'assegurar que tenim instal.lada l'última versió de la EEPROM.
Actualitzar el sistema
sudo apt update
sudo apt full-upgrade
Entrar a la app de configuració de la Raspberry
sudo raspi-config
Sel.leccionar 6 Advanced Options > A7 Bootloader Version
Sel.leccionar E1 Latest per instal.lar l'última versió estable.
Sel.lecciona <Ok>
.
Apareix una pantalla dient que la ROM s'instal.larà al proper reinici i si volem tornar a la ROM per defecte. Sel.leccionem <Yes>
.
Tornarem a la pantalla principal de l'app de configuració de la Raspberry. Sel.leccionem <Finish>
.
Apareix una pantalla preguntant si volem reiniciar ara. Sel.leccionem <Yes>
.
El sistema es reiniciarà.
Entrar a la app de configuració de la Raspberry
sudo raspi-config
Sel.leccionar 6 Advanced Options > A6 Boot Order
Sel.leccionar B2 USB Boot.
Sel.lecciona <Ok>
.
Apareix una pantalla confirmant que USB is default boot device. Sel.lecciona <Ok>
.
Tornarem a la pantalla principal de l'app de configuració de la Raspberry. Sel.leccionem <Finish>
.
Apareix una pantalla preguntant si volem reiniciar ara. Sel.leccionem <Yes>
.
El sistema es reiniciarà.
Aquí és quan copiem el sistema de la tarja Micro-SD al disc USB. No té molta complicació, només fixar-se en extreure correctament els discs i apagant la Raspberry Pi completament abans de desconectar res.
Apaguem la Raspberry Pi:
sudo shutdown -h now
Extraiem la tarja Micro-SD de la Raspberry
Introduim la tarja a l'adaptador i aquest a l'ordinador
Conectem el SSD al cable SATA-USB, el conversor a USB-C i finalment a l'ordinador.
Executem el programa balena Etcher.
Apareixerà la seva típica pantalla en 3 pasos. Clickem a Clone drive.
Apareixerà una pantalla per sel.leccionar una unitat. Sel.leccionem Apple SDXC Reader Media, és el lector integrat de targes del mac.
Clickem a Select 1
Tornarem a la pantalla principal. Clickem a Select Target.
Apareixerà una pantalla similar a l'anterior per sel.leccionar una unitat. Sel.leccionem la unitat USB que tenim conectada.
Clickem a Select 1
Tornarem a la pantalla principal. Clickem a Flash.
Ens demanarà la contrasenya del nostre usuari. La introduim.
Començarà a clonar. Primer ve la fase de Flashing i després Verifying.
Al acabar, tanqueu el programa i desconecteu el SSD. Recordeu d'ejectar primer la Micro-SD abans de desconectar-la!
Conectem el SSD amb el seu cable SATA-USB a la Raspberry Pi, en un dels conectors USB3 blaus. Atenció, no introduirem la tarja Micro-SD!
Conectem el cable de corrent
La Raspberry Pi arrancarà, i en menys d'un minut podrem accedir via SSH.
M'esperava un procès més farragós, i que al final alguna cosa no funcionés. Però ha estat tot el contrari. Apagar la Raspberry, clonar la tarja, conectar el disc USB i tornar a arrancar la Raspberry. I tots els serveis funcionant altra cop, com si res hagués passat.
Ara a veure els propers dies si el rendiment es nota. Una de les millores que busco és la fiabilitat de del sistema amb una swap al disc, que sobre una tarja SD no es recomana i ja n'ha matat algunes.