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


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

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


81
2018-03-24 23:35


मूल


सभी यूईएफआई आधारित सिस्टम रीबूट करने के दौरान ओएस स्विच करने में सक्षम हैं। आपके पास भी हैkexec()जो जैसा हैexec(), लेकिन यूनिक्स कर्नेल के लिए। - user2284570


जवाब:


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

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

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

एकमात्र चेतावनी यह है कि यह यूईएफआई को बूट करने वाले आरएचईएल / सेंटोस 6.x सिस्टम पर काम नहीं कर रहा है। लेकिन सबसे अधिक ओएस / हार्डवेयर संयोजन काम करते हैं।


94
2018-03-25 00:05



मैंने लिखा है! लेकिन यह अभी भी बहुत अच्छी तरह से काम करता है ... - Michael Hampton♦
चित्त आकर्षण करनेवाला। तो वास्तविक प्रक्रिया कैसे दिखती है? हरिप्रसाद नेलिथेरथ (केएक्सईसी विकिपीडिया पेज से जुड़े) के एक लेख के मुताबिक, "सामान्य रीबूट प्रक्रिया के विपरीत, kexec रिबूट करने से पहले सिस्टम का क्लीन शटडाउन नहीं करता है। यह सभी अनुप्रयोगों को मारने और फाइल सिस्टम को अनमाउंट करने के लिए आपको छोड़ दिया गया है kexec रीबूट करने का प्रयास करने से पहले। " मुझे कुछ संदिग्ध चीजें दिखाई देती हैं, उदाहरण के लिए, विम कोकार्ट्स का कहना है कि "सिंक; umount -a; kexec -e" एक बहुत तेज रीबूट करेगा। लेकिन आप व्यस्त फाइल सिस्टम को उछाल नहीं सकते हैं। वेब पर विचार करते हुए, ऐसा लगता है कि कई 'सभी अनुप्रयोगों को मारने' भाग को अनदेखा करते हैं। - Mike S
@ माइकस यह नहीं है kexec। यह है kexec-reboot उपयोगिता। गिथब वर्णन में अंतर की रूपरेखा और प्रक्रिया में उपयोगिता क्या जोड़ती है। - ewwhite
@MikeS kexec को व्यवस्थित करने के बाद, आप बस एक करते हैं shutdown -r। आपकी सिस्टम स्क्रिप्ट्स ध्यान देंगी कि केएक्सईसी का मंचन किया गया है और सही काम है। यह कैसा दिखता है? तीन या चार या पंद्रह मिनट कम। मेरे पास आईडीआरएसी कंसोल से बहुत भयानक गुणवत्ता वाला वीडियो है, लेकिन आप वास्तव में उस से पीड़ित नहीं होना चाहते हैं ... kexec-reboot स्क्रिप्ट काएक्सैक को सही कमांड लाइन तर्क प्राप्त करने की प्रक्रिया को स्वचालित करने के लिए है, जो मुश्किल हो सकता है। - Michael Hampton♦
@ माइकल हैम्पटन - ठंडा। मैं देखता हूं कि /etc/rc3d/rc6.d/S01reboot के अंत के पास CentOS 6.5 पर है: [ -n "$kexec_command" ] && $kexec_command -e -x >& /dev/null । इसलिए, अगर कर्नेल kexec -l द्वारा लोड किया गया है, तो सिस्टम इसे पूर्ण / sbin / reboot के बिना रीबूट करेगा ... kexec में बेक किया गया है! मुझे यह नहीं पता था, धन्यवाद। मुझे लगता है कि अधिक आधुनिक वितरण में यह भी शामिल है। बीटीडब्ल्यू, अगर kexec पहले -l के साथ नहीं चलाया गया था, तो रीबूट स्क्रिप्ट कहेंगे "कुछ भी लोड नहीं हुआ है!" यही कारण है कि आउटपुट को / dev / null पर भेजा जाता है, और मुझे इस सुविधा के बारे में कभी पता नहीं था। - Mike S


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


17
2018-03-24 23:51



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


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

$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
2018-03-26 04:04



इसलिए कोई भ्रम नहीं है, मैंने यह नहीं लिखा। - Michael Hampton♦
यह संभवतः उबंटू / डेबियन-केवल, सही है? - ewwhite
@ewwhite यह होगा शायद आरएचईएल / सेंटोस पर काम करते हैं, लेकिन कोड पढ़ने के बाद मुझे कई समस्याएं मिलीं, जहां किनारे के मामलों में असफल हो सकता है। और स्रोत एक टिप्पणी के साथ यह स्वीकार करता है: # The error checking is very basic. - Michael Hampton♦