"वॉल्यूम बूट में केवल 0 बाइट्स डिस्क स्थान शेष है"


32

हाल ही में एक अद्यतन के बाद, मुझे एक चेतावनी मिल रही है:

The volume boot has only 0 bytes disk space remaining

लेकिन मेरे कंप्यूटर में बहुत सारे एचडी स्पेस फ्री हैं। क्या किसी को पता है कि मैं इसे कैसे हल करता हूं। (यदि यह प्रासंगिक है, तो मैं Ubuntu 12.04 के लिए वैकल्पिक इंस्टॉल छवि की संपूर्ण डिस्क एन्क्रिप्शन सुविधा का उपयोग कर रहा हूं)।


यह वास्तव में इस बात पर निर्भर करता है कि आपने अपने मशीन पर उबंटू कैसे स्थापित किया है। क्या आप टर्मिनल में "sudo fdisk -l" कर सकते हैं और जांच सकते हैं कि क्या कोई छोटा विभाजन है जो लगभग भरा हुआ है?
पॉलियस 18ukys

4
बेहतर अभी भी, कृपया उद्धरण चिह्नों के बिना कमांड 'df -H-x tmpfs -x devtmpfs' चलाएं और आउटपुट यहाँ पेस्ट करें।
fabricator4

यह प्रश्न और उत्तर समस्या से संबंधित हैं, और मदद कर सकते हैं।
एलोमेज

जाहिरा तौर पर एन्क्रिप्टेड विभाजन के लिए एक ज्ञात मुद्दा। जवाब पूछें ububuntu.com/a/230942/231504 महान है - मेरे लिए काम करता है। हालाँकि, हालांकि, कृपया ubuntu ट्रैकर में प्रभावित उपयोगकर्ताओं की गिनती बढ़ाएँ
pestophagous

जवाबों:


48

सभी कर्नेल को सूचीबद्ध करने के लिए:
dpkg --get-selections | grep "linux-image-[[:digit:]].*" | tr "\t" ";" | cut -d ";" -f1

परिणाम कुछ इस तरह दिखते हैं:

linux-image-3.19.0-7-generic 
linux-image-3.18.0-13-generic  
linux-image-3.16.0-23-generic

सभी पुराने, केवल पुराने गुठली को नष्ट मत करो!

अगला चलो 3.16 कर्नेल को हटा दें,
sudo apt-get purge linux-image-3.16.0-23-generic

और फिर सिस्टम से सभी अप्रयुक्त पैकेज:
sudo apt-get autoclean && sudo apt-get autoremove


मेरे पास कुछ extraभी हैं, जैसे दोनों linux-image-3.13.0-40-genericऔर linux-image-extra-3.13.0-40-generic। क्या मैं लोगों को हटा सकता हूं extra?
मैड्स स्केजर्न

यह बेहद मददगार था, लेकिन मेरी समस्या को पूरी तरह से हल नहीं कर पाया (एक पुराने कर्नेल को नष्ट करना अभी भी विफल था)। मुझे कुछ पुरानी कर्नेल फ़ाइलों को मैन्युअल रूप से निकालना पड़ा। मैं कुछ बड़े लोगों का उपयोग कर पाया find /boot/ -type f | xargs du | sort -n। मेरे वर्तमान में चल रहे गिरी है 3.13.0-66-generic, इसलिए मुझे लगता है कि करने के लिए संबंधित नष्ट कुछ भी करने के लिए सावधान नहीं हूँ, लेकिन मैं निम्नलिखित को दूर किया: sudo rm /boot/initrd.img-3.13.0-63-generic /boot/initrd.img-3.13.0-65-generic /boot/vmlinuz-3.13.0-65-generic /boot/vmlinuz-3.13.0-63-generic। अंत में, एक पुराने कर्नेल पर पर्स चलाना सफल होता है।
ब्लोंड

4
अगर आपके पास वास्तव में 0 बाइट्स मुफ्त हैं, तो यह काम नहीं करेगा जैसा @blong ने कहा। आपको मैन्युअल रूप से कुछ पुरानी vmlinuz फ़ाइल को पहले निकालना होगा, क्योंकि शुद्ध प्रक्रिया के लिए कुछ फ़ाइलों को बनाने की आवश्यकता होती है और, यदि 0 बाइट्स शेष हैं, तो यह विफल हो जाता है।
पोमार्क

1
मुझे कैसे पता चलेगा कि कौन सी गुठली पुरानी है? मेरा आउटपुट linux-image-4.10.0-42- जेनेरिक linux-image-4.13.0-26- जेनेरिक linux-image-4.13.0-32- जेनेरिक linux-image-4.13.0-37- जेनेरिक linux-image है -4.13.0-38-जेनेरिक linux-image-4.13.0-39-जेनेरिक linux-image-4.13.0-41- जेनेरिक linux-image-4.13.0-43- जेनेरिक linux-image-4.8.0-36 -generic
याकूब

25

कारण वास्तव में पुराने कर्नेल चित्र थे।
सभी को साफ करने के लिए मुझे एक लाइन चलानी थी:

sudo apt-get autoclean && sudo apt-get autoremove

इसने पुरानी गुठली को स्वतः पहचान लिया और उन्हें हटा दिया।


9

हो सकता है कि /bootसमय के साथ अपग्रेड करते समय आपके विभाजन में बहुत सारे कर्नेल संस्करण जमा हो गए हों। यह विभाजन आपके बड़े डिस्क विभाजन (घुड़सवार के रूप में /) से अलग होने की संभावना है । आप /bootइस तरह विभाजन स्थान की जांच कर सकते हैं (लाइन / बूट के साथ देखें):

df -h

पुरानी गुठली निकालने का एक अच्छा पन्ना है ।

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

अधिक विस्तार से निर्देश:

  1. वर्तमान कर्नेल संस्करण प्राप्त करें, जिसे आप रखना चाहते हैं :

    uname -r
    
  2. सभी गुठली की सूची स्थापित करें:

    dpkg -l | grep linux-image-
    
  3. आप जिस गुठली को निकालना चाहते हैं, उस पर उपयुक्त भाग निकालें। नवीनतम पर नहीं ! उदाहरण के लिए:

    sudo apt-get remove linux-image-2.6.32-22-generic
    

अधिक नोट:

  • dpkg -lपैकेज नाम से पहले आपको (कर्नेल) पैकेज की स्थिति बताएगा । उदाहरण के लिए:

    rc  linux-image-3.13.0-39-generic  ...
    ii  linux-image-3.13.0-40-generic  ...
    
    • " आरसी " का मतलब है कि पैकेज को r emoved किया गया है और इसमें सी onfiguration फाइलें हैं। ये आपको किसी और को हटाने की आवश्यकता नहीं है।
    • "ii" का अर्थ है कि पैकेज i nstallation के लिए चिह्नित है और i nstalled है

    इसके आधार पर, आप केवल उन कर्नेल पैकेजों को सूचीबद्ध कर सकते हैं जो स्थापित हैं:

    dpkg -l | grep "ii.*linux-image-"
    

जीयूआई उपकरण उबंटू ट्वीक का उपयोग करके वैकल्पिक समाधान

इंस्टॉल करें और कंप्यूटर Janitor पर जाएं, सिस्टम-> पुराने कर्नेल और सिस्टम-> अनएडेड पैकेज की जांच करें और क्लीन दबाएं।


3

इस स्क्रिप्ट का उपयोग करें ताकि वर्तमान संस्करण और पिछले (पिछले 1 कर्नेल संस्करण) को छोड़कर अन्य सभी पुराने कर्नेल को हटा दें

KERNELMAGES=`ls -lRt /boot/vmlinuz-*| awk -F/ '{print $3}' | grep -v $(uname -r) | sed 1d | sed -e 's/vmlinuz/linux-image/g'`

KERNELHEADERS=`ls -lRt /boot/vmlinuz-*| awk -F/ '{print $3}' | grep -v $(uname -r) | sed 1d | sed -e 's/vmlinuz/linux-headers/g'`

for PURGEKERNEL in `echo $KERNELMAGES $KERNELHEADERS`; do

apt-get autoremove -y && apt-get purge $PURGEKERNEL -y

done

सही काम किया, तब भी जब मैं कमांड लाइन से "पैराडाइस्टसाउब" का जवाब नहीं दे सका।
बुलटियस

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