क्या हार्डवेयर को रिबूट किए बिना लिनक्स ओएस को रिबूट करना संभव है?


89

क्या हार्डवेयर को रिबूट किए बिना लिनक्स सिस्टम (विशेष रूप से डेबियन) को रिबूट करने का एक तरीका है?

मेरे पास एक RAID नियंत्रक है जो ओएस शुरू होने से पहले खुद को चलाने के लिए थोड़ा सा लेता है, और मुझे यह पसंद आएगा अगर RAID ओएस को पुनरारंभ करने की पूरी रिबूट प्रक्रिया से गुजरने के बिना लिनक्स ओएस को जल्दी से रिबूट करने का एक तरीका था, आदि।


6
सभी UEFI आधारित सिस्टम OS को रिबूट करने में सक्षम हैं। आपके पास kexec()वह भी है जो पसंद है exec(), लेकिन यूनिक्स गुठली के लिए।
user2284570 3

जवाबों:


98

मैं अपने लगभग सभी उत्पादन प्रणालियों पर kexec-रिबूट का उपयोग करता हूं।

यह अविश्वसनीय रूप से अच्छी तरह से काम करता है, जिससे मुझे HP PROLiant सर्वर पर लंबे POST समय को बायपास करने और 5 मिनट से ~ 45 सेकंड तक बूट चक्र को कम करने की अनुमति मिलती है ।

देखें: https://github.com/error10/kexec-reboot

केवल चेतावनी यह है कि यह UEFI को बूट करने वाले RHEL / CentOS 6.x सिस्टम पर काम नहीं करता है। लेकिन अधिकांश समझदार ओएस / हार्डवेयर संयोजन काम करते हैं।


62
मैंने लिखा है कि! लेकिन यह अभी भी बहुत अच्छी तरह से काम करता है ...
माइकल हैम्पटन

1
चित्त आकर्षण करनेवाला। तो वास्तविक प्रक्रिया कैसे दिखती है? हरिप्रसाद नेल्लिथेरा (केक्सिक विकिपीडिया पेज से जुड़ा) के एक लेख के अनुसार, "सामान्य रीबूट प्रक्रिया के विपरीत, केटेक्स रिबूट करने से पहले सिस्टम का एक साफ शटडाउन नहीं करता है। यह आपको सभी एप्लिकेशन और अनमाउंट फाइल सिस्टम को मारने के लिए छोड़ दिया जाता है। kexec रिबूट का प्रयास करने से पहले। " मैं कुछ संदिग्ध चीजों पर ध्यान देता हूं, उदाहरण के लिए, Wim Coekaerts का कहना है कि "सिंक; umount -a; kexec -e" बहुत तेज़ रीबूट करेगा। लेकिन आप एक व्यस्त फाइल सिस्टम को umount नहीं कर सकते हैं। वेब का उपयोग करते हुए, ऐसा लगता है कि कई लोग 'सभी अनुप्रयोगों को मार डालो' को नजरअंदाज करते हैं।
माइक एस

2
@ माइक यह नहीं है kexec। इसकी kexec-rebootउपयोगिता है। गितुब विवरण अंतर को बताता है और इस प्रक्रिया में उपयोगिता क्या जोड़ती है।
इविहित

4
@ माइक kexec मंचन के बाद, आप बस एक shutdown -r। आपकी सिस्टम स्क्रिप्ट्स नोटिस करेंगी कि kexec का मंचन किया गया है और सही काम करें। यह कैसा दिखता है? तीन या चार या पंद्रह मिनट कम। मेरे पास एक बहुत ही भयानक गुणवत्ता वाला वीडियो है जिसे मैंने iDRAC कंसोल से लिया है, लेकिन आप वास्तव में इसके माध्यम से पीड़ित नहीं होना चाहते हैं ... kexec-rebootस्क्रिप्ट का अर्थ है कि kexec को सही कमांड लाइन तर्क प्राप्त करने की प्रक्रिया को स्वचालित करना, जो मुश्किल हो सकता है ।
माइकल हैम्पटन

1
@ मिचेल हैम्पटन - शांत। मैं देख रहा हूँ है कि वहाँ CentOS 6.5 /etc/rc3d/rc6.d/S01reboot के अंत के पास पर: [ -n "$kexec_command" ] && $kexec_command -e -x >& /dev/null। इसलिए, यदि कोई कर्नेल kexec -l द्वारा लोड किया जाता है, तो सिस्टम उसे पूर्ण / sbin / रिबूट के बिना रिबूट करेगा ... kexec को बेक किया गया है! मुझे नहीं पता था कि, धन्यवाद। मुझे लगता है कि अधिक आधुनिक वितरणों ने इसे कवर किया है। BTW, अगर kexec पहले -l के साथ नहीं चलाया गया था, तो रिबूट स्क्रिप्ट कहेगी "कुछ भी नहीं लोड किया गया है!" जिसके कारण आउटपुट को / dev / null में भेजा जाता है, और मुझे इस सुविधा के बारे में कभी जानकारी नहीं थी।
माइक एस

17

हाँ यह संभव है। kexec एक लिनक्स कर्नेल को BIOS बूट प्रक्रिया से गुजरे बिना लिनक्स से सीधे बूट करने की अनुमति देगा।


इसके अलावा, यूईएफआई रिबूट किए बिना ओएस को स्विच करने की अनुमति देता है।
user2284570 3

1
@ user2284570 जहां तक ​​मुझे जानकारी है, यूईएफआई ऐसा कोई तंत्र उपलब्ध नहीं कराता है।
जोनाथन रेनहार्ट

15

हाँ। आपको kexec-tools का उपयोग करना चाहिए। जीवन को आसान बनाने के लिए, मैं केक्सेक-रिबूट का उपयोग करता हूं ।

$sudo apt-get install kexec-tools
$wget https://raw.githubusercontent.com/vadmium/kexec-reboot/master/kexec-reboot
$chmod +x kexec-reboot
$sudo mv kexec-reboot /usr/local/sbin/kexec-reboot
$sudo /usr/local/sbin/kexec-reboot

13
ताकि कोई भ्रम न हो, मैंने यह नहीं लिखा।
माइकल हैम्पटन

यह संभावना उबंटू / डेबियन-ही है, है ना?
इविहित

1
@ewwhite यह शायद आरएचईएल / सेंटोस पर काम करेगा , लेकिन कोड की एक रीडिंग में मुझे कई समस्या स्पॉट मिले, जहां किनारे के मामले इसे विफल कर सकते हैं। : और स्रोत एक टिप्पणी के साथ यह स्वीकार करने लगता है# The error checking is very basic.
माइकल हैम्पटन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.