Hoekom A/B-partisionering?
In ingebedde stelsels kan mislukte opdaterings toestelle onbruikbaar maak. 'n A/B-uitleg los dit op deur twee wortellêerstelsels te handhaaf:
- Gleuf A — aktiewe wortels
- Slot B — wag rootfs vir volgende opdatering
Wanneer 'n opdatering slaag, skakel die bootloader oor na die nuwe gleuf. As die boot misluk, rol dit terug na die laaste bekende goeie weergawe.
Hierdie benadering veronderstel dat gleuf A en gleuf B dieselfde grootte van die partisie het, wat soms moeilik kan wees in ingebedde stelsels wanneer die hulpbronne beperk is.
'n Ander benadering is om partisies te skep vir 'n klein reddingsisteem en 'n groter partisie vir die normaalweg lopende stelsel.
Voorbeeld van partisie-uitleg
| Partisietipe | Doel | |
|---|---|---|
| p1 | FAT32 | /boot_A (kern, cmdline, bootloader) |
| p2 | ext4 | rootfs A |
| p3 | FAT32 | /boot_B (kern, cmdline, bootloader vir reddingsisteem) |
| p4 | ext4 | rootfs_B |
| p5 | ext4 | Data / Konfigurasie |
Praktiese Voorbeeld
Hierdie opstelling word in twee rpi-image-genvoorbeeldprojekte gedemonstreer:
- 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
Die eerste skep die reddingsisteem en die tweede kombineer die reddingsisteem met 'n ander lopende stelsel, en pas partisie-etikette in cmdline.txt en fstabaan.
Bestuursopdatering
Jy kan die inaktiewe stelselpartisie handmatig monteer om konfigurasies, toepassings of stelselkomponente op te dateer.
Vir produksiestelsels word opdaterings tipies bestuur via SWUpdate, wat hierdie proses veilig outomatiseer.
Integrasie met SWUpdate
SWUpdate ondersteun inheems dual-rootfs (A/B) opdateringsstrategieë.
Partisies en opdateringslogika word direk in die sw-description -lêer gedefinieer.
Hierdie benadering verseker atomiese stelselopdaterings met ingeboude terugrolveiligheid — 'n noodsaaklike kenmerk vir koplose of afgeleë toestelle, waar handmatige herstel nie haalbaar is nie.
Artikels in hierdie reeks
- Bou van 'n produksie-gereed Linux vir Raspberry Pi Compute Module 5
- Van Stock OS na Produksieplatform
- Aanpassing van Raspberry Pi OS met rpi-image-gen
- Stelselrobuustheid — Ontwerp van 'n A/B-wortellêerstelsel-uitleg
- Provisioning — Outomatisering van Eerste Opstart met rpi-sb-provisioner
- OTA en Lewensiklus — Sagteware-opdaterings met SWUpdate
Bronne
- 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