কার্নেল 5.14.x-এ BTRFS ব্যালেন্স বাগ

Karnela 5 14 X E Btrfs Byalensa Baga



কার্নেল 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 মডিউলটি ব্লিডিং-এজ কার্নেলের বিরুদ্ধে সম্পূর্ণরূপে পরীক্ষা করা না হয় তখন আপনাকে ফাইলসিস্টেম উদ্ধারের জন্য প্রস্তুত থাকতে হবে।