मेरा / बूट विभाजन 100% हिट हुआ और अब मैं अपग्रेड नहीं कर सकता। कमरा बनाने के लिए पुरानी गुठली नहीं निकाल सकते


154

मेरा पहला मुद्दा था जब मैंने apt-get updateया करने की कोशिश की apt-get upgrade। उन्नयन पर मुझे निम्नलिखित त्रुटि मिलती है:

You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
linux-image-server : Depends: linux-image-3.2.0-27-generic but it is not installed
E: Unmet dependencies. Try using -f.

मैंने apt-get install -f चलाने की कोशिश की और यह आउटपुट था (प्रॉम्प्ट पर हां कहने के बाद)

(Reading database ... 186183 files and directories currently installed.)
Unpacking linux-image-3.2.0-27-generic (from .../linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb) ...
Done.
dpkg: error processing /var/cache/apt/archives/linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb (--unpack):
 failed in write on buffer copy for backend dpkg-deb during `./boot/System.map-3.2.0-27-generic': No space left on device
 No apport report written because the error message indicates a disk full error
                                                                          dpkg-deb:    error: subprocess paste was killed by signal (Broken pipe)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-27-generic   /boot/vmlinuz-3.2.0-27-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic
Errors were encountered while processing:
/var/cache/apt/archives/linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

मैंने दौड़ने की कोशिश की apt-get autoremoveऔर यह मुझे उसी तरह की त्रुटि देता है जैसे कि apt-get upgrade

जब मैं दौड़ता हूं df, मुझे यह मिलता है /boot:

/dev/sda1                    233191     230297         0 100% /boot

इसलिए, मैंने कहीं और पढ़ा है कि मुझे पुरानी गुठली को शुद्ध करने की कोशिश करनी चाहिए। मैंने किस गुठली की जाँच की:

$ dpkg -l linux-image-\* | grep ^ii
ii  linux-image-2.6.38-13-server  2.6.38-13.52  Linux kernel image for version 2.6.38 on x86_64
ii  linux-image-3.0.0-13-server   3.0.0-13.22   Linux kernel image for version 3.0.0  on x86_64
ii  linux-image-3.0.0-14-server   3.0.0-14.23   Linux kernel image for version 3.0.0  on x86_64
ii  linux-image-3.0.0-15-server   3.0.0-15.26   Linux kernel image for version 3.0.0  on x86_64
ii  linux-image-3.0.0-16-server   3.0.0-16.29   Linux kernel image for version 3.0.0  on x86_64
ii  linux-image-3.0.0-17-server   3.0.0-17.30   Linux kernel image for version 3.0.0  on x86_64
ii  linux-image-3.2.0-24-generic  3.2.0-24.39   Linux kernel image for version 3.2.0  on 64 bit x86 SMP
ii  linux-image-3.2.0-25-generic  3.2.0-25.40   Linux kernel image for version 3.2.0  on 64 bit x86 SMP
ii  linux-image-3.2.0-26-generic  3.2.0-26.41   Linux kernel image for version 3.2.0  on 64 bit x86 SMP

जब मैं इसके साथ सबसे पुराना हटाने की कोशिश करता हूं:

$ sudo apt-get purge linux-image-2.6.38-13-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
linux-image-server : Depends: linux-image-3.2.0-27-generic but it is not going to be     installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

मैं अपने इंस्टॉलेशन को गड़बड़ किए बिना बूट को मुफ्त या विस्तारित कैसे कर सकता हूं?


मुझे लगता है कि @ mreiter का उत्तर सबसे अच्छा हो सकता है: यह पैकेज प्रबंधक का उपयोग करता है, और यह तब काम करता है जब अन्य पैकेज प्रबंधक कमांड विफल रहे, कम से कम मेरे लिए: askubuntu.com/a/205776/247661
हारून हॉल


1
@dskrvk हां! Remove-Unused-Dependenciesडिफ़ॉल्ट क्यों नहीं है?
स्टीवन आर। लूमिस

जवाबों:


129

रूट फाइल सिस्टम पर स्पेस खाली करना

रूट फ़ाइल सिस्टम पर स्थान खाली करने के लिए आप निष्पादित करने का प्रयास कर सकते हैं apt-get clean

यदि वह काम नहीं करता है तो आप जा सकते हैं /var/cache/apt/archivesऔर मैन्युअल रूप से कैश से कुछ फ़ाइलों को हटाकर कुछ स्थान वापस प्राप्त कर सकते हैं, जैसे:

sudo rm linux-headers-*

.debअगर आपको जरूरत है - तो यहां सभी फाइलों को हटाने के लिए यह चोट नहीं पहुंचेगी apt-get cleanaptयदि वे फिर से आवश्यक हैं, तो वे स्वचालित रूप से फिर से डाउनलोड हो जाएंगे ।

/ बूट फ़ाइल सिस्टम पर स्पेस खाली करना

मूल पोस्टर का एक अलग /bootविभाजन है, और वह वही है जो पूर्ण है और aptसिस्टम को काम करने से रोक रहा है। उसके लिए यह जरूरी होगा कि वह वहां जगह खाली करे।

यदि लगभग पर्याप्त जगह है, तो /bootएक विन्यास फाइल या दो को निकालें और निकालें:

sudo rm config-3.2.0-19-generic-pae

उदाहरण के लिए, लेकिन कर्नेल संस्करणों में से एक के नाम का उपयोग करके आप वैसे भी हटाने का इरादा रखते हैं। यह थोड़ी जगह (लगभग 144K एपल) को मुक्त करेगा।

यदि आपको व्यक्तिगत रूप से पुराने vmlinuz, और फ़ाइलों को हटाने के लिए अधिक स्थान की आवश्यकता है initrd, जब तक आपके पास पर्याप्त स्थान नहीं है (मेरे i386 कर्नेल संस्करणों में से एक के लिए लगभग 22M)।abiSystem.map

जो कुछ भी आप करते हैं, उन सब को दूर न करें । आपको कम से कम प्रत्येक प्रकार की फ़ाइल के लिए नवीनतम दो मिलान वाले संस्करणों को रखना चाहिए, प्रत्येक प्रकार के कर्नेल का उपयोग करें।

फिर अपने apt-get install कमांड के साथ आगे बढ़ें। जैसा कि ऊपर उल्लेख किया गया है कि उन्हें आपके द्वारा हटाए गए कुछ डेब्स को फिर से डाउनलोड करना पड़ सकता है, लेकिन यदि ऐसा स्वचालित रूप से होगा। जब आपके पास फिर से काम करना होता है, तो आपके द्वारा हटाए गए फ़ाइलों के अनुरूप पैकेज को हटाने के लिए apt-get का उपयोग करके सफाई करें - इसलिए सब कुछ मेल खाता है।


कॉन्फ़िगरेशन फ़ाइल /bootकर्नेल कॉन्फ़िगरेशन है जिसका उपयोग कर्नेल टीम द्वारा उसी नाम के कर्नेल के निर्माण के लिए किया गया था । इसे हटाने के लिए हानिरहित होना चाहिए जब तक कि आप इसे संदर्भ के लिए नहीं चाहते हैं या अपनी खुद की गुठली बनाने में आपकी सहायता नहीं करते हैं।

अंत में आप मैन्युअल रूप से एक पुराने कर्नेल पैकेज या /bootविभाजन से दो को निकाल रहे हैं ताकि नए के लिए और अधिक जगह बन सके।


मैंने लगभग सभी कॉन्फिग्स को हटाने की कोशिश की। यह अभी भी पर्याप्त स्थान नहीं लगता है। वहाँ क्या अन्य फ़ाइलों को हटाने के लिए सुरक्षित होगा? मेरा रूट फाइल सिस्टम कहीं भी पूर्ण नहीं है, इसलिए मैं इसके बारे में चिंतित नहीं हूं।
Strifey16

मैंने हाथ से निकालने के लिए आगे की फाइलों के साथ अपना जवाब अपडेट किया। यह मुझे लगता है कि 3.0.0.13 और 3.0.0.14 सेट (अबी फ़ाइल सहित सेट पर पांच फाइलें) को हटाने से पर्याप्त होगा।
जॉन एस ग्रुबर

2
यह तय कर दिया। मैंने महसूस किया कि यह शायद हाथ से फाइलें निकालने के लिए नीचे आ जाएगा, लेकिन मैं हमेशा से ऐसा करने में संकोच कर रहा हूं कि कुछ भी एप द्वारा स्थापित किया गया है, इसलिए मैंने सोचा कि मैं यहां पहले पूछूंगा।
Strifey16

9
sudo rm/ बूट से निकालने के लिए उपयोग न करें । इसके बजाय, sudo dpkg --purgeकुछ पुराने लिनक्स-इमेज पैकेज को हटाने के लिए उपयोग करें। इसके बाद sudo apt-get -f installटूटी हुई निर्भरता को ठीक करने के लिए उपयोग करें।
जारो

4
हालांकि कुछ समय प्रणाली इतनी भरी हो सकती है कि dpkg भी काम नहीं कर सकती है। लेकिन rmतब इस्तेमाल किया जा सकता है।
जर्नो

66

मेरे मामले में, aptकमांड और dpkgकमांड समाप्त नहीं कर सकते थे, और नहीं हटा सकते थे। स्वतः संस्थापन स्थापित करने में विफल हो गया था 2.6.32-56-server

मेरा पहला कदम, इस्तेमाल होने वाली जगह की पहचान करना था,

cd /boot
du -sk *|sort -n

मेरे पास लगभग 30 कर्नेल और सहायक फाइलें थीं।

मैंने एक uname -aरनिंग कर्नेल प्राप्त करने के लिए किया, मैंने पहचाना कि मैं लिनक्स वैकल्पिक पर था 2.6.32-43-serverऔर tarउन 6 संस्करणों में से एक था जो नहीं चल रहे थे, और पुराने थे।

tar -cvf ~username/boot.tar *2.6.32-44-server *2.6.32-45-server *2.6.32-46-server *2.6.32-47-server *2.6.32-48-server *2.6.32-49-server

मैंने तब किया था rm -rfजो मैंने वापस किया था:

rm -rf *2.6.32-44-server *2.6.32-45-server *2.6.32-46-server *2.6.32-47-server *2.6.32-48-server *2.6.32-49-server

मैं इन आदेशों को उदाहरण के रूप में दिखा रहा हूं, आपको यह तय करना होगा कि आप अपनी स्थिति के लिए क्या काम करेंगे।

अब जबकि मेरे पास कुछ जगह थी /boot, मैं दौड़ने में सक्षम था

apt-get -f install 

की असफल स्थापना को साफ करने के लिए 2.6.32-56-server

मैंने तब ए

apt-get remove linux-headers-2.6.32-38 linux-headers-2.6.32-38-server linux-image-2.6.32-38-server
apt-get remove linux-headers-2.6.32-39 linux-headers-2.6.32-39-server linux-image-2.6.32-39-server

इससे मुझे वह जगह मिल गई जो मैंने वापस कर दी थी।

tar -xf ~username/boot.tar
rm  ~username/boot.tar    

सफाई करने के लिए, मैं तब भाग सकता था:

apt-get autoremove

मैंने रिबूट किया और अब 4% का उपयोग करने के लिए नीचे हूं /boot


यह मेरे लिए सभी सुझावों में से सबसे अधिक उपयोगी था। आपका बहुत बहुत धन्यवाद!
जोशुआ एफ। राउन्ट्री

फ़ाइलों को हटाने / बूट से भयानक रूप से apt और dpkg टूट जाता है क्योंकि फाइल के गुम होने पर स्क्रिप्ट स्थापित और हटाने की स्क्रिप्ट HARD विफल हो जाती है। मैं नहीं देखता कि आपको यह कैसे काम करना है।
22x पर FizxMike

20

आप पुरानी गुठली निकालने के dpkgबजाय उपयोग कर सकते हैं apt-get:

sudo dpkg -r linux-image-3.2.0-29-generic

हो सकता है कि इसका उपयोग करने के लिए उपद्रव हों, लेकिन @ mreiter के सुझाव ने मेरे लिए काम किया जब यह (यह एक ubuntu के IRC समर्थन चैनल पर नहीं सुझाया गया था।)
हारून हॉल

3
@AaronHall इस उत्तर में mreiter के उत्तर (अंतिम पंक्ति) का मुख्य भाग है और यह बहुत छोटा है क्योंकि यह हेडर की सफाई को कवर नहीं करता है (जो अलग /bootविभाजन के मामले में मदद नहीं करता है )।
मेलेबियस

9

मैंने देखा कि बूट निर्देशिका में अभी भी पुराने संस्करणों की कुछ फाइलें थीं:

$ ls /boot
vmcoreinfo-2.6.31-17-server

और पैकेज प्रबंधक पुराने संस्करणों को सूचीबद्ध करेगा:

dpkg -l | grep linux-image

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

sudo apt-get purge linux-image-2.6.31-17-server

मेरे पास अभी भी कुछ हेडर बचे थे:

dpkg -l | grep linux-headers

तो मैंने ऐसा किया:

sudo apt-get purge linux-headers-2.6.32-34

अंत में एक पैकेज बचा था, जिसे मैं हटा नहीं सकता था:

$ dpkg -l | grep linux-image
rc  linux-image-2.6.28-11-server

स्रोत: dpkg द्वारा rc के रूप में चिह्नित पैकेज को निकालें

sudo dpkg --purge linux-image-2.6.28-11-server

3

के उपयोग की जाँच /var/tmpके साथ du -sh /var/tmp/। स्थान बनाने के लिए उस फ़ोल्डर की सभी फ़ाइलों को हटाया जा सकता है।

फिर आप पुरानी गुठली निकालने के लिए निम्नलिखित चला सकते हैं:

sudo apt-get clean
sudo apt install byobu
sudo purge-old-kernels
sudo apt autoremove
sudo update-grub

क्या करता है /var/tmpपुराने कर्नेल साथ क्या करना है? और यह सब कुछ हटाने के लिए हमेशा सुरक्षित नहीं होता है /var/tmp...
फॉस्क्लिनक्स

3

यह वही है जो मैंने इस्तेमाल किया:

sudo apt-get autoremove linux-image-xxxx

सभी पुरानी गुठली के लिए ऐसा करें और केवल सबसे हाल के दो को रखें।

यदि आप पुरानी कर्नेल को स्वचालित रूप से निकालना चाहते हैं और GRUB को अपडेट करते हैं, तो इसे देखें: उबंटू प्रलेखन


2
यह स्वीकृत उत्तर होना चाहिए। यदि आपको सब कुछ साफ करने में कोई आपत्ति नहीं है, तो आपको लिनक्स इमेज को निर्दिष्ट करने की भी आवश्यकता नहीं है।
साइबरएड

2

मैंने पाया कि मेरे लिए काम करने वाली एकमात्र चीज एप्टीट्यूड का उपयोग कर रही थी।

sudo aptitude

फिर जब यह खुलता है तो आमतौर पर नीचे की तरफ बिना निर्भरता के कुछ कहा जाएगा। gसुझाए गए निष्कासन के साथ आगे बढ़ने के लिए आप पत्र को हिट कर सकते हैं । यह आपको एक पृष्ठ पर ले जाएगा जहां यह सूचीबद्ध करता है कि क्या होने जा रहा है।

-टूटी हुई गुठली के बगल में एक माइनस होना चाहिए । gफिर से दबाएं और यह टूटी हुई गुठली को हटा देगा। qछोड़ने के लिए दबाएँ । फिर आपको sudo apt-get autoremoveपुरानी गुठली से छुटकारा पाने और खाली जगह का उपयोग करने में सक्षम होना चाहिए ।


1
यह केवल मान्य उत्तर है। अन्य सभी उत्तरों ने काम नहीं किया, क्योंकि पैकेज प्रबंधक कुछ भी हटाने से पहले पैकेज को स्थापित करना चाहता था।
मचिनडाईक्ट

2

आप पैकेज पर कार्य नहीं कर सकते, लेकिन आप अन्य फ़ाइलों पर कार्य कर सकते हैं। सबसे पहले, अपने होम फोल्डर पर जाएं और देखें कि क्या कुछ है जिसे आप हटा सकते हैं। यदि नहीं, तो अच्छी मात्रा में फ़ाइलों को किसी अन्य पार्टीशन (या फ्लैश ड्राइव) में ले जाने की कोशिश sudo apt-get install -fकरें और फिर पैकेज निर्भरता के मुद्दों को साफ करने का प्रयास करें (सबसे अधिक संभावना है कि आप एक .deb फ़ाइल को स्थापित करें dpkg), और फिर किसी भी पुराने कर्नेल को शुद्ध करें। एक बार जब आपके पास सुरक्षित रूप से कम से कम 10 एमबी हो, तो अनावश्यक सॉफ्टवेयर या फ़ाइलों को शुद्ध करने का प्रयास करें।


5
होम फोल्डर / बूट में नहीं है
Thorbjørn Ravn Andersen

1

Synaptic Package Manager का उपयोग करें। जिस पैकेज को आप हटाना चाहते हैं, उसे चुनें और यह आपको उन पैकेजों को हटाने के लिए भी प्रेरित करेगा जो इस पर निर्भर हैं। मेरे अनुभव में, कर्नेल पैकेज हमेशा दो (या अधिक, आप कैसे गिनती करते हैं) पर निर्भर करता है जो कि अन्योन्याश्रित हैं। आप आमतौर पर "स्थानीय / अप्रचलित" फ़िल्टर का उपयोग करके पुराने को जल्दी से पा सकते हैं।


2
जैसे (केवल-पाठ) सर्वर पर, कोई Synaptic नहीं है। तो वास्तव में सर्वरों के लिए एक व्यवहार्य समाधान नहीं है।
nerdoc

1

मैं समय-समय पर इस मुद्दे से लड़ता रहा हूं, और अभी भी ऐसा कोई समाधान नहीं देखा है जो वास्तव में पूर्ण काम करता हो। कुछ मामलों में, पुरानी गुठली निकालने पर निर्भरता समाप्त हो जाती है जो मुझे कुछ भी निकालने से रोकती है और मुझे कर्नेल को मैन्युअल रूप से / बूट से निकालना था। हालाँकि, मैं अभी भी पूर्ण काम करना चाहता था क्योंकि मुझे लगता है कि मैन्युअल रूप से हटाए गए गुठली को कहीं और लॉग किया जाता है और भविष्य की समस्याओं का कारण बन सकता है, जब कुछ रिपोर्ट फाइलों के गुम होने की वजह से फाइलों पर rm -rf कर बैठते हैं।

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

स्क्रिप्ट यह पता लगाती है कि क्या गुठली को जबरदस्ती हटाना है जो पूरी तरह से निर्भरता के कारण अटक गया है, अगर यह इसे "सही" तरीके से कर सकता है तो ओ.टी.

#!/bin/bash

ipv4="-o Acquire::ForceIPv4=true"

if [ "$1" = "4" ] ; then
    withip=$ipv4
    echo "Going IPv4 ($withip)"
fi

echo "Autoremove+Purge."
apt-get $withip -y -f autoremove --purge >/dev/null 2>&1

if [ "$?" != "0" ] ; then
    echo "Auto Removal Failed!"
fi

echo "Old dependency fix."
apt-get $withip -f -y install >/dev/null 2>&1

if [ "$?" != "0" ] ; then
    echo "That failed. So we'll try to make up to it during this process."
fi

echo "Now, going old kernel cleanup!"
kern=$(dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`)
hadErrors=0

for k in $kern
do
    echo apt-get -y purge $k
    apt-get $withip -y purge $k >/dev/null 2>&1

    if [ "$?" != "0" ] ; then
        echo "Failed apt-purge... Using plan B (--force-all -P)..."
        dpkg --force-all -P $k >/dev/null 2>&1
        echo "Rerunning stuff (apt-get -f -y install) for dependencies..."
        apt-get $withip -f -y install >/dev/null 2>&1
        if [ "$?" != "0" ] ; then
            echo "Still failing..."
            hadErrors=1
        fi
    fi
done

if [ "$hadErrors" = "1" ] ; then
    echo "I had errors. I should rerun this process, to see if there are more kernels that were left out after cleanup..."
    /usr/local/tornevall/cleankernel
fi

apt-get $withip autoremove
apt-get $withip update
apt-get $withip upgrade
apt-get $withip dist-upgrade

grb=$(which update-grub)
if [ "" != "$grb" ] ; then
    update-grub
else
    echo "Can't upgrade grub since update-grub is missing..."
fi

क्या आपने linux-purge ट्राई किया ? यह वर्तमान में उस बल IPv4 बात नहीं है, हालांकि।
जर्नो

आपकी स्क्रिप्ट मेरे सिस्टम में लिनक्स-इमेज-जेनेरिक को शुद्ध करेगी, जो खराब है।
जर्नो

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

0

बस दौड़ने से sudo apt-get -f autoremoveमेरी समस्या हल हो गई।


2
क्या आपके पास 100% डिस्क स्थान / बूट का उपयोग था?
फॉस्क्लिनक्स

मेरे निगरानी इतिहास को देखते हुए, यह प्रतीत नहीं हुआ। पुनश्च: मैं वैग्रेंट क्सीनल पर हूं, और मेरा बूट फाइल सिस्टम /dev/sda1चालू है/
forzagreen

0

इसे चलाओ:

sudo apt-get autoremove
sudo apt-get --purge remove && sudo apt-get autoclean
sudo apt-get -f install
sudo dpkg-reconfigure -a

स्रोत: मुझे यह त्रुटि उठने के बाद मिली है। कृपया सहायता कीजिए


sudo dpkg-reconfigure -a क्या करता है? उबंटू 16 पर इसका अज्ञात विकल्प -a कहते हैं
शिवम कोतवालिया

इस सवाल के लिए, aptकर्नेल पैकेज को हटाने में विफल हो जाएगा क्योंकि हटाने की प्रक्रिया खुद ही फाइलों को उत्पन्न करती है /boot, जो पहले से ही भरा हुआ है। इसीलिए apt-get autoremoveविफल हो जाता है। आप जिस प्रश्न की तलाश कर रहे हैं वह askubuntu.com/q/142926/158442 है , जो पहले से ही autoremoveसूचीबद्ध है।
मुरहू

@ ममरू मैंने सिर्फ इसलिए पोस्ट किया क्योंकि इसने मेरे लिए यह काम किया: D
Ardi Nusawan

मुझे यकीन है कि यह किया है, मैं जो कह रहा हूं वह यह है कि आपकी समस्या दूसरा प्रश्न होगी, यह नहीं।
मूरू

@ मुरु ओह ओके मिल गया: D
Ardi Nusawan

0

मैंने कुछ लेखों को देखा है / बूट भरा हुआ है जो dpkg द्वारा पुराने लिनेक्स गुठली को शुद्ध करके हल नहीं किया गया है, क्योंकि apt-get -f install या apt-get -f autoremov e kernels को पुनः स्थापित करता है।

मेरे मामले में, कम से कम, हस्ताक्षरित और अतिरिक्त पैकेजों को भी हटाने की आवश्यकता थी - गुठली इन पैकेजों के लिए निर्भरता थी इसलिए उपयुक्त ने उन्हें पुनः स्थापित किया। आम तौर पर, संबंधित कर्नेल पैकेजों को 'इंस्टॉल' कहने से पहले शुद्ध किया जाना चाहिए। यदि आपने शुद्ध होने के बाद सही तरीके से अपग्रेड प्राप्त करने का प्रयास किया है , तो त्रुटि संदेश में कहा जाना चाहिए कि किन पैकेजों में कर्नेल की एक निर्भरता थी, जो आपने अभी-अभी शुद्ध की थी।

मेरे मामले में, निम्नलिखित रणनीति ने काम किया:

#as sudo, repeat 1-3 for any old kernels; can be scripted
dpkg --force-all -P linux-image-4.4.0-112-generic 
dpkg --purge linux-image-extra-4.4.0-112-generic
dpkg --purge linux-signed-image-4.4.0-112-generic
apt-get -f install #dependency resolution didn't have work to do for kernel packages
apt-get autoremove --purge -f 
apt-get autoclean
apt-get upgrade

0

इस तरह से linux-purge टूल इंस्टॉल करें ।

फिर टर्मिनल में दौड़ें:

sudo linux-purge --clear-boot --fix

फिर उदाहरण के लिए गुठली को हटा दें

sudo linux-purge --keep 1 --choose

अतिरिक्त:

यदि आप इसके लिए बिना उपयोग किए गए अपग्रेड का उपयोग करने के बजाय अनअटेंडेड कर्नेल निष्कासन के लिए लिनक्स-पर्ज का उपयोग करना चाहते हैं, तो आपको /etc/apt/apt.conf.d/50unattended-upgrades को एडिट करके अप्रयुक्त सामान को हटाना चाहिए और एक सिस्टमड सर्विस सेट करना चाहिए। क्रियान्वित

/usr/local/bin/linux-purge --auto-only --keep 1 --yes

जब भी आप चाहते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.