প্যানিক পুনরায় বুট করতে লিনাক্স কার্নেলটি কীভাবে কনফিগার করবেন?


13

আতঙ্কের পরে সিস্টেমটি পুনরায় বুট করার জন্য আপনি কার্নেল কমান্ড লাইনে "প্যানিক = এন" রাখতে পারেন।

তবে বুট লোডারটি খেলায় আসার আগে কি এটির (ডিফল্ট কার্নেল কমান্ড লাইন অপশন বাদে) নির্দিষ্ট করার জন্য একটি কনফিগার বিকল্প রয়েছে? কিছু কার্নেল বিকল্প হতে পারে?


কার্নেল ওয়াচডগ সাবসিস্টেমের মাধ্যমে, সম্ভবত?
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

কনফিগারেশন ফাইলটি নিজেই বুট (গ্রাব) কনফিগারেশন ফাইল, কারণ বুট করার সময় এটি একটি পরামিতি হয় এবং ফাইল সিস্টেমটি মাউন্ট না করা অবস্থায় গ্রাবটি অন্য কোনও কনফিগার ফাইল থেকে পড়ার আশা করা যায় না।
নিখিল মুলি

আমি মনে করি আপনি অন্য কোনও কার্নেলটিতে পুনরায় বুট করতে চান? এটির জন্য বুটলোডার থেকে কিছুটা সহযোগিতা প্রয়োজন, এবং সেই সময়ে, আপনি অবশ্যই কমান্ড লাইন আর্গুমেন্টগুলি পাস করতে সক্ষম হবেন। কিছু বুটলোডার একটি পৃথক কার্নেলে পুনরায় বুট করার জন্য সেট আপ করা যায় যদি বুট ব্যর্থ হয় (কোনও ব্যবহারকারীল্যান্ড প্রোগ্রাম বুট-লোডারকে বোঝায় যে বুট সফল হয়েছে)।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

হ্যাঁ, আমি হয় অন্য কোনও কার্নেলে বুট করব, বা কার্নেলটিকে একটি পৃথক রুটফুট পথ দেব। বুটলোডার কনফিগারেশনে একটি পরিবর্তনশীল রয়েছে যা ইউজারস্পেস সফলভাবে বুট করার পরে পরিবর্তিত হয়; যদি এটি পরিবর্তন না হয় তবে এটি অন্যরকম কিছু করতে চেষ্টা করে। আমি এটির জন্য কেবল কার্নেল কমান্ড লাইন ছাড়াও আরও কিছু প্রত্যাশা করছিলাম কারণ লিনাক্স ব্যবহারকারী স্থানের সাহায্যে বুটলোডারের কনফিগারেশনটি পরিবর্তন করা যায়। যদি কোনও সমস্যা হয়, সম্ভবত এটি সম্ভবত ইউজারস্পেস লেখা শুরু করেছিল, তারপরে ডিভাইসটি চালিত হয়ে গেছে; এবং এটির জন্য একটি ফ্যালব্যাক ডিফল্ট কনফিগারেশন রয়েছে; আমি এখনও এটি পেতে পারি সবচেয়ে দৃ for় সন্ধান করছি।
শন জে গফ

উত্তর:


2

এমন কোনও কনফিগার বিকল্প নেই বলে মনে হয় না। ডিফল্ট সময়সীমাটি 0 হয় যা http://www.mjmwired.net/kernel/Docamentation/kernel-paraters.txt#1898 অনুসারে "চিরকাল অপেক্ষা করুন"।

বিকল্পটি কার্নেল / প্যানিক সি-তে সংজ্ঞায়িত করা হয়েছে , আপনি একটি প্যাচ লিখতে পারেন যা প্রাথমিক মানটিকে আলাদা কিছুতে সেট করে।

3 সেকেন্ডের পরে পুনরায় বুট করার জন্য হার্ডকোড করতে, পরিবর্তন করুন:

int panic_timeout;

প্রতি:

int panic_timeout = 3;

বিশেষ মেকানিজম থাকলে সেখানে উত্সগুলির সাথে টিঙ্ক
পোজ

19

থেকে man proc:

জন্য / proc / sys / kernel / আতঙ্ক

এই ফাইলটি কার্নেল ভেরিয়েবল প্যানিক_টাইমআউটটিতে পঠন / লেখার অ্যাক্সেস দেয়। এটি যদি শূন্য হয়, কার্নেল একটি আতঙ্কের উপর লুপ করবে; যদি ননজারো হয় তবে এটি নির্দেশ করে যে এই সেকেন্ডের পরে কার্নেলটি স্বয়ংক্রিয়ভাবে বুট করা উচিত। আপনি যখন সফ্টওয়্যার ওয়াচডগ ডিভাইস ড্রাইভার ব্যবহার করেন, তখন প্রস্তাবিত সেটিংটি 60 হয়।


আমি এখানে কার্নেল কনফিগারেশন বিকল্পটি খুঁজছি, ব্যবহারকারী স্থান থেকে কিছু নয় not বিশেষত, যদি কোনও কারণে এটি মূল ফাইল সিস্টেমটি মাউন্ট করতে না পারে (বা অন্য কোনও কারণে, ইউজারস্পেস কখনই সামনে আসে না), পুনরায় বুট করার জন্য আমার এটি দরকার।
শান জে গফ

@ শনজেজ.ফফ যদি আপনিও ইউজারস্পেস না আসার বিষয়ে উদ্বিগ্ন হন তবে আপনি ভুল প্রশ্ন জিজ্ঞাসা করছেন (কার্নেল আতঙ্কিত না হলেও আপনি পুনরায় বুট করতে চান)। এবং উত্তর সংজ্ঞা অনুসারে ওয়াচডগের এক রূপ; আপনাকে ওয়াচডগ সাবসিস্টেমটি সক্রিয় করতে হবে ( /dev/watchdogকিছুক্ষণের মধ্যে স্পর্শ না করা থাকলে একটি রিবুট ট্রিগার )। দেখুন Documentation/watchdog/watchdog-api.txt
গিলস 'তাই খারাপ হওয়া বন্ধ করুন'

1
হ্যাঁ, আমার একটা নজরদারি আছে। আমি যথাসম্ভব যথাসম্ভব সুরক্ষা জাল রাখছি।
শন জে গফ

পুনরায় বুটের পরিবর্তে শাটডাউন করার কোনও উপায়?
সিরো সান্তিলি 新疆 改造 中心 法轮功 六四

@ শনজ.গফ বুট লোডার ইউজারস্পেস বুট হওয়ার অনেক আগেই এই প্যারামিটারটি কেটে যায়। যাইহোক, আমার উত্তর দেখুন: unix.stackexchange.com/a/517364/6622
পোজ

5

কনফিগারেশন ফাইলটি নিজেই বুট (গ্রাব) কনফিগারেশন ফাইল, কারণ এটি বুট করার সময় একটি পরামিতি ছিল এবং ফাইল সিস্টেমটি মাউন্ট না করা অবস্থায় গ্রাবটি অন্য কোনও কনফিগার ফাইল থেকে পড়ার আশা করা যায় না।

যাইহোক, এটি একটি প্রাথমিক সেটিং হচ্ছে, রানটাইমটি এর মাধ্যমেও পরিবর্তন করা যেতে পারে sysctl। সুতরাং, মূলত /etc/sysctl.confপ্যারামিটারের সাথে আপডেট kernel.panic = 3করা একটি কনফিগারেশন আপডেট।


1
গ্রাব সব সিস্টেমে নেই; আমি যার সাথে কাজ করছি সে গ্রাব ব্যবহার করছে না। আমার বুটলোডার কনফিগারেশন ফ্ল্যাশ সংরক্ষণ করা হয়।
শন জে গফ

হ্যাঁ, এখনও .. এটি ফাইল সিস্টেমটি মাউন্ট করতে এবং কার্নেল কনফিগারেশন ফাইলটি পড়তে পারে? যদি হ্যাঁ, তবে আপনি সেখানে যান। কারন এটির বুট লোডার কার্নেল লোড করার সময় কার্নেলের কাছে কার্নেল পরামিতিগুলি পাস করে।
নিখিল মুলি

3

kernel.panicএকটি sysctl হয় । এগুলি কনফিগার করার বিভিন্ন উপায় রয়েছে, উদাহরণস্বরূপ sysctl.d এর মাধ্যমে ।


3

লিনাক্স কার্নেলে, (আমি 3 এবং তারপরেও দেখেছি) এর বিকল্প রয়েছে .configCONFIG_PANIC_TIMEOUTপ্যারামিটার এবং ডিফল্ট 0। লিনাক্স কার্নেলের এই সংস্করণগুলিতে, লেকেনস্টেইনের উত্তরটিও কার্যকর হবে। তবে সেই পরিবর্তনশীলটি .configএকমাত্র থেকে গ্রহণ করছে ।

int panic_timeout = CONFIG_PANIC_TIMEOUT;

1

লিনাক্স কার্নেল সমর্থন করে CONFIG_CMDLINE_BOOL

নির্মাণের সময় কার্নেলে বুট আর্গুমেন্ট নির্দিষ্ট করার জন্য অনুমতি দিন। কিছু সিস্টেমে (যেমন এম্বেড হওয়াগুলি), কার্নেল থেকে কিছু বা সমস্ত কার্নেল বুট আর্গুমেন্ট সরবরাহ করা প্রয়োজনীয় বা সুবিধাজনক (যেমন, বুট লোডার সরবরাহের জন্য নির্ভর করে না।)

এমনকি এই "পোর্টাল" তে কিছু উদাহরণ রয়েছে যেমন, উদাহরণস্বরূপ

/superuser/778826/config-cmdline-override-set-but-hardcoded-vga-boot-parameter-ignored


0

আপনি এই প্যাচটি ব্যবহার করতে পারেন যা একটি কনফিগারেশন বিকল্প যুক্ত করে।


0

প্রথমে অন্যান্য উত্তরে তথ্য শেষ করুন। মানটি কার্নেল / প্যানিক.সি এবং সংস্থার মাধ্যমে rw এ সংজ্ঞায়িত করা হয়। এটি একটি বুট কমমানলাইন হিসাবে পাস হতে পারে।

আমি আরও কী বলব, সংকলনের সময় বুট কমান্ডলাইনটি ডিফল্ট মান সেট করা যায়

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