मैं संकलित कर्नेल को कैसे हटा सकता हूं?


21

मैंने अपने लैपटॉप Lenovo E455 पर 14.10 स्थापित किए।

और निम्नलिखित क्रम के साथ कर्नेल 3.19 संकलित

चूंकि ऐसा लग रहा था कि 14.10 मेरे साथ काम नहीं करना चाहते। (मैंने धीमी गति से देखा)

Http://www.kernel.org/ से वर्तमान कर्नेल डाउनलोड किया गया

make oldconfig
make
sudo make install

अंत में, नए कर्नेल के साथ बूट करने में विफल रहा।

मैं ग्रब से संकलित कर्नेल को कैसे हटा सकता हूं और पुनर्प्राप्त कर सकता हूं?


आपने इसे हटाने के लिए अब तक क्या प्रयास किया और कहां गलत हुआ? जहां कोई चेतावनी या त्रुटि संदेश है?
डेविड फ़ॉस्टर

आपकी मदद के लिए धन्यवाद। बरामद हुआ और उबंटू 15.XX का इंतजार कर रहा था।
ओहिमी गर्ल

जवाबों:


33

आसान विधि:

यदि डेबियन विधि के माध्यम से संकलित किया जाता है, तो आप निम्न के साथ स्थापित कर्नेल देख सकते हैं:

dpkg --list | grep kernel-image

और फिर वांछित कर्नेल पैकेज की स्थापना रद्द करें apt-get:

sudo apt-get remove kernel-image-your-kernel-image

कठिन विधि:

यदि संकलित और स्थापित किया गया है make install, तो आपको निम्न प्रविष्टियों को मैन्युअल रूप से निकालना होगा:

/boot/vmlinuz*KERNEL-VERSION*
/boot/initrd*KERNEL-VERSION*
/boot/System-map*KERNEL-VERSION*
/boot/config-*KERNEL-VERSION*
/lib/modules/*KERNEL-VERSION*/
/var/lib/initramfs/*KERNEL-VERSION*/

फिर ग्रब कॉन्फ़िगरेशन अपडेट करें:

sudo update-grub2

1
मेरे पास / var / lib / initramfs / निर्देशिका नहीं है, लेकिन क्या यह इसलिए है क्योंकि मैंने अपने सिस्टम में गुठली संकलित नहीं की है?
जारो

1
/var/lib/initramfs-tools/*KERNEL-VERSION*डेबियन पर
Csaba Toth

1
नए कर्नेल (वर्ष 2018) के लिए एक संपादन पर विचार करें: /boot/abi*KERNEL-VERSION*और/boot/retpoline*KERNEL-VERSION*
WinEunuuchs2Unix

9

जर्नो के सवाल के लिए धन्यवाद यहाँ मुझे लगता है कि बहुत कम लिखना पड़ता है और चारों ओर झूठ बोल रही है किसी भी अतिरिक्त बिट्स पकड़ता मुदित कपिल के जवाब को लागू करने का एक तरीका है बाहर काम किया

चूँकि कर्नेल को हटाने के लिए आवश्यक सभी फाइलों और निर्देशिकाओं को हटाना है, और उन सभी फ़ाइलों और निर्देशिकाओं के कर्नेल रिलीज़ स्ट्रिंग उनके रास्तों में होंगे, हम locateसभी फ़ाइलों को कर्नेल रिलीज़ स्ट्रिंग के साथ खोजने और उन्हें हटाने के लिए उपयोग कर सकते हैं कर्नेल को हटाने के लिए।

(पहले uname -rवर्तमान में चल रहे कर्नेल का नाम खोजने के लिए जांच करें और सुनिश्चित करें कि इसे हटाएं नहीं)

कहते हैं कि आप एक कर्नेल को हटाना चाहते हैं जिसे कहा जाता है 4.4.6-my-kernel। आप इसकी सभी मौजूदा फ़ाइलों और निर्देशिकाओं (सभी नामित निर्देशिकाओं में फ़ाइलों को सूचीबद्ध किए बिना) पा सकते हैं locate -b -e 4.4.6-my-kernelrm -rइसके साथ आवेदन करने से xargsआप फ़ाइलों को भी हटा सकते हैं। मैं प्रदर्शन लक्ष्य -pबनाने xargsऔर निष्पादन से पहले पुष्टि करने के लिए कहता हूं

locate -b -e 4.4.6-my-kernel | xargs -p sudo rm -r

फिर दिखाए गए लक्ष्यों पर yअमल करने के लिए टाइप करें rm -r। यह शिकायत करेगा कि जो निर्देशिकाएँ नहीं हैं वे फ़ाइलें मौजूद नहीं हैं क्योंकि आप उन्हें पुनरावर्ती ( -r) हटाने का प्रयास कर रहे हैं , लेकिन यह ठीक है, वे अभी भी निर्देशिकाओं और उनकी सामग्री के साथ हटा दिए जाएंगे। जब किया, बस चला

sudo update-grub

एट वॉयला।


+1 क्योंकि यह स्वीकृत उत्तर की तुलना में अधिक फ़ाइलों को पकड़ता है। उदाहरण के लिए सभी dkmsसामान। मैं इसे सबसे पहले rmविकल्प के बिना चलाऊंगा, जो सब कुछ हटा दिया जाएगा।
WinEunuuchs2Unix

मुझे वर्तमान में चल रहे कर्नेल को क्यों नहीं हटाना चाहिए? क्या होगा अगर वह कर्नेल है जिसे मैं हटाना चाहता हूं? क्या पहले से चालू कर्नेल को किसी अन्य कर्नेल के साथ मशीन को पुनरारंभ किए बिना हटाना संभव है?
लीरान फनारो

1
@LiranFunaro यह संभव है हाँ। मेरा उत्तर देखें मैं केवल कमांड द्वारा चल रहे कर्नेल की स्थापना कैसे रद्द करूं? जो यह भी बताता है कि यह शायद एक अच्छा विचार क्यों नहीं है
ज़ना
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.