Mengapa pembahagian A / B?
Dalam sistem terbenam, kemas kini yang gagal boleh membatalkan peranti. Susun atur A/B menyelesaikan ini dengan mengekalkan dua sistem fail akar:
- Slot A — rootf aktif
- Slot B — rootfs siap sedia untuk kemas kini seterusnya
Apabila kemas kini berjaya, pemuat but bertukar kepada slot baharu. Jika but gagal, ia bergolek kembali kepada versi baik terakhir yang diketahui.
Pendekatan ini mengandaikan, bahawa slot A dan slot B mempunyai saiz partition yang sama, yang kadangkala boleh menjadi rumit dalam sistem terbenam, apabila sumber terhad.
Pendekatan lain ialah, untuk membuat partition untuk sistem penyelamat kecil dan partition yang lebih besar untuk sistem berjalan biasa.
Contoh susun atur partition
| Tujuan Jenis | Partition | |
|---|---|---|
| ms 1 | FAT32 | /boot_A (kernel, cmdline, pemuat but) |
| ms 2 | samb4 | rootfs A |
| ms 3 | FAT32 | /boot_B (kernel, cmdline, pemuat but untuk sistem penyelamat) |
| hlm4 | samb4 | rootfs_B |
| ms 5 | samb4 | Data / Konfigurasi |
Contoh Praktikal
Persediaan ini ditunjukkan dalam dua rpi-image-gencontoh projek:
- 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
Yang pertama mencipta sistem penyelamat dan yang kedua menggabungkan sistem penyelamat dengan sistem lain yang sedang berjalan, menyesuaikan label partition dalam cmdline.txt dan fstab.
Menguruskan kemas kini
Anda boleh memasang partition sistem yang tidak aktif secara manual untuk mengemas kini konfigurasi, aplikasi atau komponen sistem.
Untuk sistem pengeluaran, kemas kini biasanya diuruskan melalui SWUpdate, yang mengautomasikan proses ini dengan selamat.
Penyepaduan dengan SWUpdate
SWUpdate secara asli menyokong strategi kemas kini dwi-rootfs (A/B).
Partition dan logik kemas kini ditakrifkan secara langsung dalam fail sw-description .
Pendekatan ini memastikan kemas kini sistem atom dengan keselamatan rollback terbina dalam — ciri penting untuk peranti tanpa kepala atau jauh, di mana pemulihan manual tidak boleh dilaksanakan.
Artikel dalam siri ini
- Membina Linux sedia pengeluaran untuk Raspberry Pi Compute Module 5
- Daripada OS Stok kepada Platform Pengeluaran
- Menyesuaikan Raspberry Pi OS dengan rpi-image-gen
- Keteguhan Sistem — Merancang susun atur sistem fail A/B
- Provisioning — Mengautomasikan But Pertama dengan rpi-sb-provisioner
- OTA dan Kitaran Hayat — Kemas Kini Perisian dengan SWUpdate
Sumber
- 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