ubuntu 20.04 में अपग्रेड करने के बाद kexec रिबूट अब फर्मवेयर / हार्ड रिबूट को स्किप नहीं करता है

Nov 26 2020

(उबंटू साबर के बजाय यहां पोस्ट करना क्योंकि मुझे नहीं लगता कि यह विशेष रूप से उबंटू से संबंधित है ...)

मैं पहले यहाँkexec-reboot -lr असाधारण रूप से उपयोगी पृष्ठ से सफलतापूर्वक उपयोग कर रहा हूँ ।

18.04 से 20.04 तक अपग्रेड करने के बाद, इस कमांड को रन करना अभी भी सिस्टम को रिबूट करता है, लेकिन अब यह एक 'हार्ड' रिबूट करता है, जहां यह ईएफआई / फर्मवेयर के लिए सभी मार्गों को ड्रॉप करने और कर्नेल को पुनरारंभ करने के बजाय छोड़ देता है। यह मेरे सर्वर पर बूट समय में कई मिनट जोड़ता है (और इस आह्वान का उपयोग करने के पूरे बिंदु को हरा देता है ...)

Kexec-reboot के वर्बोज़ आउटपुट के अनुसार चलने वाली कमांड है:

Running /sbin/kexec -l /boot/vmlinuz-5.4.0-54-generic --append='root=UUID=69a4d39e-361f-41e7-9ad3-866cb9dae202 ro intel_iommu=on' --initrd=/boot/initrd.img-5.4.0-54-generic

उस कमांड को सीधे चलाना (यानी kexec-रिबूट सुविधा स्क्रिप्ट से नहीं) एक ही व्यवहार देता है।

मैंने उन संदेशों के लिए syslog और dmesg की जाँच की है जो प्रासंगिक लगते हैं और मुझे कुछ भी नहीं मिल रहा है, लेकिन मुझे उन सभी विभिन्न स्थानों के बारे में पता नहीं है जिनकी मैं देख सकता था। सिर्फ़ क्रिया के झंडे के अलावा, इस समस्या का निवारण करने के लिए मैं और किन चीजों का उपयोग कर सकता हूं?

अद्यतन 11/26: यदि मैं ऊपर वर्णित के रूप में मैन्युअल रूप से kexec लाइन का निर्माण करता हूं और फिर चलाता हूं kexec -e(जैसा कि यहां वर्णित है ) यह वास्तव में कर्नेल को सीधे बूट करता है। Kexec- रिबूट कोड को देखने से पता चलता है कि अंतिम कॉल वहां है shutdown -r now, इसलिए मैं अब यह पता लगाने की कोशिश कर रहा हूं कि shutdown -r nowपहले की तुलना में अलग व्यवहार क्यों है ...

जवाब

VSreekanthChintada Nov 30 2020 at 21:59

कर्नेल 5.4 से बाद में लिनक्स सुरक्षा मॉड्यूल लॉकडाउन सुविधा को सक्षम करता है। यह kexec रिबूट सुविधा को अक्षम कर देगा और हार्ड रीसेट को दरकिनार करने की अनुमति नहीं देगा। डिफ़ॉल्ट रूप से लॉकडाउन सुविधा 5.4 में अक्षम है। लेकिन अपने मामले में पुष्टि करें कि यह सक्षम नहीं है। आप यू-बूट चर या कर्नेल स्रोत की जांच कर सकते हैं।