24 April 2026

Partition A/B et Persistence

Le systeme Magic Stick utilise un partitionnement A/B avec une partition de persistance dediee. Ce mecanisme permet les mises a jour atomiques sans risque pour les donnees utilisateur.

Architecture des partitions

Partition Taille Role

System A (lecture seule)

~8 Go

Systeme live Xubuntu actif (boote par defaut)

System B (lecture seule)

~8 Go

Systeme live Xubuntu de secours (inactif)

Persistence (lecture/ecriture)

Reste de la cle (~48 Go sur 64 Go)

Donnees utilisateur + configuration logiciels

Principe de fonctionnement

Le principe A/B est inspire des mises a jour OTA des smartphones :

  1. Une seule partition systeme est active a un instant T (A ou B)

  2. L’autre partition est inactive et disponible pour une mise a jour

  3. La partition de persistance est toujours montee et n’est jamais touchee par les mises a jour

Flux de mise a jour

  1. update-system.sh detecte la partition active (A ou B)

  2. Il ecrit la nouvelle ISO sur la partition inactive

  3. Il inverse le flag de boot dans GRUB/syslinux

  4. Au prochain demarrage : la nouvelle version est sur l’ancienne partition inactive

  5. Si la nouvelle version plante : reboot sur l’ancienne partition (rollback immediat)

Rollback

Si le nouveau systeme ne demarre pas correctement :

  1. Au demarrage, selectionner l’autre entree dans le menu GRUB

  2. Le systeme boote sur l’ancienne partition (encore intacte)

  3. Les donnees de persistence sont intactes — aucun risque de perte

Important

Le rollback est immediat et sans intervention technique. Il suffit de choisir l’autre partition dans le menu de boot.

Partitionnement recommande (cle 64 Go)

Numero Taille Type Flag

1

8 Go

ext4/squashfs

boot

2

8 Go

ext4/squashfs

-

3

reste (~48 Go)

ext4

-

Configuration de la persistence

La partition Persistence contient :

  • Donnees utilisateur : documents, projets, configuration personnelle

  • Configuration logiciels : parametres Docker, modeles Ollama, SDKMAN

  • Cles SSH : jamais dans l’ISO, toujours dans Persistence

Le fichier persistence.conf a la racine de la partition indique quels chemins sont persistes :

/unicorn/home
/unicorn/usr
/unicorn/var

Avantages du systeme A/B

  • Mise a jour zero-downtime : pas de periode ou la cle est inutilisable

  • Rollback automatique : si le nouveau systeme ne boot pas, on revient a l’ancien

  • Donnees sauvees : la partition Persistence n’est jamais reformatee

  • Reproductibilite : meme ISO = meme resultat sur N cles

Commandes utiles

# Voir les partitions d'une cle
lsblk /dev/sdX

# Detecter la partition active
mount | grep -E "sdX[12]"

# Mettre a jour le systeme (A vers B ou B vers A)
sudo scripts/update-system.sh /dev/sdX

# Mettre a jour avec un ISO specifique
sudo scripts/update-system.sh /dev/sdX chemin/vers/magic-stick_0.1.8.iso