“Birim önyüklemesinde yalnızca 0 bayt disk alanı kaldı”


32

Son güncellemeden sonra şunu söyleyen bir uyarı alıyorum:

The volume boot has only 0 bytes disk space remaining

Ancak bilgisayarımın HD alanı boş. Bunu nasıl çözdüğümü bilen var mı? (İlgiliyse, Ubuntu 12.04 için alternatif yükleme görüntüsünün tüm disk şifreleme özelliğini kullanıyorum).


Ubuntu'yu makinenize nasıl kurduğuna bağlı. Terminalde "sudo fdisk -l" komutunu verebilir ve neredeyse dolu küçük bir bölüm olup olmadığını kontrol edebilir misiniz?
Paulius Šukys

4
Daha da iyisi, lütfen 'df -H -x tmpfs -x devtmpfs' komutunu tırnak işaretleri olmadan çalıştırın ve çıktıyı buraya yapıştırın.
fabrikatör4

Bu soru ve cevaplar problemle ilgilidir ve yardımcı olabilir.
elomage

Görünüşe göre şifreli bölüm için bilinen bir sorun. Cevap askubuntu.com/a/230942/231504 harika - benim için çalışıyor. Ayrıca, lütfen ubuntu izleyicideki etkilenen kullanıcıların sayısını artırın
pestophagous

Yanıtlar:


48

Tüm çekirdeği listelemek için:
dpkg --get-selections | grep "linux-image-[[:digit:]].*" | tr "\t" ";" | cut -d ";" -f1

Sonuçlar bu şekilde görünüyor:

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

Tüm çekirdekleri silmeyin, sadece eskileri silin!

Şimdi 3.16 çekirdeğini kaldıralım.
sudo apt-get purge linux-image-3.16.0-23-generic

ve daha sonra sistemdeki kullanılmayan tüm paketleri:
sudo apt-get autoclean && sudo apt-get autoremove


Ben de bazılarını aradım extra, örneğin her ikisi linux-image-3.13.0-40-genericve linux-image-extra-3.13.0-40-generic. Bunları silebilir miyim extra?
Mads Skjern

Bu son derece yardımcı oldu, ancak sorunumu tamamıyla çözemedi (eski bir çekirdeği temizleme işlemi hala başarısız oldu). Bazı eski çekirdek dosyalarını el ile kaldırmak zorunda kaldım. Kullanırken birkaç tane büyük buldum find /boot/ -type f | xargs du | sort -n. Benim çalışan çekirdeğin olduğu 3.13.0-66-generico konuya ilişkin silme şey için dikkatli değilim bu yüzden, ama aşağıdaki kaldırmak yaptı: 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. Son olarak, eski bir çekirdekte temizleme temizliği başarılı olur.
15'de

4
eğer gerçekten 0 byte boşsa, bu blongun söylediği gibi çalışmaz. eski vmlinuz dosyasını daha önce elle kaldırmanız gerekiyor, çünkü temizleme işlemi bazı dosyalar oluşturmalı ve eğer 0 byte bırakılmışsa, bu başarısız olur.
pomarc

1
Hangi çekirdeklerin eski olduğunu nasıl bilebilirim? Çıktım, linux-image-4.10.0-42-generic linux-image-4.13.0-26-generic linux-image-4.13.0-32-generic linux-görüntü-4.13.0-37-jenerik linux-görüntüdür. -4.13.0-38-genel linux-görüntü-4.13.0-39-genel linux-görüntü-4.13.0-41-genel linux-görüntü-4.13.0-43-genel linux-görüntü-4.8.0-36 genel
jacob

25

Sebebi gerçekten eski çekirdekli imgelerdi.
Temizlemek için tek yapmam gereken tek bir satırdı:

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

Bu otomatik olarak eski çekirdekleri tanıdı ve onları kaldırdı.


9

/bootZamanla yükseltme yaparken bölümünüzün çok fazla çekirdek sürümü biriktirmiş olabilir . Bu bölümün büyük disk bölümünüzden ayrı olması muhtemeldir (olarak monte edilmiştir /). /bootBölüm alanını şu şekilde kontrol edebilirsiniz (/ boot olan satırı arayın):

df -h

Eski çekirdekleri nasıl çıkaracağınızla ilgili güzel bir sayfa var .

Kısacası, geçerli çekirdek sürümünüzü kontrol edin, yüklü olanların listesini alın ve daha sonra eski sürümleri apt-get çıkarın. Sayfada sizin için her şeyi yapacak "sihirli" bir tek komut da var. Ancak kullanmak kendi sorumluluğunuzdadır.

Daha detaylı talimatlar:

  1. Geçerli çekirdek sürümünü, saklamak istediğinizi alın :

    uname -r
    
  2. Yüklenen tüm çekirdeklerin listesini alın:

    dpkg -l | grep linux-image-
    
  3. Kaldırmak istediğiniz çekirdeklerde apt-get remove komutunu çalıştırın. Sonuncusu değil ! Örneğin:

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

Daha fazla not:

  • dpkg -lsize paket adından önce (çekirdek) paketin durumunu söyleyecektir . Örneğin:

    rc  linux-image-3.13.0-39-generic  ...
    ii  linux-image-3.13.0-40-generic  ...
    
    • pakettir "rc" araçlarının r emoved ve sahip c TARAFINDAN YAPILANDIRILABİLİR dosyaları. Bunlar artık kaldırmanıza gerek yok.
    • Paket için işaretlenmiş "ii" terimi I nstallation ve i nstalled

    Buna dayanarak, yalnızca yüklü olan çekirdek paketlerini listeleyebilirsiniz:

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

GUI aracı Ubuntu Tweak kullanarak alternatif çözüm .

Kurun ve Bilgisayar Bağlantısı'na gidin, Sistem-> Eski Çekirdek ve Sistem-> Gereksiz paketleri kontrol edin ve Temizle'ye basın.


3

Bu betiği kullanarak, geçerli sürümden önceki ve önceki (son 1 çekirdek sürümü) tüm diğer eski çekirdekleri kaldıracaktır.

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

"Paradiesstaub" ın cevabını komut satırından cevaplayamıyorsam bile mükemmel çalıştı.
hantal

"İzin engellendi" alıyorum ...
Richard Hardy
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.