Lompat ke isi utama

Mengapa partisi A/B?

Pada sistem tertanam, pembaruan yang gagal dapat merusak perangkat. Tata letak A/B mengatasi hal ini dengan mempertahankan dua sistem file root:

  • Slot A - root yang aktif
  • Slot B - rootfs siaga untuk pembaruan berikutnya

Ketika pembaruan berhasil, bootloader akan beralih ke slot yang baru. Jika booting gagal, boot akan kembali ke versi terakhir yang diketahui baik.

Pendekatan ini mengandaikan bahwa slot A dan slot B memiliki ukuran partisi yang sama, yang terkadang dapat menyulitkan pada sistem tertanam, ketika sumber daya terbatas.

swupdate dengan sistem penyelamatan

Pendekatan lainnya adalah, membuat partisi untuk sistem penyelamatan kecil dan partisi yang lebih besar untuk sistem yang berjalan normal.

Contoh Tata Letak Partisi

Tipikal Raspberry Pi Compute Module 5 Tata-letak (CM5) mungkin terlihat seperti ini:
PartisiJenisTujuan
p1FAT32/boot_A (kernel, cmdline, bootloader)
p2ext4rootfs A
p3FAT32/boot_B (kernel, cmdline, bootloader untuk sistem penyelamatan)
p4ext4rootfs_B
p5ext4data / konfigurasi
Bootloader dapat menggunakan flag (misalnya, GPIO17 = 1 pada rpi-eeprom) untuk menentukan apakah akan melakukan booting dari partisi penyelamat.

Contoh Praktis

Penyiapan ini didemonstrasikan dalam dua rpi-image-gencontoh proyek:

Yang pertama membuat sistem penyelamatan dan yang kedua menggabungkan sistem penyelamatan dengan sistem lain yang sedang berjalan, menyesuaikan label partisi di cmdline.txt dan fstab.

Mengelola pembaruan

Anda dapat memasang partisi sistem yang tidak aktif secara manual untuk memperbarui konfigurasi, aplikasi, atau komponen sistem.
Untuk sistem produksi, pembaruan biasanya dikelola melalui SWUpdateyang mengotomatiskan proses ini dengan aman.

Integrasi dengan SWUpdate

SWUpdate secara native mendukung strategi pembaruan dual-rootfs (A/B).
Partisi dan logika pembaruan didefinisikan secara langsung di dalam file sw-description file.

Pendekatan ini memastikan pembaruan sistem atomik dengan keamanan rollback bawaan - fitur penting untuk perangkat tanpa kepala atau perangkat jarak jauh, di mana pemulihan manual tidak memungkinkan.