"L'avvio del volume ha solo 0 byte di spazio su disco rimanente"


32

Dopo un recente aggiornamento, ricevo un avviso che dice:

The volume boot has only 0 bytes disk space remaining

Ma il mio computer ha molto spazio libero su HD. Qualcuno sa come risolverlo. (Se è rilevante, sto usando l'intera funzionalità di crittografia del disco dell'immagine di installazione alternativa per Ubuntu 12.04).


Dipende molto da come hai installato Ubuntu sul tuo computer. Puoi "sudo fdisk -l" nel terminale e controllare se c'è una piccola partizione che è quasi piena?
Paulius Šukys,

4
Meglio ancora, esegui il comando 'df -H -x tmpfs -x devtmpfs' senza virgolette e incolla l'output qui.
fabricator4,

Questa domanda e le risposte sono correlate al problema e possono essere di aiuto.
elomage

apparentemente un problema noto per la partizione crittografata. rispondere askubuntu.com/a/230942/231504 è fantastico - funziona per me. Inoltre, per favore, aumenta il conteggio degli utenti interessati nel tracker ubuntu: bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/…
pestophagous

Risposte:


48

Per elencare tutto il kernel:
dpkg --get-selections | grep "linux-image-[[:digit:]].*" | tr "\t" ";" | cut -d ";" -f1

I risultati si presentano in questo modo:

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

Non cancellare tutti i kernel, solo quelli vecchi!

Quindi rimuoviamo il kernel 3.16,
sudo apt-get purge linux-image-3.16.0-23-generic

e quindi tutti i pacchetti non utilizzati dal sistema:
sudo apt-get autoclean && sudo apt-get autoremove


Ne ho extraanche chiamati alcuni , ad esempio entrambi linux-image-3.13.0-40-generice linux-image-extra-3.13.0-40-generic. Posso eliminare quelli con extra?
Mads Skjern,

Questo è stato estremamente utile, ma non ha risolto completamente il mio problema (eliminare un vecchio kernel non funzionava ancora). Ho dovuto rimuovere manualmente alcuni vecchi file del kernel. Ne ho trovati alcuni grandi usando find /boot/ -type f | xargs du | sort -n. Il mio kernel attualmente in esecuzione è 3.13.0-66-generic, quindi non sono attenti a cancellare tutto ciò che riguarda questo, ma ho fatto rimuovere la seguente: 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. Infine, eseguire l'eliminazione su un vecchio kernel ha esito positivo.
blong

4
se hai davvero 0 byte liberi, questo non funzionerà come ha detto @blong. è necessario rimuovere manualmente alcuni vecchi file vmlinuz in precedenza, poiché il processo di eliminazione deve creare alcuni file e, se rimangono 0 byte, ciò non riesce.
Pomarc,

1
Come faccio a sapere quali kernel sono vecchi? Il mio output è linux-image-4.10.0-42-generic linux-image-4.13.0-26-generic linux-image-4.13.0-32-generic linux-image-4.13.0-37-generic linux-image -4.13.0-38-generico linux-immagine-4.13.0-39-generico linux-immagine-4.13.0-41-generico linux-immagine-4.13.0-43-generico linux-immagine-4.8.0-36 -generico
jacob

25

La causa era in effetti vecchie immagini del kernel.
Per ripulire tutto ciò che dovevo fare era eseguire una riga:

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

Questo ha riconosciuto automaticamente i vecchi kernals e li ha rimossi.


9

È possibile che la tua /bootpartizione abbia accumulato troppe versioni del kernel durante gli aggiornamenti nel tempo. È probabile che questa partizione sia separata dalla partizione del disco di grandi dimensioni (montata come /). Puoi controllare lo /bootspazio di partizione in questo modo (cerca la linea con / boot):

df -h

C'è una bella pagina su come rimuovere i vecchi kernel .

In breve, controlla la tua versione attuale del kernel, ottieni l'elenco di ciò che è installato, quindi apt-get rimuove le vecchie versioni. C'è anche un comando "magico" di una riga sulla pagina che farà tutto questo per te. Ma usalo a tuo rischio e pericolo.

Istruzioni più in dettaglio:

  1. Ottieni la versione corrente del kernel, quella che vuoi conservare :

    uname -r
    
  2. Ottieni l'elenco di tutti i kernel installati:

    dpkg -l | grep linux-image-
    
  3. Esegui apt-get remove sui kernel che vuoi rimuovere. Non sull'ultimo ! Per esempio:

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

Altre note:

  • dpkg -lti dirà lo stato del pacchetto (kernel) prima del nome del pacchetto. Per esempio:

    rc  linux-image-3.13.0-39-generic  ...
    ii  linux-image-3.13.0-40-generic  ...
    
    • "rc" significa che il pacchetto è r dell'uso e rimossi ed ha c ONFIGURAZIONE file. Questi non è più necessario rimuoverli.
    • significa "II" che il pacchetto è contrassegnato per i nstallazione ed è i nstalled

    Sulla base di questo, è possibile elencare solo i pacchetti del kernel installati:

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

Soluzione alternativa , utilizzando lo strumento GUI Ubuntu Tweak .

Installa e vai su Computer Janitor, seleziona Sistema-> Vecchio kernel e Sistema-> Pacchetti non necessari e premi Pulisci.


3

Usa questo script in modo da rimuovere tutti gli altri vecchi kernel lasciando la versione corrente e precedente (ultima 1 versione del kernel)

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

Funzionava perfettamente, anche quando non potevo fare la risposta di "Paradiesstaub" dalla riga di comando.
Bulltorious

Ricevo "Autorizzazione negata" ...
Richard Hardy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.