Démarrer une debian ARM 64 sur un Raspberry Pi 4 depuis un disque dur externe

Objectif

Dans cet article je vais expliquer comment faire démarrer son Raspeberry Pi 4 directement depuis un disque dur externe USB. Et pour être totalement moderne, nous démarrerons une debian ARM64, au lieu de Raspberry Pi OS qui est devenu persona no grata.

Raspbery Pi 4 dans son armure d’acier, qui le protège du chaud. Cliquer pour voir l’image en plus grand

Première étape, activer l’option boot on usb

Il faut commencer par se procurer une distribution dédiée au Raspberry, comme par exemple celle que vous pouvez construire vous même avec le projet pi-gen. On ne va pas utiliser cette distribution définitivement, mais uniquement pour mettre à jour et configurer le Raspberry Pi 4. Il faudra donc utiliser une carte SD, sur laquelle vous aurez installer cette distribution, et démarrer une première fois dessus.

La mise à jour du programme de démarrage du stocké dans la ROM du Raspberry Pi est parfois nécessaire. En allumant le Raspberry sans carte SD, mais connecté à un écran, vous devriez lire la version de l’Eeprom. Si la date est inférieur au Sep 3 2020, une mise à jour est nécessaire.

Pour mettre à jour la ROM, il vous faut, après avoir démarré avec la distribution dédiée, installer le paquet rpi-eeprom, puis lancer rpi-eeprom-update -a.

Après la mise à jour le deuxième rôle de cette distribution est de configurer l’Eeprom pour autoriser le démarrage depuis un disque dur externe. Le programme qui autorise cette configuration est rpi-eeprom-config --edit . Il faut changer la directive BOOT_ORDER. Plusieurs valeurs sont possibles. Le Raspberry Pi essaie de démarrer depuis les différentes options données, de droite vers gauche par priorité décroissante.

J’ai entré 0x41 comme valeur pour la directive BOOT_ORDER. Cela signifie:

  1. Essaie de démarrer sur la carte SD (valeur 1 la plus à droite);
  2. Si cela ne marche pas, essaie de démarrer sur le disque dur externe (valeur 4).

Si j’avais configuré le BOOT_ORDER à 0x242, le Raspberry Pi aurait essayé de démarrer, dans l’ordre:

  1. depuis la carte SD;
  2. depuis un disque dur externe
  3. depuis le réseau (valeur 2).

Maintenant il ne nous reste plus qu’à installer une debian ARM64 sur un disque dur externe.

Installation de Debian ARM

Il existe un mini site web dédié aux images Raspberry PI construites par Debian. Les images de la distribution debian ARM64 les plus stables se trouvent ici.

La première chose à faire est de brancher un disque dur externe, de type USB3 de préférence, supportant l’uasp serait encore mieux. Ensuite on copie l’image sur le disque dur, exactement de la même manière que si c’était une carte SD.

Voici les instructions que je lance pour télécharger une image buster et la copier sur un disque externe. Ces instructions sont valables pour les images du 10 février 2021 (les plus récentes au moins de la rédaction de ce billets) et pour un disque dur apparaissant en /dev/sdb. Surtout n’exécuter pas ces instructions sans les comprendre et sans changer la valeur /dev/sdb, au risque d’écraser toutes les données d’un disque dur branché à l’ordinateur d’où vous les lancerez.

wget https://raspi.debian.net/verified/20210210_raspi_4_buster.img.xz
wget https://raspi.debian.net/verified/20210210_raspi_4_buster.xz.sha256
sha256sum --check 20210210_raspi_4_buster.xz.sha256
xzcat 20210210_raspi_4_buster.img.xz | sudo dd of=/dev/sdb bs=64k oflag=dsync status=progress

Ensuite, il n’y a plus qu’à retirer la carte SD du Raspberry Pi1, brancher le disque dur et redémarrer votre framboise.

En guise de conclusion

Et voilà, votre Raspberry Pi 4 contient une debian ARM64 pur jus, et il démarre sur un disque dur externe, généralement plus fiable que les carte SD.

À partir de là, à vous de continuer. Vous avez maintenant à disposition tous les paquets debian, il y a de quoi vous occuper :-)

Notes de bas de page:

1

Ce n’est pas nécessaire si vous avez configurer le démarage sur disque dur externe avant le démarrage sur carte SD