Zašto A/B particioniranje?
U ugrađenim sustavima, neuspjela ažuriranja mogu onemogućiti uređaje. A/B raspored to rješava održavanjem dva root datotečna sustava:
- Slot A — aktivni rootf-ovi
- Slot B — čekaju rootf-ove za sljedeće ažuriranje
Kada ažuriranje uspije, bootloader se prebacuje na novi utor. Ako pokretanje ne uspije, vraća se na posljednju poznatu dobru verziju.
Ovaj pristup pretpostavlja da utor A i utor B imaju istu veličinu particije, što ponekad može biti nezgodno u ugrađenim sustavima kada su resursi ograničeni.
Drugi pristup je stvaranje particija za mali sustav spašavanja i veće particije za normalni sustav.
Primjer rasporeda particija
| Svrha | tipa | particije |
|---|---|---|
| P1 | FAT32 | /boot_A (kernel, cmdline, bootloader) |
| P2 | ext4 | rootfs A |
| P3 | FAT32 | /boot_B (kernel, cmdline, bootloader za rescue system) |
| P4 | ext4 | rootfs_B |
| P5 | ext4 | Podaci / konfiguracija |
Praktični primjer
Ova postavka demonstrirana je u dva rpi-image-genprimjera projekta:
- https://github.com/interelectronix/rpi-image-gen-projects/blob/main/deb12-cm5-rescue/README.md
- https://github.com/interelectronix/rpi-image-gen-projects/blob/main/deb12-cm5-ix-base/README.md
Prvi stvara sustav spašavanja, a drugi kombinira sustav spašavanja s drugim sustavom koji radi, podešavajući oznake particija u cmdline.txt i fstab.
Upravljanje ažuriranjem
Neaktivnu sistemsku particiju možete ručno montirati kako biste ažurirali konfiguracije, aplikacije ili sistemske komponente.
Za produkcijske sustave, ažuriranja se obično upravljaju putem SWUpdate, koji ovaj proces sigurno automatizira.
Integracija s SWUpdate
SWUpdate nativno podržava strategije ažuriranja dual-rootfs (A/B).
Particije i logika ažuriranja definirani su izravno u sw-description datoteci.
Ovaj pristup osigurava atomska ažuriranja sustava s ugrađenom sigurnošću povratka — što je ključna značajka za uređaje bez glave ili na daljinu, gdje ručni oporavak nije izvediv.
Članci u ovoj seriji
- Izgradnja produkcijskog Linux za Raspberry Pi Compute Module 5
- Od standardnog OS-a do produkcijske platforme
- Prilagodba Raspberry Pi OS s rpi-image-gen
- Sistemska robusnost — Dizajniranje A/B root rasporeda datotečnog sustava
- Provisioning — Automatizacija prvog pokretanja s rpi-sb-provisioner
- OTA i životni ciklus — Softverska ažuriranja s SWUpdate
Izvori
- rpi-image-gen: https://github.com/raspberrypi/rpi-image-gen
- rpi-sb-provisioner: https://github.com/raspberrypi/rpi-sb-provisioner
- SWUpdate: https://github.com/sbabic/swupdate
- swugenerator: https://github.com/sbabic/swugenerator