गलत डिस्क पूर्ण त्रुटि: उपयुक्त-स्थापित या हटाने में असमर्थ


24

मेरे Ubuntu 12.04 सर्वर को अपग्रेड करते समय मुझे निम्न त्रुटि का सामना करना पड़ा। अब apt-getकिसी भी पैकेज को स्थापित या हटाने में असमर्थ है।

अनपैकिंग लिनेक्स-हेडर-3.13.0-62 (से ... / लिनेक्स-हेडर-3.13.0-62_3.13.0-62.102 ~ exact1_all.deb) ...
dpkg: त्रुटि प्रसंस्करण /var/cache/apt/archives/linux-headers-3.13.0-62_3.13.0-62.102~precise1_all.deb (--unpack):
 '/usr/src/linux-headers-3.13.0-62/arch/arm/include/asm/ptrace.h.dpkg-new' बनाने में असमर्थ 
(प्रक्रिया करते समय `./rr/src/linux-headers-3.13.0-62/arch/arm/include/asm/ptrace.h '): डिवाइस पर कोई स्थान नहीं छोड़ा गया है 
कोई त्रुटि रिपोर्ट नहीं लिखी गई क्योंकि त्रुटि संदेश एक डिस्क को इंगित करता है पूरी त्रुटि
 dpkg-deb: त्रुटि: उपप्रकार पेस्ट को संकेत द्वारा मार दिया गया (टूटा हुआ पाइप)
प्रसंस्करण के दौरान त्रुटियां सामने आई थीं:
 /var/cache/apt/archives/linux-headers-3.13.0-62_3.13.0-62.102~precise1_all.deb
E: उप-प्रक्रिया / usr / bin / dpkg ने एक त्रुटि कोड लौटाया (1)

हालाँकि मैं वास्तव में डिस्क स्थान से बाहर नहीं हूँ,

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       6.8G  4.7G  1.8G  69% /  

किसी भी तरह मेरी जड़ें भरी हैं,

# df -i
Filesystem     Inodes   IUsed  IFree IUse% Mounted on
/dev/sda1      458752  455214   3538  100% /

मेरे पास दस से अधिक पुरानी गुठली हैं, लेकिन मैं उन लोगों को हटाने में असमर्थ हूं, क्योंकि मेरी apt-getखुद की लंगड़ी है। इसलिए मैं इस पोस्ट का पालन करने में असमर्थ हूं जो इसी तरह की समस्या की रिपोर्ट करता है।

एकमात्र विकल्प कुछ पुराने कर्नेल को मैन्युअल रूप से हटाने के लिए लगता है। क्या यह किसी भी समस्या का कारण होगा?

क्या कोई बेहतर तरीका है? क्या मैं समय के लिए रूट के लिए आरक्षित स्थान का उपयोग कर सकता हूं और पुरानी गुठली निकाल सकता हूं ?


1
वास्तव में मैंने /usr/srcस्थिति से छुटकारा पाने के लिए पुरानी गुठली के जोड़े को मैन्युअल रूप से हटा दिया । सौभाग्य से सब कुछ ठीक हो गया और aptफिर से काम करना शुरू कर दिया। लेकिन मैं आपसे निवेदन करूंगा कि किसी प्रोडक्शन मशीन पर इस तरह का काम करने से पहले उसे वापस ले लें। मैंने इसे एक वर्चुअल मशीन पर किया, जिसमें पूरा बैकअप था।
13

यह काम करता हैं! मैंने यहाँ (ubutu 14.04.1) कर्नेल 4.4.0-51-जेनेरिक को अद्यतन करने के लिए वही किया। मुझे यकीन नहीं है कि यह भविष्य में किसी भी समस्या का कारण होगा। धन्यवाद।
मोरेनो

जवाबों:


36

मुझे पता है कि यह पोस्ट थोड़ी पुरानी है, लेकिन मुझे यहाँ किसी के लिए एक उत्तर मिला, जो इस पोस्ट पर ठोकर खा सकता है: https://help.ubuntu.com/community/RemoveOldKernels

इस मामले में लिंक टूटा है, यहाँ प्रासंगिक स्निपेट है:

पुरानी गुठली को सुरक्षित रूप से निकालना

LVM सिस्टम, एन्क्रिप्टेड सिस्टम या सीमित-स्टोरेज सिस्टम के उपयोगकर्ताओं के लिए, सबसे अधिक समस्या यह है कि / boot विभाजन बस भरा हुआ है। पैकेज प्रबंधक जगह की कमी के कारण लंबित अपग्रेड को स्थापित नहीं कर सकता है। इसके अलावा, apt-get टूटी हुई निर्भरता के कारण पैकेज को नहीं निकाल सकता है।

यह समस्या शेल से जल्दी और आसानी से तय की जा सकती है। बस मैन्युअल रूप से निकालने के लिए एक या दो पुराने गुठली की पहचान करें, जो कतार प्रबंधक को कतारबद्ध उन्नयन को स्थापित करने के लिए पर्याप्त स्थान प्रदान करेगा।


$ sudo rm -rv ${TMPDIR:-/var/tmp}/mkinitramfs-*  
                                  ## In Ubuntu 16.04 and earlier there may be leftover temporary
                                  ## files to delete.
                                  ## See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=814345

$ uname -r                        ## This command identifies the currently-running kernel
4.2.0-21-generic                  ## This is the current kernel.
                                  ## DO NOT REMOVE it!

$ dpkg -l | tail -n +6 | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)
                                  ## This command lists all the kernels excluding the booted
                                  ## kernel in the package database, and their status.
rc  linux-image-4.2.0-14-generic  ## The oldest kernel in the database
                                  ## Status 'rc' means it's already been removed
ii  linux-image-4.2.0-15-generic  ## The oldest installed kernel. Eligible for removal.
                                  ## Status 'ii' means Installed.
ii  linux-image-4.2.0-16-generic  ## Another old installed kernel. Eligible for removal
ii  linux-image-4.2.0-18-generic  ## Another old installed kernel. Eligible for removal
ii  linux-image-4.2.0-19-generic  ## The previous good kernel. Keep
iU  linux-image-4.2.0-22-generic  ## DO NOT REMOVE. Status 'iU' means it's not installed,
                                  ## but queued for install in apt.
                                  ## This is the package we want apt to install.

                                  ## Purge the oldest kernel package using dpkg instead of apt.
                                  ## First you need to remove the image initrd.img file manually
                                  ## due to Bug #1678187.
$ sudo update-initramfs -d -k 4.2.0-15-generic
$ sudo dpkg --purge linux-image-4.2.0-15-generic linux-image-extra-4.2.0-15-generic
                                  ## If the previous command fails, some installed package
                                  ## depends on the kernel. The output of dpkg tells the name
                                  ## of the package. Purge it first.

                                  ## Also purge the respective header package.
$ sudo dpkg --purge linux-headers-4.2.0-15-generic
                                  ## Try also purging the common header package.
$ sudo dpkg --purge linux-headers-4.2.0-15
                                  ## Do not worry, if the previous command fails.

$ sudo apt-get -f install         ## Try to fix the broken dependency.

मैंने इसके साथ पीछा किया:

sudo apt-get autoremove --purge

9

मैंने अब स्थिति से बाहर निकलने का रास्ता ढूंढ लिया और कुछ पुरानी गुठली वाले जोड़े को स्थिति से /usr/srcछुटकारा पाने के लिए हटा दिया । सौभाग्य से सब कुछ ठीक हो गया और उपयुक्त ने फिर से काम करना शुरू कर दिया।

उत्पादन मशीन पर पुरानी गुठली निकालने से पहले इसे वापस लेने की अत्यधिक अनुशंसा की जाती है।


किसी भी बेहतर समाधान का अभी भी स्वागत है। मैं इस टिप्पणी को उत्तर के रूप में पोस्ट करता हूं क्योंकि यह किसी की मदद कर सकता है।
souravc

1
कुछ पुराने कर्नेल और भाग हटाया बाद apt-get autoremove और स्थापित कुछ dependacies apt-get -f installमेरी समस्या हल कर ली
Thamaraiselvam

धन्यवाद। मैंने सभी linux- * को हटा दिया, /bootलेकिन उपयोग नहीं किया था dkpgइसलिए अभी भी *-headerफाइलें थीं/usr/src
Dylan Pierce
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.