/ boot bölümüm% 100'e çıktı ve şimdi yükseltemiyorum. Oda yapmak için eski çekirdekleri kaldıramıyorum

137

İlk sayım, apt-get update veya apt-get upgrade değerini denediğimde oldu. Yükseltme sırasında aşağıdaki hatayı alıyorum:

You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
linux-image-server : Depends: linux-image-3.2.0-27-generic but it is not installed
E: Unmet dependencies. Try using -f.

apt-get install -f komutunu çalıştırmayı denedim ve bu çıktı çıktı (istendiğinde evet dedikten sonra)

(Reading database ... 186183 files and directories currently installed.)
Unpacking linux-image-3.2.0-27-generic (from .../linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb) ...
Done.
dpkg: error processing /var/cache/apt/archives/linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb (--unpack):
 failed in write on buffer copy for backend dpkg-deb during './boot/System.map-3.2.0-27-generic': No space left on device
 No apport report written because the error message indicates a disk full error
                                                                          dpkg-deb:    error: subprocess paste was killed by signal (Broken pipe)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-27-generic   /boot/vmlinuz-3.2.0-27-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic
Errors were encountered while processing:
/var/cache/apt/archives/linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

apt-get autoremove çalıştırmayı denedim ve bana apt-get upgrade ile aynı hatayı veriyor.

df çalıştırdığımda, bunu /boot için alıyorum:

/dev/sda1                    233191     230297         0 100% /boot

Öyleyse, eski çekirdekleri temizlemem gereken başka bir yerde okudum. Ben ne ile sahip olduğumu kontrol ettim:

$ dpkg -l linux-image-\* | grep ^ii
ii  linux-image-2.6.38-13-server  2.6.38-13.52  Linux kernel image for version 2.6.38 on x86_64
ii  linux-image-3.0.0-13-server   3.0.0-13.22   Linux kernel image for version 3.0.0  on x86_64
ii  linux-image-3.0.0-14-server   3.0.0-14.23   Linux kernel image for version 3.0.0  on x86_64
ii  linux-image-3.0.0-15-server   3.0.0-15.26   Linux kernel image for version 3.0.0  on x86_64
ii  linux-image-3.0.0-16-server   3.0.0-16.29   Linux kernel image for version 3.0.0  on x86_64
ii  linux-image-3.0.0-17-server   3.0.0-17.30   Linux kernel image for version 3.0.0  on x86_64
ii  linux-image-3.2.0-24-generic  3.2.0-24.39   Linux kernel image for version 3.2.0  on 64 bit x86 SMP
ii  linux-image-3.2.0-25-generic  3.2.0-25.40   Linux kernel image for version 3.2.0  on 64 bit x86 SMP
ii  linux-image-3.2.0-26-generic  3.2.0-26.41   Linux kernel image for version 3.2.0  on 64 bit x86 SMP

En eski olanı şu şekilde kaldırmaya çalıştığımda:

$ sudo apt-get purge linux-image-2.6.38-13-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
linux-image-server : Depends: linux-image-3.2.0-27-generic but it is not going to be     installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Kurulumumu bozmadan nasıl önyükleme yapabilirim veya genişletebilirim?

    
sordu Strifey16 02.08.2012 17:17

11 cevap

115

Kök Dosya Sisteminde Boş Alan Açma

Kök dosya sisteminde yer açmak için apt-get clean dosyasını çalıştırmayı deneyebilirsiniz.

Eğer bu işe yaramazsa, /var/cache/apt/archives 'ya gidebilir ve bir miktar geri almak için önbellekten birkaç dosyayı el ile kaldırabilirsiniz, örneğin:

sudo rm linux-headers-*

İhtiyaç duyarsanız .deb dosyasının tümünü kaldırmanız zarar vermez - apt-get clean 'si budur. Yeniden ihtiyaç duyulursa, otomatik olarak apt tarafından yeniden indirilecekler.

/ Önyükleme Dosya Sisteminde Boş Alan Açma

Orijinal Poster ayrı bir /boot bölümüne sahiptir ve tam olarak budur ve apt sisteminin çalışmasını engeller. Orada yer açmak için gerekli olacak.

Neredeyse yeterli alan varsa, /boot adresine gidin ve bir yapılandırma dosyasını veya iki dosyayı kaldırın:

sudo rm config-3.2.0-19-generic-pae

Örneğin, ancak yine de kaldırmak istediğiniz çekirdek sürümlerinden birinin adını kullanarak. Bu küçük bir alan açacaktır (yaklaşık 144K).

Daha fazla alana ihtiyacınız varsa, yeterli alana sahip oluncaya kadar eski vmlinuz , initrd , abi ve System.map dosyalarını tek tek kaldırın (i386 çekirdek sürümlerimden biri için yaklaşık 22M).

Ne yaparsanız yapın, hepsini silmeyin . Kullandığınız her çekirdek türü için en azından her iki dosyanın en son iki eşleşmesini korumalısınız.

Ardından apt-get yükleme komutlarınıza devam edin. Yukarıda belirtildiği gibi, sildiğiniz borçların bazılarını yeniden indirmeleri gerekebilir, ancak eğer öyleyse otomatik olarak gerçekleşir. Yeniden çalışmaya uygun olduğunuzda, kaldırdığınız dosyalara karşılık gelen paketleri kaldırmak için apt-get'i kullanarak temizleyin - böylece her şey eşleşir.

/boot dosyasındaki yapılandırma dosyası, aynı adın çekirdeğini oluşturmak için çekirdek ekibi tarafından kullanılan kernel yapılandırmasıdır. Referans olarak istemediğiniz sürece veya kendi çekirdeklerinizi oluşturmanızda size yardımcı olmayacak şekilde kaldırmak zararsız olmalıdır.

Son olarak, yeni bir tane için daha fazla yer açmak için eski bir çekirdek paketini veya /boot bölümünden el ile kaldırıyorsunuz.

    
verilen cevap John S Gruber 02.08.2012 17:54
60

Benim durumumda, apt komutları ve dpkg komutu tamamlanamadı ve kaldırılamadı. Otomatik güncelleme 2.6.32-56-server yüklenirken başarısız oldu.

İlk adımım, kullanılacak alanı tanımlamaktı,

cd /boot
du -sk *|sort -n

Yaklaşık 30 tane kernel ve destekleyici dosyam vardı.

Çalışan çekirdeği almak için uname -a yaptım, Linux'ta 2.6.32-43-server alternatifi olduğunu belirledim ve çalışmayan 6 versiyonun tar 'si eski ve eskiydi.

tar -cvf ~username/boot.tar *2.6.32-44-server *2.6.32-45-server *2.6.32-46-server *2.6.32-47-server *2.6.32-48-server *2.6.32-49-server

Ardından yedeklediklerimin% co_dini yaptım:

rm -rf *2.6.32-44-server *2.6.32-45-server *2.6.32-46-server *2.6.32-47-server *2.6.32-48-server *2.6.32-49-server

Bu komutları örnek olarak gösteriyorum, durumunuz için neyle çalışacağınıza karar vermeniz gerekecek.

Şimdi rm -rf 'de biraz yerim vardı, ben de çalıştırabilirim

apt-get -f install 

Başarısız /boot yüklemesini temizlemek için.

Sonra yaptım

apt-get remove linux-headers-2.6.32-38 linux-headers-2.6.32-38-server linux-image-2.6.32-38-server
apt-get remove linux-headers-2.6.32-39 linux-headers-2.6.32-39-server linux-image-2.6.32-39-server

Bu, yedeklediklerimi geri vermek için bana yer verdi.

tar -xf ~username/boot.tar
rm  ~username/boot.tar    

Temizlemek için, o zaman çalıştırabilirim:

apt-get autoremove

Yeniden başlattım ve şimdi 2.6.32-56-server % 'sini kullanmaya başladım.

    
verilen cevap A.G. Russell 20.02.2014 17:48
19

Eski çekirdekleri kaldırmak için dpkg yerine apt-get kullanabilirsiniz:

sudo dpkg -r linux-image-3.2.0-29-generic
    
verilen cevap psusi 08.04.2014 16:38
9

Önyükleme dizinindeki eski sürümlerin bazı dosyalarının hala olduğunu fark ettim:

$ ls /boot
vmcoreinfo-2.6.31-17-server

Ve paket yöneticisi eski sürümleri listeleyecek:

dpkg -l | grep linux-image

Bu yüzden bu komutu kullandım ( autoremove ayrıca kaldırmak istemediğim daha yeni resimleri de kaldıracak)

sudo apt-get purge linux-image-2.6.31-17-server

Hala bazı başlıklarm vardı:

dpkg -l | grep linux-headers

Ben de bunu yaptım:

sudo apt-get purge linux-headers-2.6.32-34

Sonunda apt-get purge ile çıkaramadığım bir paket kaldı:

$ dpkg -l | grep linux-image
rc  linux-image-2.6.28-11-server

Kaynak: RC olarak işaretlenmiş bir paketi dpkg ile kaldırın

sudo dpkg --purge linux-image-2.6.28-11-server
    
verilen cevap mreiter 24.10.2012 15:56
2

Kullandığım şuydu:

sudo apt-get autoremove linux-image-xxxx

Tüm eski çekirdekler için bunu yapın ve sadece en son ikiyi saklayın.

Eski çekirdekleri otomatik olarak kaldırmak ve GRUB'u güncellemek istiyorsanız şunu görün: Ubuntu Belgeleri

    
verilen cevap Samer 22.11.2015 18:33
2

Paketler üzerinde hareket edemezsiniz, ancak diğer dosyalara göre yapabilirsiniz . Öncelikle, ana klasörünüzden gidin ve silebileceğiniz bir şey olup olmadığını görün. Değilse, başka bir bölüme (veya bir flash sürücüye) iyi miktarda dosya taşımayı deneyin ve paket bağımlılık sorunlarını gidermek için sudo apt-get install -f 'yi deneyin (büyük olasılıkla .deb dosyasını dpkg aracılığıyla yüklediniz) ve ardından eski çekirdekleri temizle. En az 10 MB güvenli bir şekilde sahip olduğunuzda, gereksiz yazılım veya dosyaları temizlemeyi deneyin.

    
verilen cevap hexafraction 02.08.2012 17:20
1

Synaptic Paket Yöneticisi'ni kullanın. Sadece kaldırmak istediğiniz paketi seçin ve buna bağlı paketleri de kaldırmanızı ister. Tecrübemde, çekirdek paketleri her zaman ikiye ayrılırlar (nasıl saydığına bağlı olarak). Genellikle "yerel / eski" filtreyi kullanarak eskileri hızlı bir şekilde bulabilirsiniz.

    
verilen cevap Wegko 03.08.2012 04:39
1

Sadece sudo apt-get -f autoremove çalıştırıyorum sorunumu çözdü.

    
verilen cevap forzagreen 26.04.2018 10:26
1

/var/tmp ile du -sh /var/tmp/ kullanımını kontrol edin. Bu klasördeki tüm dosyalar yer açmak için silinebilir.

Daha sonra eski çekirdekleri kaldırmak için aşağıdakileri çalıştırabilirsiniz:

sudo apt-get clean
sudo apt install byobu
sudo purge-old-kernels
sudo apt autoremove
sudo update-grub
    
verilen cevap Tertius 06.11.2017 10:29
1

Bunu çalıştırın:

sudo apt-get autoremove
sudo apt-get --purge remove && sudo apt-get autoclean
sudo apt-get -f install
sudo dpkg-reconfigure -a

Kaynak: Yukarıdakinden sonra bu hatayı alıyorum. lütfen yardım edin

    
verilen cevap Ardi Nusawan 15.02.2017 19:41
0

Benim için çalışan tek şeyin Aptitude'u kullandığını buldum.

sudo aptitude

Sonra açıldığında, genellikle karşılanmamış bağımlılıklar hakkında bir şeyler söyleyecektir. Önerilen kaldırma işlemine devam etmek için g mektubuna ulaşabilirsiniz. Ne olacağını listelediği bir sayfaya götürür.

Bozuk çekirdeğin yanında% eksi% co_de olmalıdır. % Co_de% tuşuna tekrar basın ve bozuk çekirdekleri kaldıracaktır. Çıkmak için - tuşuna basın. O zaman eski çekirdeklerden kurtulmak ve yer açmak için g kullanabilmeniz gerekir.

    
verilen cevap Matthew Swanson 04.04.2017 01:29

Etiketlerdeki diğer soruları oku