samedi 15 février 2025

Partitions de l'Origin


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).