Skip to main content

A/B پارٹیشننگ کیوں؟

ایمبیڈڈ سسٹمز میں، ناکام اپ ڈیٹس ڈیوائسز کو خراب کر سکتی ہیں۔ A/B لے آؤٹ اس مسئلے کو دو روٹ فائل سسٹمز کو برقرار رکھ کر حل کرتا ہے:

  • سلاٹ A — فعال جڑیں
  • سلاٹ B — اگلی اپ ڈیٹ کے لیے اسٹینڈ بائی روٹفز

جب کوئی اپڈیٹ کامیاب ہو جائے تو بوٹ لوڈر نئے سلاٹ پر سوئچ ہو جاتا ہے۔ اگر بوٹ ناکام ہو جائے تو یہ آخری معروف اچھے ورژن پر واپس آ جاتا ہے۔

یہ طریقہ یہ فرض کرتا ہے کہ سلاٹ A اور سلاٹ B کا پارٹیشن کا سائز ایک جیسا ہو، جو ایمبیڈڈ سسٹمز میں بعض اوقات مشکل ہو سکتا ہے جب وسائل محدود ہوں۔

ریسکیو سسٹم کے ساتھ swupdate

ایک اور طریقہ یہ ہے کہ چھوٹے ریسکیو سسٹم کے لیے پارٹیشنز بنائیں اور عام چلنے والے سسٹم کے لیے بڑا پارٹیشن بنایا جائے۔

مثال پارٹیشن لے آؤٹ

ایک عام Raspberry Pi Compute Module 5 (CM5) لے آؤٹ کچھ یوں ہو سکتا ہے:
پارٹیشنکی قسمکا مقصد
p1FAT32/boot_A (کرنل، cmdline، بوٹ لوڈر)
p2ext4روٹس A
P3FAT32/boot_B (کرنل، سی ایم ڈی لائن، ریسکیو سسٹم کے لیے بوٹ لوڈر)
P4ext4rootfs_B
صفحہ 5ext4ڈیٹا / کنفیگریشن
بوٹ لوڈر ایک فلیگ (مثلا GPIO17=1 rpi-eeprom میں) استعمال کر کے یہ فیصلہ کر سکتا ہے کہ ریسکیو پارٹیشن سے بوٹ کرنا ہے یا نہیں۔

عملی مثال

یہ سیٹ اپ دو rpi-image-genمثالی منصوبوں میں دکھایا گیا ہے:

پہلا ریسکیو سسٹم بناتا ہے اور دوسرا ریسکیو سسٹم کو دوسرے چلتے ہوئے سسٹم کے ساتھ جوڑتا ہے، cmdline.txt اور fstabمیں پارٹیشن لیبلز کو ایڈجسٹ کرتا ہے۔

انتظامی اپ ڈیٹ

آپ غیر فعال سسٹم پارٹیشن کو دستی طور پر ماؤنٹ کر سکتے ہیں تاکہ کنفیگریشنز، ایپلیکیشنز یا سسٹم کمپونینٹس کو اپ ڈیٹ کیا جا سکے۔
پروڈکشن سسٹمز کے لیے، اپ ڈیٹس عام طور پر SWUpdateکے ذریعے منظم کی جاتی ہیں، جو اس عمل کو محفوظ طریقے سے خودکار بناتا ہے۔

SWUpdate کے ساتھ انضمام

SWUpdate نیٹو طور پر ڈوئل روٹ ایف (A/B) اپ ڈیٹ حکمت عملیوں کی حمایت کرتا ہے۔
پارٹیشنز اور اپ ڈیٹ لاجک براہ راست sw-description فائل میں متعین کیے جاتے ہیں۔

یہ طریقہ کار ایٹمی نظام کی اپ ڈیٹس کو یقینی بناتا ہے جس میں رول بیک سیفٹی بلٹ ان ہو — جو ہیڈلیس یا ریموٹ ڈیوائسز کے لیے ایک لازمی خصوصیت ہے، جہاں دستی بازیابی ممکن نہیں ہوتی۔