[Pi] Boot depuis un SSD

Ayant fait l’acquisition d’un Pi 4 durant l’été, en vue de migrer mon cloud privé vers la dernière génération de Pi et de disposer d’un peu plus de RAM, je me suis donc intéressé à la manière de faire démarrer le Pi depuis un système stocké sur un disque SSD et non plus simplement sur une carte microSD. Disponible d’abord en version bêta, cette fonctionnalité est désormais accessible par défaut, au prix toutefois de quelques opérations de configuration, en fonction du moment où vous aurez fait l’acquisition du Pi.

De mon côté, la première étape a été la vérification de la version du contenu de la mémoire EEPROM du Pi et sa mise à jour. Pour cela préparation d’une carte microSD avec activation de ssh et configuration du Wifi automatiquement au démarrage. Après que le Pi soit apparu dans la liste des clients connectés à mon LAN, et ayant obtenu ainsi son IP, je m’y connecte donc en ssh. Une fois connecté, je lance une mise à jour du système, puis vérifie le contenu de la mémoire EEPROM, et déclenche sa mise à jour, celle-ci étant trop ancienne pour permettre le mécanisme de boot depuis un disque externe.

sudo apt-get install aptitude
sudo aptitude update
sudo aptitude upgrade
sudo rpi-eeprom-update
sudo rpi-eeprom-update -a
sudo reboot

Voici ci-dessous, ce que j’obtiens après mise à jour. De mémoire, pour bénéficier du boot externe, la valeur de CURRENT, doit à la date où j’écris, valoir 000138a1. En supposant que ceci correspond bien à un numéro de version, une version supérieure devrait faire l’affaire. Nous pouvons également considérer, qu’une date antérieure à celle de la version du 3 septembre 2020, ou plus généralement, une différence entre CURRENT et LATEST, sont des indications suffisantes de procéder à la mise à jour.

BCM2711 detected
VL805 firmware in bootloader EEPROM
BOOTLOADER: up-to-date
CURRENT: Thu 3 Sep 12:11:43 UTC 2020 (1599135103)
LATEST: Thu 3 Sep 12:11:43 UTC 2020 (1599135103)
FW DIR: /lib/firmware/raspberrypi/bootloader/critical
VL805: up-to-date
CURRENT: 000138a1
LATEST: 000138a1

Une fois cela fait, j’ai donc installé la version lite du Raspberry Pi OS (nouveau nom de raspbian si j’ai bien suivi). À noter que n’ayant pas réussi à réaliser l’installation avec l’installeur officiel, ni avec Etcher, je suis revenu à la bonne vieille méthode manuelle en utilisant dd. Une fois mon disque prêt, je le connecte au Pi, branche le Pi et attends de le voir se connecter au Wifi. Ce qu’il ne fera jamais. Après quelques recherches, je découvre qu’il est également nécessaire d’effectuer une modification de configuration pour changer l’ordre de boot. Retour donc de la carte microSD pour effectuer cette opération avec la commande suivante :

sudo -E rpi-eeprom-config --edit

Il faudra alors remplacer la ligne :

BOOT_ORDER=0x1

Par la valeur suivante pour la variable BOOT_ORDER.

BOOT_ORDER=0xf41

Il ne reste plus qu’à redémarrer, retirer la carte microSD, connecter le disque au Pi et le rebrancher. Après quelques minutes d’attente, le Pi apparaît sur mon LAN et quelques instants plus tard, je parviens à m’y connecter en ssh.

Tout est prêt pour la migration !

Boot natif sur support de stockage USB pour raspberry pi 4 en bêta

Brève information qui mérite d’être mentionnée, puisque qu’une version bêta du boot direct sur un support de stockage USB a été annoncée via le forum de la fondation Raspberry Pi. Espérons que cette fonctionnalité quittera rapidement son statut de version bêta pour trouver sa place sur nos Pi.