Booten van usb-ssd's
MicroSD-kaarten met veel opslagruimte zijn duur, leven vaak niet lang en de kaartlezer van de Raspberry Pi is niet erg snel. Als je toch een externe ssd of usb- schijf aansluit voor dataopslag, kun je daarop meteen Raspberry Pi OS installeren en helemaal zonder sd-kaart werken.
MicroSD-kaarten zijn kwetsbaar. Dat is vooral pijnlijk als een grote kaart van een Pi-NAS door de hoge belasting de geest geeft. Als je het aan de fabrikanten vraagt, raden zij hun bijzonder robuuste high-endurance kaarten voor de Raspberry Pi [1] aan – natuurlijk voor een flinke meerprijs en met het nadeel van vrij lage snelheden van minder dan 20 MB/s.
Hoewel de Pi 4 geen sata-poort heeft, maakt een externe ssd of harde schijf op de USB 3.0-poort er een vrij snelle dataopslag van [2]. Datasnelheden van meer dan 300 MB/s zijn mogelijk – geen vergelijking met de interne kaartlezer, die in het beste geval 50 MB/s haalt. Door de Raspberry Pi 4 van nieuwe firmware te voorzien, kun je het zonder de kwetsbare microSD-kaart stellen en Raspberry Pi OS direct vanaf de externe schijf starten.
GEPROMOVEERD
Voor de firmware-update heb je nog wel eenmaal een sd-kaart nodig, waarop je dan de laatste versie van Raspberry Pi OS installeert. Start de Raspberry Pi op en log in op de tekstconsole. Update de pakketbronnen en installeer daarna het pakket rpieeprom-images: sudo apt update sudo apt install rpi-eeprom-images
De firmware die usb-boot ondersteunt heeft op het moment van het schrijven van dit artikel de status stable – standaard worden alleen critical-updates geïnstalleerd. Voor Raspberry Pi OS vanaf mei 2020 moet je daarom eerst het configuratiebestand voor de eeprom-update omzetten naar stable en vervolgens de update installeren: sudo sed -ie s/critical/stable/ \ /etc/default/rpi-eeprom-update sudo rpi-eeprom-update -d -f /lib/firmware/ raspberrypi/bootloader/stable/pieeprom-202006-15.bin
Met sudo reboot kun je het systeem herstarten waarmee de firmware naar de eeprom wordt geschreven. Vanaf dat moment zoekt de Raspberry Pi ook op externe usb-stations naar zijn besturingssysteem – mits er dan geen kaart in de interne kaartlezer zit.
MIGRATIE
Vóór het installeren van Raspberry Pi OS op de usbschijf controleer je eerst met lsblk op de Pi of de externe schijf wordt herkend als sda – zo niet, dan moet je de device-name in de onderstaande commando's aanpassen.
Bij de volgende stap zet je de Raspberry Pi OS-image, die je van een andere computer naar de Raspberry Pi hebt gekopieerd, of rechtstreeks van de website van de Raspberry Pi Foundation hebt gedownload en uitgepakt, met dd op de ssd: sudo dd of=/dev/sda < *raspios*.img
Aangezien Raspberry Pi OS sinds mei 2020 niet in staat is om de rootpartitie op een externe usb-schijf te vergroten, moet je de grafische partitie-editor gparted uit het gelijknamige pakket installeren om daar de rootpartitie mee te vergroten om de lege ruimte op te vullen.
Ook de bootloader is nog niet geschikt gemaakt om van externe usb-schijven te starten. Daarom moet je nog enkele bootbestanden vervangen. De actuele versie kun je vinden op GitHub in de repository raspberrypi/firmware. Download de repository als zip-bestand, bijvoorbeeld met de browser onder Raspgberry Pi OS of via wget, en pak het bestand uit met unzip in de homedirectory van Pi. Kopieer vervolgens de benodigde bestanden naar de bootpartitie van de externe schijf, die automatisch wordt gemount onder/media/pi/boot: cp firmware-master/boot/*. elf \ firmware-master/boot/*.dat \ /media/pi/boot
Daarna sluit je de Raspberry Pi af, koppel je hem los van de voeding en verwijder je de microSD-kaart.
Bij toekomstige versies van Raspberry Pi OS mag je ervan uitgaan dat de firmware van de Pi automatisch wordt bijgewerkt, dat de bootloader externe schijven ondersteunt en Raspberry Pi OS de rootpartitie zelf kan uitbreiden. Dan moet ook opgelost zijn dat de Raspberry Pi bij de eerste keer opstarten van de externe schijf ettelijke minuten nodig heeft en in de Emergency Mode belandt. Met de Raspberry Pi OS-versie van mei kun je alle foutmeldingen tijdens de eerste keer opstarten negeren en gewoon doorgaan met Enter – Raspberry Pi OS zal dan normaal starten met de grafische userinterface.
De volgende keren start Raspberry Pi OS zonder foutmeldingen en binnen enkele seconden. Maar dat gaat niet sneller dan van een sd-kaart omdat de initialisatie van de usb-schijf een paar seconden nodig heeft. Maar daarna kan een ssd zijn snelheidsvoordeel dan ook ten volle benutten.
Literatuur
[1] Lutz Labs en Noud van Kruysbergen, MicroSD-kaarten voor de
Raspberry Pi, c’t 9/2020, p.42
[2] Christof Windeck en Noud van Kruysbergen, Raspberry Pi als
NAS-basis, c’t 9/2020, p.36