सवाल बूट मेनू को साफ़ करने के लिए मैं पुराने कर्नेल संस्करणों को कैसे हटाऊं?


हर बार जब मैं एक नया लिनक्स कर्नेल स्थापित करता हूं, तो यह grub_config में छोड़ा जाता है, जिससे हर बार बूट मेनू लंबा होता है।

मुझे पता है कि मैं मैन्युअल रूप से स्थापित संकुल के माध्यम से खोज सकता हूं और उन्हें हटा सकता हूं।

क्या उबंटू उन्हें साफ करने या बूट सूची में दिखाने से उन्हें रखने का कोई आसान तरीका प्रदान करता है?


658


मूल


पुराने कर्नेल को हटाने के साथ-साथ इस लाइन को असम्बद्ध करें /etc/default/grub यदि आप मेनू में 'रिकवरी' आइटम से छुटकारा पाना चाहते हैं: # GRUB_DISABLE_LINUX_RECOVERY = "true" - poolie
हालिया रिलीज में उबंटू ग्रब के उप मेनू में कर्नल छुपाता है, इसलिए यह घुसपैठ नहीं कर रहा है। हालांकि, अंतरिक्ष को बचाने के लिए अतिरिक्त कर्नेल को निकालना अच्छा विचार हो सकता है, खासकर, यदि आपके पास एक अलग छोटा / बूट विभाजन है। - jarno
नौकरी करने के लिए purge-old-kernels नामक एक ubuntu कमांड है। देखो मेरा उत्तर अधिक जानकारी के लिए। - jarno
sudo apt-get autoremove उबंटू 14.04+ पर चाल चलनी चाहिए - hobs
पुराने कर्नेल का संचय एक बग है, ठीक से प्रगति के साथ: bugs.launchpad.net/bugs/1357093 । जब फिक्स जारी किया जाता है, तो पुराने कर्नेल डिफ़ॉल्ट रूप से स्वत: सुधार करेंगे। - user535733


जवाब:


16.04 और उबंटू के नए संस्करण

sudo apt autoremove

यह आदेश उन संकुल को हटा देता है जो निर्भरता को हल करने के लिए स्वचालित रूप से स्थापित किए गए थे, लेकिन अब इस पर निर्भर नहीं हैं। इसमें पुराने संस्करण शामिल हैं linux-headers-* तथा linux-image-*। (यह इस प्रक्रिया के बारे में भी स्मार्ट है, कर्नेल के एक अतिरिक्त संस्करण को फॉलबैक के रूप में छोड़कर!)

11.10 और उबंटू के नए संस्करण

GRUB2 और सभी कर्नेल का प्रदर्शन

के नवीनतम संस्करण Grub2 में स्थापित उबंटू स्वचालित रूप से नवीनतम कर्नेल प्रदर्शित करें और पुराने कर्नेल को छुपाएं जिन्हें आपने इंस्टॉल किया हो।

GNU GRUB

अगर आप अपना नहीं देखते हैं भोजन - फिर प्रेस करना याद रखें खिसक जाना जबकि बूटिंग।

जैसा कि आप देख सकते हैं, केवल नवीनतम कर्नेल प्रदर्शित होता है।

यदि आप दिखाए गए विकल्प का चयन करते हैं (दबाएं दर्ज) तो सभी पुराने कर्नेल दिखाई देते हैं और बूट करने के लिए उपलब्ध होते हैं।

GNU GRUB Previous versions 

पुरानी कर्नेल को स्थायी रूप से कैसे हटाएं

नवीनतम उपलब्ध कर्नेल के साथ पहला बूट।

पुरानी कर्नेल हटाने के कई तरीके हैं। व्यक्तिगत रूप से, मैं नहीं छूंगा कंप्यूटर जानीटर चूंकि यह आपके कंप्यूटर को अपने सुझावों के साथ तोड़ने के लिए स्वीकार किया जाता है।

अन्तर्ग्रथनी

एक विकल्प है synaptic (sudo apt install synaptic)

निम्न को खोजें लिनक्स छवि, कर्नेल पर राइट-क्लिक करें और पूर्ण निष्कासन का चयन करें और अंत में क्लिक करें लागू करें कर्नेल को हटाने के लिए बटन।

Synaptic Package Manager

खोज दोहराएं लेकिन इस बार के लिए लिनक्स हैडर - आप पहले चयनित कर्नेल छवि के लिए संबंधित शीर्षलेख हटा सकते हैं।

synaptic यद्यपि आप जो भी निकालने का प्रयास कर रहे हैं उसे सत्यापित करने का प्रयास नहीं करेंगे ... आप अनजाने में अपने नवीनतम कर्नेल को हटा सकते हैं - या इस टूल के माध्यम से अपने सभी कर्नेल को भी हटा सकते हैं जो आपको एक बूट करने योग्य उबंटू!।

यह जांचना याद रखें कि आप किस कर्नेल का उपयोग कर रहे हैं:

uname -r

नतीजा इसी तरह होगा:

Terminal <uname -r>

परिणाम और संख्या याद रखें - सुनिश्चित करें कि आप संबंधित छवि या शीर्षलेख को हटा नहीं देते हैं।

सिफ़ारिश करना

मेरी सिफारिश है कि नवीनतम सहित कम से कम दो या अधिमानतः तीन कर्नेल रखें। अनुशंसा का कारण यह है कि आपके पास बूट करने के लिए कम-से-कम एक / दो अन्य कर्नेल होंगे, यदि किसी भी कारण से आप नवीनतम कर्नेल को बूट करने में असमर्थ हैं या टूटी हुई वायरलेस जैसी रीग्र्रेस क्षमता को पेश कर रहे हैं।


569



Synaptic का उपयोग कर पुराने "linux-image *" संकुल को हटाकर, 10.04 के साथ भी अच्छी तरह से काम किया। (मैं इसका जिक्र करता हूं क्योंकि शीर्षक बताता है कि यह केवल 11.10 और ऊपर हो सकता है) - mivk
-yके अंत में स्विच करें apt-get लाइन जरूरी है, अन्यथा apt-get सिर्फ पुष्टि के लिए पूछता है और चूंकि इनपुट एक पाइप है, यह बस बंद हो जाता है। तो इसे समाप्त करना चाहिए: | xargs sudo apt-get purge -y - Josh
पुराने के लगभग 20 संस्करणों को हटा रहा है linux-image तथा linux-headers मेरी मशीन पर 4.5 जीबी स्पेस मुक्त - Andrew Mao
यह विधि अच्छी तरह से काम करती है, लेकिन प्रत्येक कर्नेल को हटाने से grub.cfg को पुन: उत्पन्न होता है, जिसमें समय लगता है। बैच हटाने के लिए इसे अक्षम करने का कोई तरीका है, फिर इसे एक बार फिर से उत्पन्न करना? - spacediver
मैं @spacediver से दूसरा प्रश्न - यह एक पागल धीमी प्रक्रिया है जब आपके पास 38 अनियंत्रित कर्नल होते हैं, क्योंकि प्रत्येक व्यक्ति अनइंस्टॉल किया जाता है, यह एक नया grub.cfg उत्पन्न करते समय शेष सभी के माध्यम से जाता है। यही वह है जिसे हम एन ^ 2 ऑपरेशन कहते हैं - यह कर्नेल को (38 ^ 2/2) = 722 बार संसाधित करता है, और यह बहुत धीमा है। निश्चित रूप से उबंटू कुछ बेहतर हो सकता है .... - nealmcb


सबसे पहले, यह सुनिश्चित करने के लिए अपने सिस्टम को रीबूट करें कि यह नवीनतम कर्नेल का उपयोग कर रहा है। फिर टर्मिनल खोलें और अपने वर्तमान कर्नेल की जांच करें:

uname -r 

इस केरल को हटाओ मत!

इसके बाद, अपने सिस्टम पर सभी स्थापित कर्नेल को देखने / सूचीबद्ध करने के लिए नीचे दिए गए आदेश को टाइप करें।

dpkg --list | grep linux-image 

अपने वर्तमान कर्नेल से कम सभी कर्नल खोजें। जब आप जानते हैं कि कौन से कर्नेल को निकालना है, तो इसे हटाने के लिए नीचे जारी रखें। आपके द्वारा चुने गए कर्नेल को हटाने के लिए नीचे दिए गए आदेश चलाएं।

sudo apt-get purge linux-image-x.x.x-x-generic 

अंत में, grub2 को अद्यतन करने के लिए नीचे दिए गए आदेश चलाएं

sudo update-grub2 

अपने सिस्टम को रिबूट करें।


366



10.04 और 12.04 में ऐसा करने पर, मैंने पाया कि अद्यतन-ग्रब स्वचालित रूप से शुद्ध प्रक्रिया के दौरान चलाया गया था। - aidan
बैश की ब्रेस विस्तार इस्तेमाल किया जा सकता है, उदा। sudo apt-get purge linux-image-3.2.0-3{0..5}-generic (30,31 हटा देता है, .., 35) - ajo
बाद में सिस्टम को रीबूट करने की कोई आवश्यकता नहीं है। वास्तव में, आपको सिस्टम को रीबूट करना चाहिए से पहले इन चरणों को निष्पादित करने के लिए, यह सुनिश्चित करने के लिए कि आप नवीनतम कर्नेल संस्करण का उपयोग कर रहे हैं जिसे आपने शायद अभी डाउनलोड किया है और इंस्टॉल किया है (आपने एक एपीटी-अपडेट अपडेट किया है और इससे पहले अपग्रेड प्राप्त करें, है ना ??) - Ricket
आप भी अनइंस्टॉल करना चाहते हैं linux-signed-image पैकेज जो यूईएफआई सिस्टम में स्थापित किए जा सकते हैं: sudo apt-get purge linux-signed-image-3.11.0-{12,14,24}-generic जो 12, 14 और 24 को हटा देगा - devius
@jarno मुझे नहीं पता कि मैं एक हस्ताक्षरित कर्नेल का उपयोग कर रहा हूं या नहीं, लेकिन uname -r कोई नहीं है signed मेरे सिस्टम पर स्ट्रिंग। ऐसा लगता है कि एक हस्ताक्षरित छवि स्थापित है और इसका आउटपुट है ls आदेश है: /boot/vmlinuz-3.19.0-16-generic.efi.signed। - devius


पुराने कर्नेल को हटाने के लिए मेरा एक-लाइनर (यह डिस्क स्थान को भी मुक्त करता है)

dpkg --list | grep linux-image | awk '{ print $2 }' | sort -V | sed -n '/'`uname -r`'/q;p' | xargs sudo apt-get -y purge

स्पष्टीकरण (याद रखें, | अगले कमांड के आउटपुट को अगले इनपुट के रूप में उपयोग करता है)

  • dpkg --list सभी स्थापित संकुल सूचीबद्ध करता है
  • grep linux-image स्थापित लिनक्स छवियों के लिए देखता है
  • awk '{ print $2 }' बस दूसरे कॉलम को आउटपुट करता है (जो पैकेज का नाम है)
  • sort -V आइटम संख्या द्वारा आइटम क्रम में रखता है
  • sed -n '/'`uname -r`'/q;p' वर्तमान कर्नेल से पहले लाइनों को प्रिंट करता है
  • xargs sudo apt-get -y purge पाए गए कर्नल purges

अनइंडिंग sed मंगलाचरण:

  • -n बताता है sed चुप रहो
  • `uname -r` वर्तमान स्थापित कर्नेल रिलीज आउटपुट करता है - हम इसे बैकटिक्स में शामिल करते हैं ताकि आउटपुट को कमांड के हिस्से के रूप में शामिल किया जा सके (आप इसे भी देख सकते हैं $(uname -r) 
  • /something/q जब आप 'कुछ' से मेल खाते हैं तो रोकें (इस मामले में, कुछ आउटपुट है uname -r) - द / नियमित अभिव्यक्ति को घेर लें
  • p प्रिंट है
  • ; कमांडर कमांडर है, तो /something/q;p कहता है कि जब आप कुछ मेल खाते हैं, तो प्रिंट करें

कुल मिलाकर, sed -n '/'`uname -r`'/q;p' जब तक यह मौजूदा कर्नेल नाम से मेल नहीं खाता तब तक लाइनों को प्रिंट करें।

यदि आप पागल हैं (मेरे जैसे), तो आप अंतिम भाग बना सकते हैं xargs echo sudo apt-get -y purge ताकि पुराने कर्नेल को शुद्ध करने के लिए आदेश मुद्रित किया गया हो, तो आप जांच सकते हैं कि इसे चलाने से पहले अप्रत्याशित कुछ भी शामिल नहीं है।


हेडर को हटाने के लिए संशोधित संस्करण:

dpkg --list | grep 'linux-image' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs sudo apt-get -y purge
dpkg --list | grep 'linux-headers' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs sudo apt-get -y purge

ध्यान दें sed आमंत्रण संशोधित किया गया है। "$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")" "केवल जेनरेटिक" या इसी तरह के बिना, केवल संस्करण (उदाहरण के लिए "3.2.0-44") निकालता है uname -r


छवियों और शीर्षकों को हटाने के लिए सभी में एक संस्करण (उपरोक्त दो संस्करणों को जोड़ता है):

echo $(dpkg --list | grep linux-image | awk '{ print $2 }' | sort -V | sed -n '/'`uname -r`'/q;p') $(dpkg --list | grep linux-headers | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p') | xargs sudo apt-get -y purge

262



ध्यान दें कि वर्तमान कर्नेल संस्करण से नियमित रूप से अभिव्यक्ति के रूप में मिलान करना थोड़ा खतरनाक है: डॉट किसी भी चरित्र से मेल खाते हैं और 3.1.2-23 मैचों 3.1.2-2 से मेल खाते हैं (या यह दूसरी तरफ है)। मेरा भी देखें उत्तर। - jarno
यहां एक ट्यूनेड ऑल-इन-वन संस्करण है: sudo apt-get purge $(for tag in "linux-image" "linux-headers"; do dpkg-query -W -f'${Package}\n' "$tag-[0-9]*.[0-9]*.[0-9]*" | sort -V | awk 'index($0,c){exit} //' c=$(uname -r | cut -d- -f1,2); done) मेरा भी देखें उत्तर। - jarno
@ जर्नो ने मुझे बहुत बढ़िया विस्तार करने में मदद की ... आपके एक लाइनर के लिए कुडोस - Clain Dsilva
असमान निर्भरताओं के कारण, मुझे इसका उपयोग करने की आवश्यकता थी dkpg -Pबजाय। यहां पूर्ण संस्करण है: dpkg --list | grep 'linux-headers' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs sudo dpkg -P - Sebastian Sastre
ऐसा मत करो! "वह ऑनलाइनर थोड़ा खतरनाक दिखता है, लेकिन निश्चित रूप से 220 अपवित्र गलत नहीं हो सकते हैं!" मैंने खुद को और अंधेरे से कॉपी-चिपकाया। रीबूट, सीधे GRUB के लिए। उस आदेश ने मेरे सभी कर्नलों को मिटा दिया, जिसमें मैं उपयोग कर रहा था। शायद मैं एक रीयलटाइम कर्नेल चला रहा था, याद भी नहीं कर सकता। वर्तमान में उबंटू लाइव सीडी को स्थापित करने के लिए यूएसबी स्टिक के लिए मेरे घर के चारों ओर देख रहे हैं :( - Andreas Jansson


उबंटू 16.04+:

$ sudo apt autoremove
...
The following packages will be REMOVED:
  linux-headers-4.4.0-57 linux-headers-4.4.0-57-generic linux-image-4.4.0-57-generic linux-image-extra-4.4.0-57-generic linux-tools-4.4.0-57 linux-tools-4.4.0-57-generic

उबंटू 15.10 और नीचे:

मुझे यह सबसे आसान और तेज़ तरीका लगता है। यह नवीनतम कर्नेल के साथ-साथ दो और भी रखता है:

sudo apt-get install bikeshed
sudo purge-old-kernels

रखे गए अतिरिक्त कर्नेल की संख्या को बदलने के लिए:

sudo purge-old-kernels --keep 3

55



वह आदेश एक शेल स्क्रिप्ट है, जिसका स्थान आप ढूंढ सकते हैं which purge-old-kernels। - jarno
खुशी है कि उन्होंने 16.04 में इसे बहुत आसान बना दिया! उम्मीद है कि यह जवाब अपना रास्ता बना रहा है ... - Toby J
उबंटू 16.04 पर मेरे पास है purge-old-kernels बिना बाइक के (यादृच्छिक उपयोगी उपकरण जिनके पास अभी तक स्थायी घर नहीं है) पैकेज या किसी विशेष एक। उपयोग करने के लिए उपयोग करें apt-get -y विकल्प, आंखें बंद करने की तरह है और उम्मीद है कि सब कुछ ठीक होने जा रहा है। भी यहाँ यह कैसे है autoremove तय करता है कि कितने पुराने कर्नेल रखना है। - Pablo Bianchi
16.04 purge-old-kernels में byobu पैकेज द्वारा प्रदान किया जाता है (संकेत: apt-file search purge-old-kernels)। इस पर सहमत apt-get -y, मैं इसे हटा दूंगा। - bmaupin
@Dan क्योंकि मैं गैर-एलटीएस संस्करणों का उपयोग नहीं करता हूं, मुझे यकीन नहीं था कि यह कब शुरू हुआ था। लेकिन मैं निश्चित रूप से यह कह सकता हूं sudo apt-get autoremove 14.04 में कर्नेल को नहीं हटाता है। यदि आप जानते हैं कि यह क्या है तो विशिष्ट संस्करण के साथ उत्तर को अपडेट करने के लिए स्वतंत्र महसूस करें! - bmaupin


ग्रब 2 से प्रविष्टियों को हटा रहा है /Etc/grub.d फ़ोल्डर में फ़ाइलों को संपादित या निकालने से प्रविष्टियां हटा दी जानी चाहिए। /Boot/grub/grub.cfg फ़ाइल केवल पढ़ने के लिए है और सामान्य रूप से संपादन की आवश्यकता नहीं है।

बहुत सारे कर्नल? 

  • यदि आप टर्मिनल प्रकार में कर्नेल के बारे में निश्चित नहीं हैं, तो आप वर्तमान में उपयोग कर रहे हैं uname -r

  • एपीटी (सिनैप्टिक, "एपीटी-गेट हटाने" इत्यादि के माध्यम से हटाए गए कर्नेल) स्वचालित रूप से grub.cfg को अपडेट करेंगे और कोई उपयोगकर्ता कार्रवाई आवश्यक नहीं है।

  • कर्नेल (और मेनू प्रविष्टियों) को हटाने के लिए एक शानदार टूल उबंटू-ट्वीक, एक सुरक्षित और उपयोग में आसान जीयूआई ऐप है।

  • उबंटू ट्वीक स्थापित करें

  • उबंटू-ट्वीक एप्लीकेशन> सिस्टम टूल्स के तहत उपलब्ध होगा।

पुरानी कर्नेल प्रविष्टियां निकालें

  • बाईं ओर "पैकेज क्लीनर" और दाएं पैनल से "क्लीन कर्नेल" चुनें।

  • निचले दाएं भाग पर "अनलॉक करें" बटन दबाएं, अपना पासवर्ड दर्ज करें।

  • प्रदर्शित सूची से चुनें कर्नेल छवियों और शीर्षलेख जिन्हें आप निकालना चाहते हैं। उपयोग में कर्नेल सूचीबद्ध नहीं है।

  • चयनित कर्नेल छवियों और शीर्षलेखों को हटाने के लिए निचले दाएं भाग पर "क्लीनअप" बटन दबाएं।

ग्रब मेनू से ऑपरेटिंग सिस्टम निकालें

  • "ऑपरेटिंग-ग्रब" रूट के रूप में चलाने के बाद कंप्यूटर से हटाए गए अन्य ऑपरेटिंग सिस्टम को मेनू से भी हटा दिया जाएगा।

  • मेनू आइटम स्क्रिप्ट द्वारा Grub2 मेनू पर रखा गया है। यदि आप मेनू में अन्य ऑपरेटिंग सिस्टम दर्ज नहीं करना चाहते हैं, तो /etc/grub.d/30_osprober अक्षम करें

  • स्क्रिप्ट को चलने से रोकने के लिए इस कमांड को चलाएं
    sudo chmod -x /etc/grub.d/30_os-prober 

  • DISABLE_30_OS-PROBER = 'true' / etc / default / grub में

ग्रब मेनू से Memtest86 + निकालें
sudo chmod -x /etc/grub.d/20_memtest86+

  • Grub.cfg में परिवर्तनों को शामिल करने की अनुमति देने के लिए अद्यतन-grub कमांड चलाएं

स्रोत 

ध्यान दें: कर्नेल अपडेट के बाद GRUB मेनू में एक नई प्रविष्टि जोड़ दी जाती है। यदि आप चाहें तो पुराने को हटा सकते हैं। हालांकि, सबसे अनुभवी उपयोगकर्ता आपको अपग्रेड के साथ कुछ गलत होने पर कम से कम एक अतिरिक्त प्रविष्टि रखने की सलाह देंगे और आपको इसकी आवश्यकता है समस्या निवारण उद्देश्यों के लिए पुराने कर्नेल संस्करण को बूट करें।

कर्नेल प्रविष्टियों को हटाने के वैकल्पिक तरीके (10.04 से पहले) 

GRUB के लिए GRUB2 नहीं है

स्टार्टअप प्रबंधक  Install startupmanager

आप इसे सिस्टम >> प्रशासन >> के तहत पा सकते हैं alt text
alt text
आप दूसरे स्क्रीनशॉट में देखते हैं कि आप कितने कर्नेल दिखाना चुन सकते हैं? मैं आम तौर पर इसे 1 पर रखता हूं, लेकिन जब मुझे कर्नेल अपग्रेड मिलता है तो मैं इसे पुनरारंभ करने से पहले इसे 2 में बदलता हूं, इसलिए यदि नए कर्नेल को मेरे हार्डवेयर में समस्या है तो मैं पुराने कर्नेल का चयन कर सकता हूं। एक बार जब मुझे पता चले कि नया कर्नेल अच्छी तरह से काम कर रहा है तो मैं इसे 1 में बदल देता हूं।


41



दरअसल, स्टार्टअपमेनर डिन मुझे उबंटू 10.04 पर इस तरह की एक खिड़की देता है, इसके बजाय उसने दो टैब -> बूट विकल्प और उन्नत .. के साथ एक खिड़की दी है और उन्नत में इसके पास कर्नेल की संख्या को सीमित करने का विकल्प है। तो कृपया उबंटू 10.04 के लिए उत्तर अपडेट करें। (और यही कारण है कि मैंने इसे नीचे वोट दिया ..) - Sen
किसी भी विचार को "मशीनों को रखने की संख्या" को उस मशीन पर परिभाषित किया जा सकता है जिसमें कोई GUI इंस्टॉल नहीं है (सर्वर)? - sylvainulg
स्टार्टअपमेनर पुराना है। देख grup-अनुकूलक है - muhasturk


शुद्ध रूप से कमांडलाइन, यह सभी वर्तमान और दूसरे सबसे वर्तमान (नीचे "हेड कमांड में" -2 "के माध्यम से हटा देगा):

OLD=$(ls -tr /boot/vmlinuz-* | head -n -2 | cut -d- -f2- |
    awk '{print "linux-image-" $0 " linux-headers-" $0}' )
if [ -n "$OLD" ]; then
    apt-get -qy remove --purge $OLD
fi
apt-get -qy autoremove --purge

38



से एक लाइनर क्या आप वहां मौजूद हैं: dpkg -l linux-* | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e [0-9] | xargs sudo apt-get -y purge - Dmitry Verkhoturov
@DmitryPaskal, आपको इसे एक नए उत्तर के रूप में जोड़ना चाहिए। - saji89
@DmitryPaskal हमेशा के रूप में, उन्हें समझने के बिना इन्हें कॉपी-पेस्ट न करें। मेरी मशीन पर यह एक लाइनर भी मेल खाता है linux-libc-dev:amd64 जिसे हटाया नहीं जाना चाहिए। - jamesadney
@ किस कुक, क्या अजीब तर्क केवल एकल-उद्धरण से घिरा नहीं होना चाहिए? यदि आपका इरादा पाइप लाइनों में "लिनक्स-छवि-" को प्रीपेड करना है, तो यह केवल तभी काम करता है जब आप इसका उपयोग करते हैं awk '{print "linux-image-" $0}'। - Mark
यह मेरे लिए काम नहीं करता है, इसमें मेरा कस्टम इंस्टॉल कर्नेल शामिल है (उबंटू 14.04 3.17 के साथ) - Alex R


अद्यतन करें: purge-old-kernels है पदावनत आजकल।

मैंने मुश्किल परिस्थितियों में भी कर्नल को शुद्ध करने के लिए एक स्क्रिप्ट बनाई। यह कहा जाता है linux-purge और आप इसे पा सकते हैं यहाँ

यदि आप केवल कर्नेल (और संबंधित संकुल) को शुद्ध करना चाहते हैं जो वर्तमान में प्रयुक्त कर्नेल से पुराने हैं, जब सिस्टम टूटा नहीं जाता है, तो आप इसका उपयोग कर सकते हैं यह स्क्रिप्ट

एक उबंटू दस्तावेज़ीकरण पृष्ठ भी है जिसे मैंने पुराने कर्नेल को हटाने में योगदान दिया है यहाँ


34



जैसा दिखता है purge-old-kernels बाइकहेड के सटीक संस्करण (1.22) में नहीं है। क्या सटीक के लिए हालिया बाइकहेड प्राप्त करने का कोई उचित / सुरक्षित तरीका है? या स्क्रिप्ट स्थापित करने के लिए यह आसान / सुरक्षित होगा? निर्भरता की लंबी सूची के बावजूद, मैं एक रेपो का उपयोग करना पसंद करूंगा .. - drevicko
@ ड्रेविको देखें यहाँ। - jarno
एक और थोड़ा स्पर्शपूर्ण प्रश्न: स्रोत पर जाने से कम, क्या यह निर्धारित करने का कोई तरीका है कि बाइकहेड इंस्टॉल करते समय कौन से आदेश उपलब्ध हो जाते हैं? - drevicko
@drevicko, यकीन है, dlocate -lsbin bikeshed - jarno
@ ड्रेविको, यह भी देखें एक और प्रश्न - jarno