বুটে কার্নেল মডিউলটি এড়িয়ে যান


12

একটি ভাঙা কার্নেল মডিউল রয়েছে যার কারণে আমি এমনকি ওএস লোড করতে পারি না, তাই আমি এটি মুছতে বা ঠিক করতে পারি না। কার্নেলের প্যারামিটার বা কিছু ব্যবহার করে বুট করার সময় এই মডিউলটি এড়ানো সম্ভব?


উত্তর:


1

পূর্বের উত্তরে বর্ণিত মডিউলটিকে ব্ল্যাকলিস্ট করা হ'ল কার্নেল মডিউলটিকে সম্পূর্ণরূপে এড়িয়ে যাওয়ার সেরা উপায়। ব্ল্যাকলিস্টিং বাদে কোনও মডিউল অক্ষম করার কোনও জেনেরিক উপায় নেই।

কিছু লিনাক্স ডিস্ট্রিবিউশনগুলি এ জাতীয় কাজ করতে কার্নেল বুট প্যারামিটার সরবরাহ করে।

  • আর্ক লিনাক্সে , load_modules=offউদেবকে অটো-লোডিং এড়িয়ে যেতে বাধ্য করে। এটি আপনাকে মডিউলগুলি লোড না করে বুট করতে, মডিউলটিকে সমস্যাযুক্ত করে এমন কালো তালিকাভুক্ত করতে এবং সমস্যাযুক্ত মডিউল লোড না করে সাধারণত পুনরায় বুট করার অনুমতি দেয়।
  • নপপিক্সের অতিরিক্ত বুট পরামিতিগুলির একটি দীর্ঘ তালিকা রয়েছে (ওরফে "চিটকোডস") ; এগুলি হ'ল সাধারণ কার্নেল বুট পরামিতি এবং নোপপিক্স-নির্দিষ্ট অতিরিক্তগুলির মিশ্রণ।

আরও তথ্যের জন্য, কার্নেল প্যারামিটার ডকুমেন্টেশন দেখুন । নির্দিষ্ট সাবসিস্টেম অক্ষম করার জন্য প্যারামিটার রয়েছে। উদাহরণ স্বরূপ:

  • nousb কার্নেল ইউএসবি সমর্থন অক্ষম করে
  • cgroup_disable=[name]একটি নির্দিষ্ট নিয়ামক অক্ষম করে; তবে, "মেমরি" হ'ল বিশেষভাবে সমর্থিত একমাত্র উদাহরণ
  • libata.noacpiলিবিটাতে এসিপিআই ব্যবহার অক্ষম করে (এসএটিএ নিয়ন্ত্রণকারী); এটি কার্নেলের মাধ্যমে মডিউল প্যারামিটারটি পাস করার একটি উদাহরণ

7

বুট লোডার থেকে নির্দিষ্ট মডিউলগুলি অক্ষম করা সম্ভব, তবে সত্যই এটি ডিস্ট্রো-নির্ভর নির্ভর করে dependent

একদিকে, লিনাক্স কার্নেল প্যারামিটারের ডকুমেন্টেশনগুলি আগস্ট ২০১ 2016 পর্যন্ত জানিয়েছে:

module_blacklist= [কেএনএল] মডিউলগুলির কমা-বিচ্ছিন্ন তালিকা লোড করবেন না। ডিবাগিং সমস্যা মডিউলগুলির জন্য দরকারী।

অন্যদিকে, ওপেনসুএস ৪২.১ (লিনাক্স ৪.১.৩১) নিয়ে আমার জন্য যে বিকল্পটি কাজ করেছিল তা আর্ক কার্নেল মডিউল উইকিতে বর্ণিত হয়েছে  :

আপনি বুটলোডার থেকে মডিউলগুলি কালো তালিকাভুক্ত করতে পারেন। সহজভাবে যুক্ত করুন

modprobe.blacklist=modname1,modname2,modname3

আপনার বুটলোডারের কার্নেল লাইনে কার্নেল পরামিতিগুলিতে বর্ণিত। আপনি যখন একাধিক মডিউলকে কালো তালিকাভুক্ত করছেন, তখন মনে রাখবেন যে সেগুলি কেবল কমা দ্বারা পৃথক করা হয়েছে। স্পেসস বা অন্য যে কোনও কিছু সম্ভবত সম্ভবত সিনট্যাক্সটি ভেঙে দিতে পারে।

(ইউনিক্সে জিগারটিভিডিজককে ধন্যবাদ।  এসইটি নির্দেশ করার জন্য এটি।)

নিম্নোক্ত পদ্ধতিটিও উল্লেখ করার মতো :

গ্রাব কমান্ড লাইনটি ব্যবহার করে কার্নেল দ্বারা লোড হওয়া থেকে কিছু নির্দিষ্ট মডিউলগুলি রোধ করার জন্য আপনাকে নীচের সিনট্যাক্সটি ব্যবহার করে কার্নেল লাইনে প্যারামিটার হিসাবে তাদের পাঠাতে হবে।

$module_name.blacklist=yes

এগুলি তারা কোথা থেকে পেয়েছিল আমার কোনও ধারণা নেই তবে অন্য সমস্ত ব্যর্থ হলে অন্য কোনও পদ্ধতিতে চেষ্টা করলে অবশ্যই ক্ষতি হবে না।


"$ মডিউল_নাম.ব্ল্যাকলিস্ট = হ্যাঁ" কেন কাজ করে সে সম্পর্কে আমার একই প্রশ্ন রয়েছে এবং আমি মনে করি এটি কার্নেল কোডের এই অংশের সাথে সম্পর্কিত: git.kernel.org/pub/scm/linux/kernel/git/stable/linux- স্থির.git /…
জনলকফ

1

আপনি এটি /etc/modprobe.d/blacklist, অথবা কালো তালিকাভুক্ত 'মডিউল নাম' এ যুক্ত করতে সক্ষম হবেন


এটি কাজ করবে তবে অন্য কার্নেল (যদি উপলব্ধ থাকে) বা লাইভসিডি সিস্টেমের বুট করা দরকার।
কোয়াকোট কোয়েসোট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.