Si, avec précaution, on ouvre l’arrière de l'Origin et que l’on extrait la sdcard qui est insérée dans le RaspBerry PI4 et qu’on la consulte sur une autre machine la première chose que l’on constate est qu’il y de nombreuses partitions :
Les 3 premières sont au format FAT16 (donc visibles sur tout type de machine). La quatrième est une partition ‘étendue’ contenant 3 partitions de type ext4 (format spécifique à Linux). Ce qui nous donne :
/dev/sda1 fat16
/dev/sda2 fat16
/dev/sda3 fat16
/dev/sda4 extended
/dev/sda5 ext4
/dev/sda6 ext4
/dev/sda7 ext4
Pourquoi tout ça ! La réponse est dans la première partition (/dev/sda1) qui contient un fichier nommé autoboot.txt. Le rôle de ce fichier est de designer la partition de boot du RaspberryPi.
Il faut savoir que, faute de bios, le RPi utilise plusieurs fichiers pour configurer sa procédure de boot, autoboot.txt en fait partie. Les curieux jetteront un œil à la doc de Raspberry
Cette doc le décrit le fichier autoboot.txt comme un moyen de gérer un démarrage de type A/B dans le cadre de mise à jour du système d’exploitation.
En pratique
Si le fichier autoboot.txt contient ces deux lignes :
[all]
boot_partition=2
La procédure de boot utilisera la partition numéro 2 (/dev/sda2) et cette partition montera le système Linux qui se trouve dans /dev/sda5.
Si le fichier autoboot.txt contient ces deux lignes :
[all]
boot_partition=3
La procédure de boot utilisera la partition numéro 3 (/dev/sda3) et cette partition montera le système Linux qui se trouve dans /dev/sda6.
Utilisation
Disons que l’on ait boot_partition=2. On utilise donc /dev/sda2 et /dev/sda5.
Si on doit faire une mise à jour on la fera sur les deux partitions inactives : /dev/sda3 et /dev/sda6
Puis on remplacera boot_partition=2 par boot_partition=3 et on redémarrera pour utiliser la version à jour.
Si on a des problèmes avec cette nouvelle version on peut revenir à la précédente en revenant à boot_partition=2
Dans le cas de l’Origin ces manipulations sont prises en charge par la procédure de mise à jour de l’Origin.
Bricolage
Dans l’API de l’Origin il y a la commande « SwapBootPartition » du module « Sytem », qui ne prend aucun paramètre, et qui permet de permuter la valeur de la ligne à boot_partition=x (rien de plus).
En dernier ressort il faut ouvrir l’Origin pour en sortie la sdcard et l’éditer sur une autre machine. Les trois premières partitions sont au format FAT16 donc facile d’accès sur Windows/macOS/Linux.
C’est l’occasion aussi de faire un image complète de la sdcard.
Et /dev/sda7 ?
/dev/sda7 est de loin la plus volumineuse de toutes ces partitions. C’est là que sont stockés vos images, et fichiers de calibration, les logs, et votre configuration (y compris les fichiers de calibration en usine).
