Spazio libero su disco insufficiente durante l'aggiornamento

136

Ho riscontrato un errore nel programma di aggiornamento del software quando provo e faccio i miei aggiornamenti quotidiani. dice:

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'.

Ho provato a digitare sudo apt-get clean nel terminale, ma ricevo comunque il messaggio. Tutte le pagine che ho letto sembrano essere per Ubuntu esperti. Sto usando Ubuntu 12.10. Voglio passare alla versione 13.04 ma capisco che devo finire prima questi.

Questo è l'output di digitare cat /etc/fstab nel Terminale:

# /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
[email protected]:~$ 

Output di 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
[email protected]:~$ 

E dpkg -l | grep linux-image restituisce:

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
    
posta carmatt95 22.05.2013 - 06:30

8 risposte

186
  

Nota: questa risposta intende essere più di una "spiegazione" che fornire il modo migliore / più semplice per rimuovere i vecchi kernel. Per il modo migliore / più semplice per rimuovere i vecchi kernel, consulta le altre risposte.

Ok, quindi dall'output di /etc/fstab che hai pubblicato, sembra che il tuo /boot sia montato su una partizione separata e dall'output di < forte> df -h , quella partizione è piena. Questo perché ci sono vecchi kernel installati che non sono necessari; puoi dirlo guardando l'output di dpkg -l | grep linux-image che hai pubblicato, dove puoi vedere più di un " linux-image " con versioni diverse. Dobbiamo rimuovere le vecchie versioni.

Per prima cosa, voglio che tu esegua il comando uname -r in un terminale, questo ti mostrerà la versione del kernel che stai usando al momento. Non vogliamo mai rimuovere quella versione del kernel. Il comando dirà qualcosa di simile a 3.5.0-26-generic . Prendi nota di quel numero, 26 ! I seguenti comandi presumeranno che quello sia il kernel che stai usando.

Il comando per rimuovere una vecchia versione del kernel è:

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

... dove i caratteri x sono numeri. Quindi, nel tuo caso, poiché hai molte vecchie versioni (17, 18, 19, ecc.), Dovremmo eseguire questo comando per ognuna delle versioni, in questo modo:

  • 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

... e così via. Ma c'è un modo per fare tutto questo attraverso un unico comando. Il comando è questo ( NON ESEGUIRE IL COMANDO ANCORA! Leggi quanto segue. ):

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

Questo comando rimuoverà le versioni indicate tra parentesi. Non ho incluso le versioni 25, 26 e 28 per i seguenti motivi:

  • Non includeva 26 ovviamente perché questa è la versione del kernel che stai attualmente utilizzando! Questa è la versione che abbiamo ottenuto dal comando uname -r , ricordi? Non vogliamo mai rimuoverlo!
  • Non ha incluso 28 perché è quello che il tuo aggiornamento stava cercando di aggiornare (lo puoi dire dallo stato iF successivo, significa che è "mezzo configurato").
  • Non includeva 25 perché di solito è buona norma lasciare almeno una versione precedente. Quindi, dal momento che stai utilizzando 26, ne terremo 25, quindi non lo includeremo nel comando precedente.

Quindi se l'ultimo numero in uname -r è 26 (o 28, o anche 25), allora è sicuro eseguire il comando precedente. Inserisci la password quando richiesto e digita y quando richiesto. Questo mostrerà un po 'di linee e alla fine tornerà al prompt dei comandi (nel tuo caso, [email protected]:~$ ), speriamo senza errori. Al termine, esegui df -h e guarda l'ultima riga, quella che inizia con /dev/sda1 . Dovresti scoprire che ora ha più spazio e che la percentuale utilizzata è inferiore al 100% come prima. Ora puoi procedere con il tuo aggiornamento di nuovo.

    
risposta data Alaa Ali 23.05.2013 - 09:57
42

Puoi installare Ubuntu-Tweak.Per installare segui i seguenti passi:

Apri il terminale. Aggiungi il repository richiesto con il comando:

sudo add-apt-repository ppa:tualatrix/ppa

Aggiorna l'elenco software con il comando:

sudo apt-get update

Infine, installa Ubuntu Teak con il comando:

sudo apt-get install ubuntu-tweak

Dopodiché apri un trattino e digita "ubuntu tweak".

Quindi vai alla scheda janitor e seleziona Apps , Personal e System caselle di controllo e fai clic sul pulsante clean in basso a destra.

    
risposta data αғsнιη 11.06.2014 - 17:15
14

Un modo rapido per rimuovere tutti i kernel e le intestazioni non utilizzati (escluso il kernel corrente in esecuzione) è stato sottolineato da @Lekensteyn nella sua risposta alla domanda Come faccio a liberare più spazio in / boot? :

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

Questo dovrebbe liberare spazio sufficiente per l'aggiornamento.

    
risposta data marianoju 30.09.2015 - 10:00
6

C'è un bug report sul problema qui: link

Sentiti libero di dire se "questo bug interessa anche te", in modo che possa ottenere più attenzione.

    
risposta data alci 29.10.2014 - 10:38
3

Nel mio sistema Ubuntu di casa seguo un metodo simile a quello pubblicato, ma è un po 'più semplice e cancella più spazio per le intestazioni del kernel, ecc.

  1. Controllo quale kernel in esecuzione sto utilizzando poiché è imperativo che non interferisce con quello.

    uname -a
    
  2. Quindi, guardo / boot con l'obiettivo di rimuovere tutti i file relativi al kernel che sono not correlati direttamente al kernel in esecuzione. Questo mi dà una lista di tutte le versioni del kernel che voglio rimuovere, ad esempio: 3.5.0-17, 3.5.0-18

    ls -l /boot
    
  3. Ora prendo la prima versione del kernel nella mia lista di purge e trovo tutti i pacchetti ad essa relativi.

    dpkg -l | grep 3.5.0-17
    
  4. Eliminali dal sistema

    sudo apt-get purge <list of packages separated by spaces>
    
  5. torna a 3 e seleziona la versione successiva del kernel nell'elenco di eliminazione.

  6. Fatto

risposta data Kiat 18.07.2014 - 11:59
1

Stavo ricevendo questo errore, questo articolo mi ha aiutato.

Ho usato df -h per identificare che l'avvio era pieno, uname -r per la versione, quindi ho usato la stringa purge elencata sopra per rimuovere i vecchi kernel. l'eliminazione del kernel singolo ha funzionato, multi no (per me).

Ho trovato i file nella cosa di Windows; Non sono riuscito a cancellarli, ho dovuto usare il terminale, ma mi ha mostrato le vecchie versioni che avevo lì dentro.

Non ho idea del perché / boot (sda2) sia partizionato e perché sia ​​così piccolo. ma ora posso usare di nuovo Ubuntu.

Ho avuto qualche successo minore con sudo apt-get update , sudo apt-get upgrade , sudo apt-get clean , ho anche provato il software libero Bleachbit. Utilizzare la stringa di eliminazione ma non la versione corrente. Spero che questo aiuti qualcuno.

    
risposta data Brian P 13.08.2014 - 04:36
0

Hai installato vecchi pacchetti di immagini del kernel, che non vengono utilizzati? Quelli possono occupare spazio su / boot. Consiglierei di rivedere il set di pacchetti del kernel installati con un comando come il seguente:

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

Questo dovrebbe fornire una panoramica del set di pacchetti di immagini del kernel installati. Per quei pacchetti linux-image che non vengono utilizzati e che non ci si aspetterebbe che siano necessari per il recupero - ad esempio, ad es. Mi piace mantenere almeno una versione del kernel dietro la versione attiva installata, per il ripristino - altrimenti, puoi rimuovere tutti i pacchetti inutilizzati, usando il tuo strumento di packaging preferito, come aptitude.

Suggerirei anche di dare un'occhiata ai inux-headers , linux-image-extras (se applicabili), anche linux-source e linux-tools pacchetti, che possono essere installati insieme a tutti i pacchetti linux-image inutilizzati.

    
risposta data Sean Champ 23.05.2013 - 09:27
0

Dubito che molti, se ce ne saranno, si imbatteranno in questo problema, ma lo metto qui per la documentazione nel caso qualcuno ne avesse bisogno.

Il mio problema è che stavo compilando diversi kernel personalizzati finché non ho esaurito lo spazio. Il modo in cui dovevo ripulire lo spazio era inserire ogni directory del kernel in cui avevo lavorato ed eseguire un sudo make clean .

  • $ cd /usr/src Directory in cui l'origine del kernel è
  • $ cd linux-image-custom_kernel_name
  • $ sudo make clean
risposta data Jacksonkr 10.11.2016 - 15:41

Leggi altre domande sui tag