उन्नयन के समय पर्याप्त डिस्क स्थान नहीं


142

जब मैं कोशिश करता हूं और अपने दैनिक अपडेट करता हूं, तो मुझे सॉफ्टवेयर अपडेटर में त्रुटि होती है। इसे कहते हैं:

The upgrade needs a total of 25.3 M free space on disk `/boot`.
Please free at least an additional 25.3 M of disk space on `/boot`.
Empty your trash and remove temporary packages of former installations 
using `sudo apt-get clean`.

मैंने sudo apt-get cleanटर्मिनल में टाइप करने की कोशिश की , लेकिन मुझे अभी भी संदेश मिला है। मेरे द्वारा पढ़े गए सभी पृष्ठ अनुभवी उबंटू के लिए प्रतीत होते हैं। मैं Ubuntu 12.10 चला रहा हूं। मैं 13.04 में अपग्रेड करना चाहता हूं, लेकिन यह समझिए कि मुझे इन सबसे पहले खत्म करना है।

यह cat /etc/fstabटर्मिनल में टाइप करने से आउटपुट है :

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=fa55c082-112d-4b10-bcf3-e7ffec6cebbc /boot           ext2    defaults        0       2
/dev/mapper/ubuntu-swap_1 none            swap    sw              0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
matty@matty-G41M-ES2L:~$ 

का आउटपुट df -h:

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu-root  915G   27G  842G   4% /
udev                     984M  4.0K  984M   1% /dev
tmpfs                    397M  1.1M  396M   1% /run
none                     5.0M     0  5.0M   0% /run/lock
none                     992M  1.8M  990M   1% /run/shm
none                     100M   52K  100M   1% /run/user
/dev/sda1                228M  222M     0 100% /boot
matty@matty-G41M-ES2L:~$ 

और dpkg -l | grep linux-imageदेता है:

ii linux-image-3.5.0-17-generic 3.5.0-17.28 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-18-generic 3.5.0-18.29 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-19-generic 3.5.0-19.30 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-21-generic 3.5.0-21.32 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-22-generic 3.5.0-22.34 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-23-generic 3.5.0-23.35 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-24-generic 3.5.0-24.37 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-25-generic 3.5.0-25.39 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-26-generic 3.5.0-26.42 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
iF linux-image-3.5.0-28-generic 3.5.0-28.48 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP

1
इसके अलावा, आपके / etc / fstab की सामग्री सहायक हो सकती है। ऐसा क्या लगता है कि एक अलग विभाजन पर बूट किया जाता है।
चक आर

1
जैसे कहते हैं @Githlar अपने fstab हमें अपने HD विभाजन के बारे में जानकारी दे सकते हैं।
ssoto

1
fstab एक फाइल है जिसमें उन विभाजनों की जानकारी होती है जो आपके कंप्यूटर को बूट करने पर माउंट होते हैं। इस फ़ाइल की सामग्री को दिखाने के लिए, cat /etc/fstabकिसी टर्मिनल में टाइप करें । आउटपुट को कॉपी करें और इसे अपने प्रश्न में जोड़ें (आप अपने प्रश्न को संपादित कर सकते हैं)। इसके अलावा, के उत्पादन की प्रतिलिपि बनाएँ df -hऔर dpkg -l | grep linux-image
अला अली

1
आपकी समस्या अंतरिक्ष का उपयोग करके विभाजन linux-image...में सभी अतिरिक्त फाइलें हैं /boot- आपके पास विभाजन पर केवल 6MB मुफ्त है। sudo dpkg -P purge 'older_linux_image_filename'सभी नवीनतम संस्करणों को हटाने के लिए = 3.5.0-28.48 और 3.5.0-26.42 यह आपको अपडेट / अपग्रेड करने की अनुमति देनी चाहिए।
डोगरो

2
मुझे sudo apt-get autoremoveइसे ठीक करने के लिए दौड़ना पड़ा ।
जूम्पी एनआर

जवाबों:


192

नोट: यह उत्तर पुरानी गुठली निकालने के लिए सबसे अच्छा / आसान तरीका प्रदान करने की तुलना में एक 'स्पष्टीकरण' का अधिक होना है। पुरानी गुठली निकालने के सर्वोत्तम / आसान तरीके के लिए, कृपया अन्य उत्तरों की समीक्षा करें।

ठीक है, इसलिए /etc/fstabआपके द्वारा पोस्ट किए गए आउटपुट से , ऐसा लगता है कि आपका /bootविभाजन एक अलग विभाजन पर है, और के आउटपुट से df -h, वह विभाजन भरा हुआ है। इसका कारण यह है कि पुरानी गुठली स्थापित हैं जिनकी आवश्यकता नहीं है; आप बता सकते हैं कि आपके द्वारा dpkg -l | grep linux-imageपोस्ट किए गए आउटपुट को देखकर, जहां आप विभिन्न संस्करणों के साथ एक से अधिक " linux-image " देख सकते हैं । हमें पुराने संस्करणों को हटाने की आवश्यकता है।

सबसे पहले, मैं चाहता हूं कि आप uname -rएक टर्मिनल में कमांड चलाएं , यह आपको वह कर्नेल संस्करण दिखाएगा जो आप वर्तमान में उपयोग कर रहे हैं। हम उस कर्नेल संस्करण को कभी नहीं निकालना चाहते हैं। कमांड कुछ इस तरह से कहेगा । उस नंबर पर ध्यान दें ,! निम्न आदेश मान लेंगे कि आप जिस कर्नेल को चला रहे हैं।3.5.0-26-generic26

पुराने कर्नेल संस्करण को निकालने का कमांड है:

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

... जहाँ x अक्षर संख्याएँ हैं। इसलिए, आपके मामले में, क्योंकि आपके पास बहुत सारे पुराने संस्करण हैं (17, 18, 19, आदि ...), हमें इस कमांड को प्रत्येक संस्करण के लिए चलाना होगा, जैसे:

  • sudo apt-get purge linux-image-3.5.0-17-generic
  • sudo apt-get purge linux-image-3.5.0-18-generic
  • sudo apt-get purge linux-image-3.5.0-19-generic

...और इसी तरह। लेकिन, एक कमांड के माध्यम से यह सब करने का एक तरीका है। आदेश यह है (कम से कम दौड़ मत करो! निम्नलिखित पढ़ें! ):

sudo apt-get purge linux-image-3.5.0-{17,18,19,21,22,23,24}-generic

यह कमांड कोष्ठक में वर्णित संस्करणों को हटा देगा। मैंने निम्नलिखित कारणों से 25, 26 और 28 संस्करण शामिल नहीं किए हैं:

  • 26 को स्पष्ट रूप से शामिल नहीं किया गया क्योंकि वह कर्नेल संस्करण है जो आप वर्तमान में चला रहे हैं! वह संस्करण है जो हमें कमांड से मिला है uname -r, याद है? हम कभी भी उसे हटाना नहीं चाहते हैं!
  • 28 को शामिल नहीं किया गया क्योंकि यह वह है जिसे आपका अपग्रेड अपग्रेड करने की कोशिश कर रहा था (आप iFइसे अगले स्टेटस से बता सकते हैं , जिसका अर्थ है कि यह "आधा कॉन्फ़िगर" है)।
  • 25 को शामिल नहीं किया गया क्योंकि यह आमतौर पर कम से कम एक पुराने संस्करण को छोड़ने के लिए अच्छा अभ्यास है। इसलिए जब से आप 26 वर्ष के हैं, हम 25 रख लेंगे, इसलिए हम इसे ऊपर दिए गए आदेश में शामिल नहीं करेंगे।

इसलिए यदि अंतिम संख्या uname -r26 (या 28, या यहां तक ​​कि 25) है, तो उपरोक्त कमांड को चलाना सुरक्षित है। संकेत मिलने पर अपना पासवर्ड दर्ज करें, और yपूछे जाने पर टाइप करें । यह लाइनों का एक गुच्छा दिखाएगा, और अंततः कमांड प्रॉम्प्ट (आपके मामले में matty@matty-G41M-ES2L:~$), त्रुटियों के बिना आशा के साथ वापस जाएगा । जब यह हो जाए, तब करें df -hऔर आखिरी पंक्ति को देखें, वह जो शुरू होता है /dev/sda1। आपको यह पता लगाना चाहिए कि अब इसमें अधिक स्थान है, और इसका उपयोग किया जाने वाला प्रतिशत 100% से कम है जैसा कि पहले था। अब आप फिर से अपने अपडेट के साथ आगे बढ़ सकते हैं।


1
इसने काम कर दिया!!! बहुत बहुत धन्यवाद! बोनस प्रश्न: जब मैंने पहली बार उबंटू को डाउलोड किया, तो मैंने आकस्मिक रूप से गृह क्षेत्र में "चित्र" फ़ोल्डर को हटा दिया। इसके कारण, पक्ष में कोई "चित्र" टैब नहीं है। मैंने इसके चारों ओर केवल "चित्र" नामक एक फ़ोल्डर बनाकर देखा है, लेकिन यह साइड बार में दिखाई नहीं देता है। क्या आप जानते हैं कि इसे कैसे प्राप्त करें? मैंने क्लिक करने और खींचने की कोशिश की, लेकिन कोई फायदा नहीं हुआ। @ इला
carmatt95

3
आपका स्वागत है! अन्य प्रश्न के लिए, एक और प्रश्न बनाएं और मैं इसका उत्तर दूंगा। इस तरह, जो लोग उस समस्या को खोज रहे हैं वे इसे पा सकते हैं।
अला अली

13
काश, मैं इसे हर बार वापस ले सकता था जब मैं इसे संदर्भित करता हूं ... यह अब तक बहुत कुछ होगा।
सेवंसएसेकैट

4
हाँ, वापस यहाँ फिर से उसी बात का संदर्भ देने के लिए। आपको लगता है कि मैं इसे अब तक याद रखूंगा।
सेवंसेकाट

2
सभी पुरानी गुठली को शुद्ध करने के लिए एक अधिक संक्षिप्त आदेश है:sudo apt-get autoremove --purge
ctrueden

42

आप Ubuntu-Tweak को स्थापित कर सकते हैं। निम्नलिखित चरणों का पालन करें:

टर्मिनल खोलें। कमांड के साथ आवश्यक भंडार जोड़ें:

sudo add-apt-repository ppa:tualatrix/ppa

सॉफ़्टवेयर सूची को कमांड से अपडेट करें:

sudo apt-get update

अंत में, कमांड के साथ Ubuntu टीक स्थापित करें:

sudo apt-get install ubuntu-tweak

उसके बाद, डैश खोलें और "ubuntu tweak" टाइप करें।

और फिर janitorटैब पर जाएं और चयन करें Apps, Personalऔर Systemबक्से की जांच cleanकरें और नीचे दाईं ओर बटन पर क्लिक करें।


9
कमांड लाइन के साथ खिलवाड़ करने और सभी गुठली को हटाने की कोशिश करने से बेहतर है, लेकिन वर्तमान में नहीं जब उनके पास अलग-अलग संस्करण हैं (न केवल -32 अंत में) और साथ ही-पैकेट भी। Ubuntu tweak ने मुझे 5 मिनट बचाए, धन्यवाद!
पोमातु

बहुत अधिक सुविधाजनक।
सईद अमीरी

मैं PPA नहीं जोड़ सकता लेकिन, मैंने प्रॉजेक्ट.deb की वेबसाइट ubuntu-tweak.com
लुइगी सिरी


1
@edwardtorvalds बेशक आप इसे अपने .debपैकेज द्वारा 14.04 और इसके अलावा 14.10 पर PPA को जोड़े बिना स्थापित कर सकते हैं , लेकिन यह सबसे बेहतर नहीं है। इसका कारण यह है कि आप इसे पीपीए के माध्यम से स्थापित करना चाहते हैं क्योंकि यह अपडेट सुनिश्चित करता है।
α atsнιη

17

सभी अप्रयुक्त कर्नेल और हेडर (वर्तमान में चल रहे कर्नेल को छोड़कर) को हटाने के लिए एक त्वरित तरीका @Lekensteyn द्वारा प्रश्न के उत्तर में बताया गया है कि मैं / बूट में अधिक स्थान कैसे मुक्त करूं? :

sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')") 

यह आपको अपग्रेड करने के लिए पर्याप्त जगह खाली कर देनी चाहिए।



3

मेरे होम उबंटू सिस्टम पर मैं उस पोस्ट के समान विधि का पालन करता हूं, लेकिन यह थोड़ा सरल है और कर्नेल हेडर आदि को अधिक स्थान देता है।

  1. मैं जाँचता हूँ कि मैं किस कर्नेल का उपयोग कर रहा हूँ क्योंकि यह उस के साथ हस्तक्षेप नहीं करना अत्यावश्यक है।

    uname -a
    
  2. फिर, मैं सभी कर्नेल संबंधित फ़ाइलों को हटाने के उद्देश्य से / बूट को देखता हूं जो सीधे चलने वाले कर्नेल से संबंधित नहीं हैं । यह मुझे उन सभी कर्नेल संस्करणों की एक सूची देता है जिन्हें मैं हटाना चाहता हूं, उदाहरण के लिए: 3.5.0-17, 3.5.0-18

    ls -l /boot
    
  3. अब मैं अपनी शुद्ध सूची में पहला कर्नेल संस्करण लेता हूं और इससे संबंधित सभी पैकेजों का पता लगाता हूं।

    dpkg -l | grep 3.5.0-17
    
  4. उन्हें सिस्टम से शुद्ध करें

    sudo apt-get purge <list of packages separated by spaces>
    
  5. 3 पर वापस जाएं और मेरी पर्स सूची में अगला कर्नेल संस्करण चुनें।

  6. किया हुआ


1

मुझे यह त्रुटि मिल रही थी, इस लेख ने मदद की।

मैं df -hउस बूट की पहचान करता था जो uname -rसंस्करण के लिए भरा हुआ था , फिर purgeपुरानी गुठली निकालने के लिए ऊपर सूचीबद्ध स्ट्रिंग का उपयोग किया । सिंगल कर्नेल पर्ज काम किया, बहु ने (मेरे लिए) नहीं किया।

मुझे विंडोज़ चीज़ों में फाइलें मिलीं; मैं उन्हें हटा नहीं सका, टर्मिनल का उपयोग करना पड़ा, लेकिन इसने मुझे पुराने संस्करण दिखाए जो मेरे पास थे।

मुझे नहीं पता कि क्यों / बूट (sda2) को बिल्कुल विभाजित किया गया है और इसके छोटे क्यों हैं। लेकिन अब मैं Ubuntu अपडेटर का फिर से उपयोग कर सकता हूं।

मैं के साथ कुछ मामूली सफलता था sudo apt-get update, sudo apt-get upgrade, sudo apt-get clean, यह भी कोशिश की मुफ्त सॉफ्टवेयर Bleachbit। पर्स स्ट्रिंग का उपयोग करें लेकिन अपने वर्तमान संस्करण पर नहीं। आशा है कि यह किसी की मदद करता है।


संपादित करें: मुझे नहीं लगता कि आपको शुद्ध स्ट्रिंग में "-Generic" जोड़ना है
ब्रायन P

0

क्या आपके पास कोई पुराना कर्नेल इमेज पैकेज स्थापित है, जिसका उपयोग नहीं किया जा रहा है? वे / बूट पर जगह ले सकते हैं। मैं निम्नलिखित के रूप में एक कमांड के साथ स्थापित कर्नेल संकुल के सेट की समीक्षा करने की सलाह दूंगा:

dpkg -l "linux-image*" | grep "^i"

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

मैं संबंधित इन-हेडर , लाइनक्स-इमेज-एक्स्ट्रा (यदि लागू हो), लिनक्स-सोर्स और लाइनक्स-टूल्स पैकेज पर भी एक नज़र डालने की सलाह देगा , जो किसी भी अप्रयुक्त लिनक्स-इमेज पैकेज के साथ एक साथ स्थापित हो सकते हैं।


0

मुझे कई संदेह है, यदि कोई है, तो लोग इस मुद्दे पर चलेंगे, लेकिन मैं इसे प्रलेखन के लिए यहाँ रख रहा हूँ यदि किसी को इसकी आवश्यकता है।

मेरा मुद्दा यह है कि मैं अलग-अलग कस्टम कर्नेल संकलित कर रहा था जब तक कि मैं अंतरिक्ष से बाहर नहीं भाग गया। जिस तरह से मुझे अंतरिक्ष को साफ करना था वह प्रत्येक कर्नेल निर्देशिका में प्रवेश करना था जो मैं काम कर रहा था और एक चला रहा था sudo make clean

  • $ cd /usr/src निर्देशिका जहां कर्नेल स्रोत है
  • $ cd linux-image-custom_kernel_name
  • $ sudo make clean

0

मेरीरोजू के उत्तर ने वास्तव में मदद की, सिवाय इसके कि मुझे प्रयोग करने में त्रुटि हुई apt purge। मुझे कोई बल विकल्प नहीं मिला।

निचले स्तर के dpkg के संयोजन ने मुझे आगे बढ़ने की अनुमति दी:

sudo dpkg -r $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' \
               | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")

0

यदि आप उन चीजों को कर रहे हैं, तो आप पुराने कर्नेल इमेज पैकेज को हटाने के लिए नीचे दिए गए आदेश के साथ कोशिश कर सकते हैं।

sudo apt autoremove

उसके बाद आप अपडेट कर सकते हैं

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