Skip to main content

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.

swupdate dengan sistem penyelamat

Pendekatan lain ialah, untuk membuat partition untuk sistem penyelamat kecil dan partition yang lebih besar untuk sistem berjalan biasa.

Contoh susun atur partition

Reka letak Raspberry Pi Compute Module 5 biasa (CM5) mungkin kelihatan seperti ini:
Tujuan JenisPartition
ms 1FAT32/boot_A (kernel, cmdline, pemuat but)
ms 2samb4rootfs A
ms 3FAT32/boot_B (kernel, cmdline, pemuat but untuk sistem penyelamat)
hlm4samb4rootfs_B
ms 5samb4Data / Konfigurasi
Pemuat but boleh menggunakan bendera (contohnya, GPIO17=1 dalam rpi-eeprom) untuk menentukan sama ada untuk but daripada partition penyelamat.

Contoh Praktikal

Persediaan ini ditunjukkan dalam dua rpi-image-gencontoh projek:

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.