apt-get: Cihazda boş alan kalmadı (12.04)


42

Bulabildiğim her konuyu okudum - soruyu başka bir yerde cevapladığını söyleyenler bile var ama hiçbiri benim sahip olduğum konuyu ele almıyor. Güncelleme Yöneticisi, karşılanmayan bağımlılıkla ilgili hatalar yayınladı ve üretti ve bu mesajla başarısız olan apt-get install -f komutunu kullanmasını önerdi :

Unpacking linux-headers-3.5.0-36 (from .../linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb (--unpack):
 unable to create `/usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h.dpkg-new' (while processing `./usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h'): No space left on device

Son 5 kelimenin cihaza boş alan kalmamasından şüpheliyim ama df ve du her ikisi de yeterli boşluk gösteriyor Yani merak ediyorum, hangi cihazın daha fazla alana ihtiyacı var?

Çıkış df -h

Filesystem 
Size Used Avail Use% 
Mounted on /dev/sda1 5.5G 4.4G 786M 86% 
/ udev 996M 4.0K 996M 1% 
/dev tmpfs 402M 880K 401M 1% 
/run none 5.0M 0 5.0M 0% /run/lock none 1004M 156K 1004M 1% 
/run/shm /dev/sdb1 30G 1.4G 27G 5% 
/home /dev/sdc1 299G 31G 268G 11% /media/HD-PCTU2 

Kök bölümünde yer var mı?
don.joey

1
Lütfen (i) çıktısını df -hve (ii) çıktısını yapıştırın mount. dpkg çalıştıktan sonra dosyaları temizleyecektir, bu yüzden aslında çalışmadığınızda yeterli alanınız olduğu görünebilir. Dpkg'ye apt-get cleanbaşlamadan önce koşmayı düşünün .
Ocak

1
watch -n 1 df -hBunu yaparken bir terminalde ne yapacağınızı izlemek için apt-get install(bu işlem size biraz yavaşlar, ancak hangi dosya sisteminin çok küçük olduğunu bilirsiniz)
Emmanuel

Ubuntu 14.04 ve çekirdek sürüm 3.13.0.108 ile üçü bir bilgisayardan da oluşan sorun. Askubuntu.com/questions/223143/… ile başladım ancak burada gösterilen cevaplar aynı satırda.
XavierStuvw

Yanıtlar:


48

Ben de aynı problemle karşılaştım. Başka bir yerde bir inodedan bahsettim ve inode kullanımını kontrol etmek için terminalime koştum:

  df -i 

Bu% 99'da inode kullanımı gösterdi. Bu nedenle, diskimde yeterince boş alan kalırken, inode sayısındaki sınır nedeniyle daha fazla dosya oluşturamadım. Bazı disk temizleme benim sorunumun çözümü oldu.


6
Eski çekirdekleri otomatik olarak kaldırmayan çekirdek güncellemelerinin neden olduğu aynı sorunu yaşadım. Her bir çekirdek güncellemesinin Linux başlıkları önemli sayıda düğüm işgal eder! --- Benim "güvenli" bir çözüm, farklı bir dosya sistemine iki çekirdek başlıkları dizinleri taşımak oldu: cd /usr/src ; cp -a linux-headers-3.2.0-3{2,3}* /home/tmp-hdr ; rm -r linux-headers-3.2.0-3{2,3}*, apt-get-install -f:, diğer bazı başlıklarını doğru yolu kaldırmak apt-get purge linux-headers-..., tmp arkasından başlıkları taşıyın: cd /usr/src ; cp -a /home/tmp-hdr/* .. Eski çekirdeğin çoğunu kullanarak kaldırın apt-get purge.
pabouk

1
Lütfen düşük etkinliğe sahip hata raporlarına katılmayı düşünün: Hata # 1089195 linux başlıkları, LTS'deki düğümlerinizi yer . , Hata # 690911 Biçimlendirme olmadan kurulum eski çekirdekleri
çıkaramıyor

@pabouk Merak ediyorum, eğer dpkg --purge linux-headers-3.2.0-3{2,3}*; apt-get -f installkopyalamaya gerek kalmayacak şekilde kullanabilir miydiniz ?
jarno

@jarno Uzun zaman oldu ama dpkg veya apt veritabanını kullanan tüm komutların başarısız olduğunu düşünüyorum. Otomatik yükseltme sırasında yetersiz sayıda inode nedeniyle oluşan bağımlılıklar ve diğer tutarsızlıklar nedeniyle olduğunu düşünüyorum.
pabouk

Gerekli disk temizliği sudo linux-purge --fix, komut dosyası yayınlandıktan sonra yapılabilir .
jarno

37

Önyükleme bölümünüzün eski çekirdekli görüntülerle dolu olduğunu düşünüyorum, yenisine yer kalmayacak apt-get. Yazabilirsin

dpkg -l linux-headers-\* linux-image-\* | grep ^ii

bir terminal penceresine. Bunu yaptığımda anladım

ii  linux-headers-3.8.0-18                    3.8.0-18.28                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-18-generic            3.8.0-18.28                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-19                    3.8.0-19.30                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-19-generic            3.8.0-19.30                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-21                    3.8.0-21.32                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-21-generic            3.8.0-21.32                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-22                    3.8.0-22.33                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-22-generic            3.8.0-22.33                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-23                    3.8.0-23.34                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-23-generic            3.8.0-23.34                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-25                    3.8.0-25.37                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-25-generic            3.8.0-25.37                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-generic                     3.8.0.25.43                            amd64        Generic Linux kernel headers

Epeyce sahip olduğum için, en eskilerinden bazılarını silebilirim.

sudo apt-get remove linux-headers-3.8.0-18

Eğer apt-geto (özgür inodes eksikliği nedeniyle yüklenemez) bazı paket bağımlılıkları özlediği için başarısız, sen çare olabilir dpkgyerine doğrudan:

sudo dpkg --remove linux-headers-3.8.0-18

Bunu, en büyüğüne birkaç kez yap linux-headers-*, odanda olmalısın.


4
Bu diğer konuyu aydınlatıyor. Dpkg'ı her çalıştırmaya çalıştığımda, karşılanmayan bir bağımlılığa sahip olduğunu söylüyor. Aşağıdaki paketlerin karşılanmayan bağımlılıkları var: linux-headers-3.5.0-36-generic: Bağımlı: linux-headers-3.5.0-36 kurulacak ve bu kurulmayacak olan şey, çünkü yeterli alan yok
Don A

Önyükleme bölümünüzle uğraşmadan önce belki de kullanıcı dosyalarınızın bir yedeğini alıyor olabilirsiniz? Bunu yaparken hiç sorun yaşamadım, ama yapsaydım, tekrar kurmak için ihtiyacım olan her şeye sahip olurdum. Tabii ki, yine de her gün bir yedekleme yapıyorum.
Marc,

Önyükleme bölümü ile uğraşmayacağımı ve bitmeyen bağımlılık döngüsünden kurtulmanın bir yolu olduğunu umuyordum. Şimdi veri yedeklemenin ve baştan başlamanın daha kolay olacağını görüyorum. Artık eski eşyaları temizlemenin önemini bildiğim için onu bir alışkanlık haline getireceğim. Herkese yardımları için teşekkür ederim.
Don A,

Bir şey değil . . . yedekleme her zaman iyi bir fikirdir ve önyükleme bölümü ile gerçekten çok uğraşmazsınız, sadece apt-get ile bazı paketleri kaldırırsınız. Bir dilim pasta olmalı. Verilerinizi yedeklemeyi önerdim çünkü sorun yaşıyorsanız (veya olmasanız bile!) Verileri yedeklemeyi her zaman öneririm, aslında bu komutları test etmek için kendi sistemime koştum. Kaldırmam üç dakika sürdü linux-headers-3.8.0-18.
Marc,

1
Tekrar başarısız olursa sudo dpkg --remove linux-headers-3.8.0-18, kaldırın sudo dpkg --remove linux-headers-3.8.0-18-genericve diğer başlığı da yanına alın.
Theson

16

Kullandım sudo apt-get autoremoveve bir sürü eski çekirdek paketini çıkardım . Bundan sonra gitmek iyi.


Benim durumumda apt-get, çözülecek kırık bir paket olduğu gerçeğine öncelik vererek otomatik olarak yapmayı reddetti. İnode doygunluğunun neden olduğu kırık paket. Ayrıca bakınız AskUbuntu konu
XavierStuvw

Bu beni kurtardı! Bir güncellemeden sonra x oturumum hiç girmedi, sadece tekrar giriş yapmayı istedim ve boş yer kalmadım.
Hd'mı

1
Lol Bunu çalıştıramam çünkü çok fazla
Brian Leishman

2

Bildiğim kadarıyla inode'ların Linux ext * dosya sistemindeki limitleri 4 milyar civarındadır, fakat daha az değildir, ki bu büyük miktarda dosyadır. Demek senin problemin, bir şeylerin birçok dosya üretmesi. Bunu önce kontrol etmenizi önerebilirim: http://blog.scoutapp.com/articles/2014/10/08/understanding-disk-inodes Öyleyse, FS'nizin düğümlerini doldurmanın ne olduğunu göreceksiniz. Uygun önbelleği temizlemeyi de önerebilirim:

sudo apt-get clean

ve

sudo apt-get autoclean
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.