کرنل 5.14.x میں BTRFS بیلنس بگ

Krnl 5 14 X My Btrfs Bylns Bg



کرنل 5.14.x میں ایک بگ ہے جس کی وجہ سے میٹا ڈیٹا پروفائل کو تبدیل کرتے وقت btrfs فائل سسٹم صرف پڑھنے کے لیے جاتا ہے۔ اکیلا کو ڈوپ . فائل سسٹم صرف پڑھنے کی حالت میں چلا جاتا ہے۔ اس مسئلے کو حل کرنے کے لیے غیر روایتی حل کی ضرورت ہے۔

BTRFS پروفائلز کے بارے میں

btrfs کی بہترین خصوصیات میں سے ایک مختلف چھاپے پروفائلز کو استعمال کرنے کی صلاحیت ہے۔ چونکہ btrfs ڈیٹا اور میٹا ڈیٹا کو الگ الگ اسٹور کرتا ہے، اس لیے آپ تمام ڈسکوں کے ڈیٹا کو raid0 کے طور پر اسٹرائپ کر سکتے ہیں اور تمام میٹا ڈیٹا کو raid1 کے بطور عکس بنا سکتے ہیں۔ میٹا ڈیٹا میں یہ فالتو پن تھوڑی اضافی جگہ لیتا ہے۔ اور یہ btrfs raid0 سیٹ اپ میں تجویز کیا جاتا ہے۔

ہمیشہ میٹا ڈیٹا کو ڈپلیکیٹ کرنے کا مشورہ دیا جاتا ہے، یہاں تک کہ ایک ڈسک پر بھی، کیونکہ میٹا ڈیٹا کو کھونے کا مطلب ڈیٹا کو بھی کھو دینا ہے۔







Btrfs ایک لائیو سسٹم پر چھاپے کی پروفائل کو تبدیل کرنے کے قابل ہے، ڈیٹا اور میٹا ڈیٹا کو فالتو پن فراہم کرنے (یا ہٹانے) کے لیے تبدیل کر سکتا ہے۔ یہ ایک کے ساتھ ہوتا ہے۔ بقیہ . ایک btrfs بیلنس تمام فائل سسٹم کے بلاکس کو دوبارہ لکھتا ہے اور نئے پروفائلز کے ساتھ اسی طرح مطابقت رکھتا ہے۔



بگ

میں نے اپنی سنگل ڈسک پر میٹا ڈیٹا پروفائل کو تبدیل کرنے کی کوشش کی۔ اکیلا کو ڈوپ فالتو پن کے لیے



$ sudo btrfs بیلنس شروع -mconvert =دوپ / mnt





فائل سسٹم فوری طور پر صرف پڑھنے کی حالت میں چلا گیا۔ نظام درہم برہم ہو گیا۔ جب یہ ریبوٹ ہوا تو میں ریکوری initramfs سے گزر نہیں سکا۔ ڈسک پر کوئی ڈیٹا نہیں لکھا جا سکتا۔

جب btrfs فائل سسٹم پر بیلنس آپریشن میں خلل پڑتا ہے، تو اگلی بار فائل سسٹم کے نصب ہونے پر یہ خود بخود دوبارہ شروع ہوجاتا ہے۔ اسے عام طور پر روکا جا سکتا ہے:



$ sudo پہاڑ -او skip_balance، rw / دیو / sdX / mnt

پھر، اگر ضرورت ہو تو درج ذیل کمانڈ کا استعمال کرتے ہوئے منسوخ کریں:

$ sudo btrfs بیلنس کینسل / mnt

تاہم، بگ کی وجہ سے نہ صرف بیلنس لاک ہو گیا بلکہ اسے جاری رکھنے سے روکنے کے لیے ماؤنٹ آپشنز کو نظر انداز کر دیا گیا۔ جب بھی فائل سسٹم نصب ہوتا ہے، بیلنس دوبارہ شروع ہونے کی کوشش کرتا ہے۔ یہ ناکام ہوگیا اور فائل سسٹم صرف پڑھنے کے لیے چلا گیا۔ اگر آپ اس کا سامنا کرتے ہیں، تو آپ کو پرانے دانا کا استعمال کرتے ہوئے کسی بھی ڈسٹرو کو بوٹ کرنا چاہیے۔ میرے معاملے میں، یہ 4.18 کے ساتھ آرک تھا۔

پرانے کینیل کے ساتھ فائل سسٹم کو ماؤنٹ کریں:

$ sudo پہاڑ -او skip_balance، rw / دیو / sdX / mnt

بیلنس منسوخ کریں:

$ sudo btrfs بیلنس کینسل / mnt

بیلنس دوبارہ کریں:

$ sudo btrfs بیلنس شروع -mconvert =دوپ / mnt

بیلنس مکمل ہونے کے بعد، آپ فائل سسٹم میں اب ڈپلیکیٹ میٹا ڈیٹا کے ساتھ، ایک نئے دانا میں محفوظ طریقے سے بوٹ کر سکتے ہیں۔ فائل سسٹم کے ذریعہ استعمال شدہ پروفائلز کو چیک کریں۔ آپ دیکھیں گے کہ آپ کے پاس فائل سسٹم کے میٹا ڈیٹا کی دو کاپیاں ہیں اور ڈیٹا کی صرف ایک کاپی:

$ sudo btrfs ہونا استعمال < ماؤنٹ پوائنٹ >

نتیجہ

Btrfs ایک حیرت انگیز فائل سسٹم ہے جو بہت سے جدید اختیارات کے قابل ہے۔ تاہم، btrfs استعمال کرتے وقت، آپ کے پاس ورکنگ بیک اپ کے ساتھ ساتھ سسٹم ریسکیو کے لیے LTS ڈسٹرو سے بوٹ ایبل کرنل ہونا چاہیے۔ اگرچہ ماونٹڈ روٹ فائل سسٹم پر بیلنس چلایا جا سکتا ہے، لیکن ایسا کرنے کا ہمیشہ مشورہ نہیں دیا جاتا ہے۔ فائل سسٹم میں اب بھی بہت سے کیڑے ہیں۔ آپ کو فائل سسٹم ریسکیو کے لیے تیار رہنا چاہیے جب btrfs ماڈیول کا بلیڈنگ ایج دانا کے خلاف مکمل تجربہ نہیں کیا گیا ہے۔