Come posso liberare più spazio in / boot?

517

La mia partizione /boot è quasi piena e ricevo un avviso ogni volta che riavvio il sistema. Ho già eliminato i vecchi pacchetti del kernel (linux-headers ...), in realtà l'ho fatto per installare una versione del kernel più recente fornita con gli aggiornamenti automatici.

Dopo aver installato la nuova versione, la partizione è quasi piena di nuovo. Quindi cos'altro posso cancellare? Ci sono altri file associati alle vecchie immagini del kernel?

Ecco un elenco di file presenti nella mia partizione /boot :

:~$ ls /boot/
abi-2.6.31-21-generic         lost+found
abi-2.6.32-25-generic         memtest86+.bin
abi-2.6.38-10-generic         memtest86+_multiboot.bin
abi-2.6.38-11-generic         System.map-2.6.31-21-generic
abi-2.6.38-12-generic         System.map-2.6.32-25-generic
abi-2.6.38-8-generic          System.map-2.6.38-10-generic
abi-3.0.0-12-generic          System.map-2.6.38-11-generic
abi-3.0.0-13-generic          System.map-2.6.38-12-generic
abi-3.0.0-14-generic          System.map-2.6.38-8-generic
boot                          System.map-3.0.0-12-generic
config-2.6.31-21-generic      System.map-3.0.0-13-generic
config-2.6.32-25-generic      System.map-3.0.0-14-generic
config-2.6.38-10-generic      vmcoreinfo-2.6.31-21-generic
config-2.6.38-11-generic      vmcoreinfo-2.6.32-25-generic
config-2.6.38-12-generic      vmcoreinfo-2.6.38-10-generic
config-2.6.38-8-generic       vmcoreinfo-2.6.38-11-generic
config-3.0.0-12-generic       vmcoreinfo-2.6.38-12-generic
config-3.0.0-13-generic       vmcoreinfo-2.6.38-8-generic
config-3.0.0-14-generic       vmcoreinfo-3.0.0-12-generic
extlinux                      vmcoreinfo-3.0.0-13-generic
grub                          vmcoreinfo-3.0.0-14-generic
initrd.img-2.6.31-21-generic  vmlinuz-2.6.31-21-generic
initrd.img-2.6.32-25-generic  vmlinuz-2.6.32-25-generic
initrd.img-2.6.38-10-generic  vmlinuz-2.6.38-10-generic
initrd.img-2.6.38-11-generic  vmlinuz-2.6.38-11-generic
initrd.img-2.6.38-12-generic  vmlinuz-2.6.38-12-generic
initrd.img-2.6.38-8-generic   vmlinuz-2.6.38-8-generic
initrd.img-3.0.0-12-generic   vmlinuz-3.0.0-12-generic
initrd.img-3.0.0-13-generic   vmlinuz-3.0.0-13-generic
initrd.img-3.0.0-14-generic   vmlinuz-3.0.0-14-generic

Attualmente sto utilizzando il kernel 3.0.0-14-generic .

    
posta user6722 22.12.2011 - 11:06

20 risposte

593

Hai molto kernel inutilizzati. Rimuovi tutti gli ultimi kernel tranne:

sudo apt-get purge linux-image-{3.0.0-12,2.6.3{1-21,2-25,8-{1[012],8}}}

Questa è una scorciatoia per:

sudo apt-get purge linux-image-3.0.0-12 linux-image-2.6.31-21 linux-image-2.6.32-25 linux-image-2.6.38-10 linux-image-2.6.38-11 linux-image-2.6.38-12 linux-image-2.6.38-8

La rimozione del pacchetto linux-image-x.x.x-x rimuoverà anche linux-image-x.x.x-x-generic .

Le intestazioni sono installate in /usr/src e vengono utilizzate quando si costruiscono moduli del kernel out-tree (come il driver nvidia proprietario e la virtualbox). La maggior parte degli utenti dovrebbe rimuovere questi pacchetti di intestazione se il pacchetto kernel corrispondente ( linux-image-* ) non è installato.

Per elencare tutti i kernel installati, esegui:

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

Un comando per mostrare tutti i kernel e le intestazioni che è possibile rimuovere, escludendo il corrente kernel in esecuzione:

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

Seleziona tutti i pacchetti chiamati iniziando con linux-headers-<some number> o linux-image-<some number> , stampa i nomi dei pacchetti per i pacchetti installati e quindi esclude il kernel caricato / in esecuzione corrente (non necessariamente il ultimo kernel!). Ciò si adatta alla raccomandazione di testare un kernel più recente prima di rimuovere i kernel più vecchi e conosciuti.

Quindi, dopo aver aggiornato i kernel e riavviato il test per testarlo, puoi rimuovere tutti gli altri kernel con:

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

La partizione di avvio è piena. Poiché si tratta di un aggiornamento del kernel, questi file verranno copiati nella partizione di avvio, quindi è necessario eseguire la pulizia. Ecco un post del blog che ti mostrerà come cancella le vecchie immagini del kernel con un comando. Darò una sinossi di base del metodo. Usa questo comando per stampare la versione corrente del tuo kernel:

uname -r

Quindi usa questo comando per stampare tutti i kernel che hai installato che non sono il tuo kernel più recente:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print }' | grep -v -e 'uname -r | cut -f1,2 -d"-"' | grep -e '[0-9]'

Assicurati che il tuo kernel attuale non sia in quella lista. Nota come questa è la maggioranza del comando finale (in basso). Per disinstallare ed eliminare questi vecchi kernel, è necessario reindirizzare questi argomenti a:

sudo apt-get -y purge

Ora possiamo fare tutto ciò che vogliamo combinando questi ultimi due comandi in questo immondo casino:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print }' | grep -v -e 'uname -r | cut -f1,2 -d"-"' | grep -e '[0-9]' | xargs sudo apt-get -y purge

E quell'unico comando si prenderà cura di tutto per te. Confermerò che funziona perfettamente, ma non mi fido mai di nessuno su internet. :) Per maggiori informazioni, il post sul blog fornisce una spiegazione molto buona di ciò che ciascuna parte del comando fa, quindi la leggete in modo da essere sicuri che faccia ciò che volete che faccia.

    
risposta data dward 21.02.2013 - 04:38
91
sudo apt-get autoremove

Questo comando sta eseguendo il lavoro automaticamente.

    
risposta data karan 05.11.2012 - 06:58
38

È possibile utilizzare Synaptic Package Manager per selezionare e rimuovere facilmente le vecchie immagini del kernel.

Se non hai già installato Synaptic:

sudo apt-get install synaptic

Avvia l'applicazione e seleziona le opzioni mostrate.

Dovresti essere in grado di evidenziare tutti i pacchetti "linux-" con la versione "2.6.x" dove x è tra 31 e 38 secondo i file nella tua cartella / boot.

Fai clic con il tasto destro su ciascuno di questi pacchetti linux e scegli l'opzione "Segna per rimozione completa". Infine fai clic sul pulsante Applica. Questo rimuoverà tutti i file e tutti i file associati. La tua cartella /boot ora dovrebbe essere un po 'più ordinata.

    
risposta data fossfreedom 24.12.2011 - 15:34
24

Grazie per il tuo post dettagliato del tuo problema, questo mi ha fatto andare nella giusta direzione. Sebbene sia utile mantenere i precedenti file del kernel, puoi rimuoverli tutti in una volta sola, controlla questo post:
Come rimuovere tutte le intestazioni, immagini e moduli del kernel Linux inutilizzati

Fatto tramite la riga di comando. Se stai facendo questo tramite l'uso remoto qualcosa come WINSCP per aprire una sessione terminale e semplicemente incollarlo, funziona molto bene.

Qui è copiato dal link dell'articolo, suggerisco di leggere l'intero articolo:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)//")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*//;/[0-9]/!d' | xargs sudo apt-get -y purge
    
risposta data Omni 01.06.2012 - 14:53
22

Questa è una nuova risposta a una vecchia domanda, ma un modo semplice per pulire questa cosa (e altro) è installare Ubuntu Tweak . Per installalo :

sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

allora puoi eseguire Ubuntu Tweak, andando alla scheda "bidello", e da qui è questione di tre clic:

Tuttavia è meglio lasciare l'ultimo kernel (non si sa mai) o un kernel funzionante noto per sicurezza; ma questo è facilmente personalizzabile.

Puoi utilizzare lo stesso strumento per pulire un sacco di cose --- ricorda che se pulisci la cache delle miniature o della TB, il sistema dovrà ricostruirle se necessario.

    
risposta data Rmano 25.11.2014 - 14:11
17

Sono riuscito a risolvere il problema utilizzando dpkg per rimuovere direttamente i pacchetti. Sebbene i pacchetti siano ancora elencati in dpkg -l , i file vengono rimossi da /boot , liberando spazio.

[email protected]:/boot$ sudo dpkg --remove linux-image-2.6.32-30-server
(Reading database ... 145199 files and directories currently installed.)
Removing linux-image-2.6.32-30-server ...
Running postrm hook script /usr/sbin/update-grub.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-35-server
Found linux image: /boot/vmlinuz-2.6.32-34-server
Found initrd image: /boot/initrd.img-2.6.32-34-server
Found linux image: /boot/vmlinuz-2.6.32-33-server
Found initrd image: /boot/initrd.img-2.6.32-33-server
Found linux image: /boot/vmlinuz-2.6.32-32-server
Found initrd image: /boot/initrd.img-2.6.32-32-server
Found linux image: /boot/vmlinuz-2.6.32-31-server
Found initrd image: /boot/initrd.img-2.6.32-31-server
Found memtest86+ image: /memtest86+.bin
done

# Repeat for kernels -31 and -32 and -33, up to (but not including)
# the version listed by 'uname -a'

Dopo questo, apt-get -f install ha risolto i miei problemi di dipendenza, e tutto andava bene per il mondo.

Tuttavia, non accetterò questa mia risposta, poiché ho ancora bisogno di sapere se dovrei aumentare la mia /boot di dimensione o fare qualcos'altro.

    
risposta data Phrogz 03.12.2011 - 19:47
11

Puoi smettere di usare una partizione separata / di avvio, quindi non avrai uno spazio così limitato lì. Per fare ciò, smontare la partizione, quindi montarla da qualche altra parte e copiare tutti i file nella directory / boot nella partizione di root, quindi rimuovere la voce da / etc / fstab e reinstallare grub. Ad esempio (dovrai utilizzare la partizione corretta):

sudo -s
umount /boot
mount /dev/sda2 /mnt
cp -a /mnt/* /boot/
umount /mnt
gedit /etc/fstab
grub-install /dev/sda

Puoi quindi usare gparted per eliminare la vecchia partizione / boot ed eventualmente estendere la partizione di root per usare quello spazio. Per estendere la partizione di root è necessario eseguire l'avvio da livecd e lo spazio libero deve essere immediatamente a destra. Se la partizione / boot si trova attualmente a sinistra della partizione di root, sarà necessario spostare prima la partizione di root a sinistra, quindi estenderla, ma questo può richiedere molto, molto tempo, quindi potrebbe non valere la pena guai.

    
risposta data psusi 22.12.2011 - 17:38
5

Per me sia il apt-get purge che il dpkg --remove hanno fallito entrambi. Quindi ho dovuto cancellare un paio di vecchie immagini del kernel da / boot con rm -f .

    
risposta data orkoden 14.10.2013 - 11:22
4

Traendo il meglio dalle risposte sopra, il mio approccio provato e vero è questo:

  • uname -a per trovare il kernel in esecuzione.
  • dpkg -l linux-{headers,image}-\* | grep ^ii per elencare tutti i pacchetti relativi al kernel attualmente installati. Ciò includerà il kernel in esecuzione.
  • sudo apt-get purge linux-{image,headers}-3.16.0-{xx,yy,zz} per rimuovere i vecchi kernel. Sostituisci xx,yy,zz con un elenco delle build del kernel che vuoi rimuovere: sono tutte le build elencate dal precedente comando che sono più vecchie del kernel attualmente in esecuzione. Assicurati di non rimuovere il kernel attualmente in esecuzione: il tuo sistema diventerà non avviabile . Potrebbe anche essere necessario cambiare la versione del kernel da 3.16.0 a qualsiasi cosa sia installata sul tuo sistema.
  • Facoltativamente, fai un ulteriore sudo apt-get autoremove - questo eliminerà tutte le dipendenze rimanenti dei vecchi kernel che non sono più necessarie per quella corrente, liberando un po 'di spazio.

Potresti avere file header senza le corrispondenti versioni del kernel installate, o viceversa, basta includere tutte queste versioni nel comando. APT si lamenterà che alcuni pacchetti non possono essere rimossi perché non sono installati, ma ciò non danneggerà.

Se qualcosa non funziona ...

  • Se il comando apt fallisce a causa di un errore spazio mancante sul dispositivo , usa invece il comando dpkg corrispondente: sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz} .
  • Se il comando dpkg continua a non funzionare perché i pacchetti linux-image sono richiesti dai pacchetti linux-headers della stessa versione (che si desidera disinstallare), dpkg potrebbe non riuscire a risolverlo. Riesaminare l'output di dpkg -l e specificare i suffissi del nome del pacchetto sulla riga di comando. Ad esempio, su uno dei miei sistemi il comando che ha funzionato alla fine era sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}-generic-pae .
  • Se riscontri altri errori, cerca aiuto: potresti avere un problema diverso da quello che pensavi.
risposta data user149408 09.07.2015 - 22:24
2
  

Ho già cancellato vecchi pacchetti del kernel (linux-headers ...)

linux-headers-* non sono kernel. I pacchetti del kernel sono quelli chiamati linux-image-* . Quelli denominati linux-headers-* sono pacchetti di sviluppo per compilare i moduli del kernel: non vivono nella directory / boot e non sono necessari per l'uso quotidiano del sistema.

I file elencati in / boot fanno includono diverse vecchie immagini del kernel ( vmlinuz* ) e immagini initrd compilate ( initrd.img* ) per quei kernel, che indica che hai ancora un molti dei vecchi pacchetti del kernel installati.

Dovresti essere in grado di elencare i tuoi kernel installati con

aptitude search ~ilinux-image

(Si noti che questo probabilmente restituirà pacchetti che non sono kernel).

Di solito non è necessario installare più di due kernel, quello attualmente in uso e quello precedente (come fallback). Quindi puoi iniziare a rimuovere quelli più vecchi, uno per uno, in questo modo:

sudo apt-get autoremove linux-image-3.2.0-23-generic

Assicurati di sostituire "3.2.0-23-generic" con la versione del kernel che vuoi rimuovere! Inoltre, non rimuovere pacchetti come linux-image-generic . Devi stare molto attento a non rimuovere il kernel attualmente in esecuzione o non sarai in grado di avviarsi (Ubuntu potrebbe o non potrebbe avvisarti di farlo).

Puoi trovare il tuo kernel attualmente in esecuzione con:

uname -r
    
risposta data thomasrutter 29.08.2014 - 11:15
2
git clone https://github.com/erichs/bootnukem.git
cd bootnukem
sudo ./install.sh

Usalo a tuo rischio, ma ha funzionato per me:

sudo bootnukem
    
risposta data Jonathan 14.08.2016 - 22:08
1

Ho avuto questo problema e altro ancora mentre ho rimosso alcuni file initrd-img-xxx manualmente da / boot e ho avuto un problema che queste vecchie versioni continuano a generare e riempire la cartella /boot . Per risolvere il problema ho seguito quanto segue:

  • Ho rimosso manualmente la versione del kernel precedente generata per liberare spazio.
  • Modificare un file di configurazione del testo come superutente, quindi incollare quanto segue in un terminale:

    sudo gedit /etc/initramfs-tools/update-initramfs.conf
    
  • Individua la riga update_initramfs=yes e modificala in update_initramfs=no . Salva ed esci dal file, quindi esegui:

    sudo dpkg --configure -a
    

Questo ha risolto il mio problema. Questo era basato su questo blog

Si spera che tutto vada bene quando si riavvia, e in seguito si può provare a cambiare no in yes in update-initramfs.conf .

    
risposta data aibrahim 23.03.2017 - 09:59
1

Elenca tutti i kernel:

dpkg --list 'linux-image*'

Mostra il kernel corrente:

uname -r

Elenca tutti i kernel ECCEPT corrente:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print }' | grep -v -e 'uname -r | cut -f1,2 -d"-"' | grep -e '[0-9]'

Assicurati che il tuo kernel corrente non sia in tale elenco.

Rimuovi tutti i kernel ECCEPT corrente:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print }' | grep -v -e 'uname -r | cut -f1,2 -d"-"' | grep -e '[0-9]' | xargs sudo apt-get -y purge

Cancella altre cose:

sudo apt-get autoremove

Se ti dà ancora errore di spazio su disco di avvio per l'installazione / disinstallazione dei file, rimuovi direttamente una delle OLD immagine dalla directory / boot,

ls -lh /boot/*-3.13.0-119*;

rm /boot/*-3.13.0-119*; 

NOTA: rivedi l'immagine del kernel corrente prima di eliminare qualsiasi immagine.

    
risposta data Hemant Thorat 10.07.2018 - 12:35
0

In aptitude o synaptic c'è una sezione "vecchio o installato manualmente impacchettato". Ci dovrebbero essere i vecchi pacchetti linux lì.

    
risposta data Martin Ueding 22.12.2011 - 12:59
0

C'è uno script di bash che ho scritto da sotto che rende il processo un po 'più user-friendly.

YMMV - è stato creato per Mint 14. Ancora imparando BASH quindi è probabilmente un po 'goffo. Usare a proprio rischio, ma funziona per me!

#!/bin/bash

endCol='\e[0m'
bold_red='\e[1;31m'
bold_green='\e[1;32m'
bold_yellow='\e[1;33m'

title_color='\e[0;30;47m'

function show_kernel_info {
clear
current_kernel=$(uname -r)
echo "Current ACTIVE kernel is:"
echo -e "  "$bold_yellow$current_kernel$endCol
echo "This kernel will be TOTALLY EXCLUDED from all actions in this script."
echo "Also, one fallback non-active kernel will be always left untouched."
echo ""
echo "These are the non-active kernels stored in /boot:"
count_of_old_kernels_in_boot=$(ls -o /boot/initrd* | grep -c -v "$current_kernel")
if [ $count_of_old_kernels_in_boot = 0 ]; then
  echo " * No non-active kernels found! *"
else
  ls -o /boot/initrd* | grep -v "$current_kernel"
fi
echo ""
list_of_old_kernels=$(dpkg --list | grep linux-image | awk -F' ' '{ print  }' | grep -v "$current_kernel" | grep -v "linux-image-generic")
current_old_kernel=$(dpkg --list | grep linux-image | awk -F' ' '{ print  }' | grep -v "$current_kernel" | grep -v "linux-image-generic" | head -n 1)
count_of_old_kernels_installed=$(dpkg --list | grep linux-image | awk -F' ' '{ print  }' | grep -v "$current_kernel" | grep -c -v "linux-image-generic")
echo "Listing of all unused kernels still installed in the system (these may not exist in /boot):"
if [ $count_of_old_kernels_installed = 0 ]; then
  echo " * No unused kernel installs found! *"
else
  dpkg --list | grep linux-image | awk -F' ' '{ print  }' | grep -v "$current_kernel" | grep -v "linux-image-generic"
fi
echo ""
}

function exit_script {
free_space_after=$(df -BM /boot | tail -n 1 | awk -F' ' '{ print  }' | tr -d M)
let freed_space=$free_space_after-$free_space_before
echo ""
echo "Results (in MB)"
echo "---------------"
echo "Free space in /boot before script was run: "$free_space_before
echo "Free space now: "$free_space_after
echo ""
echo "Amount of space freed up = "$freed_space
echo ""
echo "Press any key to exit."
read -s -n 1
echo ""
exit
}

# Main code
echo ""
echo -e $title_color" --------------------------- "$endCol
echo -e $title_color" -   Kernel Cleanup v1.0   - "$endCol
echo -e $title_color" --------------------------- "$endCol
echo ""
echo "Maximise this window for readability."
echo "Press any key to continue."
read -s -n 1
echo ""
echo "This script will remove old unused kernels, but it will prompt you before removing each one."
echo "It will never remove the current running kernel, and will also leave one fallback kernel."
echo "It can also remove source files from /usr/src for each kernel removed."
echo "This is normally safe to do and will free up lots more space."
echo ""
echo "Do you want that done as well? (y/n, enter=yes)"
valid_input=0
while [ "$valid_input" = "0" ]; do
  read -s -n 1 YesNo_input
  if [ "$YesNo_input" = "" ]; then
    YesNo_input="y"
  fi
  case $YesNo_input
  in
    y)
    RemoveSource="y"
    valid_input=1
    ;;

    Y)
    RemoveSource="y"
    valid_input=1
    ;;

    n)
    RemoveSource="n"
    valid_input=1
    ;;

    N)
    RemoveSource="N"
    valid_input=1
    ;;
  esac
done

free_space_before=$(df -h /boot | tail -n 1 | awk -F' ' '{ print  }' | tr -d M)
show_kernel_info
while [ $count_of_old_kernels_in_boot -gt 1 ]; do
  # failsafe check if somehow the current kernel is about to be removed!
  if [ "$current_old_kernel" = "$current_kernel" ]; then
    echo -e $bold_red"ERROR!"$endCol" Somehow the current kernel has crept into the removal process!"
    echo "I refuse to do that! Aborting script."
    exit_script
  fi
  # failsafe check if somehow a linux-image-generic entry is about to be removed
  if [ "$current_old_kernel" = "linux-image-generic" ]; then
    echo -e $bold_red"ERROR!"$endCol" Somehow one of the linux-image-generic entries has crept into the removal process!"
    echo "I refuse to do that! Aborting script."
    exit_script
  fi
  echo "Command about to be executed is:"
  echo "  $ sudo apt-get purge \"$current_old_kernel\""
  check_in_boot=$(echo $current_old_kernel | sed 's/linux-image/initrd.img/g')
  if [ -e /boot/$check_in_boot ]; then
    echo -e $bold_yellow"Note:"$endCol" This kernel exists in /boot but it NON-active, so it's OK to remove."
  else
    echo -e $bold_green"Totally safe to remove:"$endCol" This kernel does NOT exist in /boot."
  fi
  echo ""
  echo "Are you sure you want to remove this kernel?"
  echo "(*upper case* Y=yes / any other key will exit the script)"
  read -s -n 1 yes_no
  echo ""
  # Only entering a single upper case Y will work!
  if [ "$yes_no" != "Y" ]; then
    echo "Aborting script."
    exit_script
  fi
  echo "Removing kernel "$current_old_kernel"..."
  sleep 1
  sudo apt-get -y purge $current_old_kernel
  if [ "$RemoveSource" = "y" ]; then
    current_old_source=$(echo $current_old_kernel | sed 's/linux-image/linux-headers/g')
    current_old_source=$(echo $current_old_source | sed 's/-generic//g')
    current_old_source=$(echo $current_old_source | sed 's/-pae//g')
    sudo apt-get -y purge $current_old_source
  fi
  show_kernel_info
done

if [ $count_of_old_kernels_in_boot = 0 ]; then
  echo -e $bold_red"There are no NON-active kernels to remove!"$endCol
else
  echo -e $bold_red"There is only one NON-active kernel left in /boot!"$endCol
  echo "This script will not remove the last non-active kernel so that you have at least one backup kernel."
fi
echo "Aborting script."
exit_script
    
risposta data wibbynut 08.03.2014 - 07:33
0

[Come un noob AskUbuntu non posso commentare fino alla reputazione = 50 quindi non votare per questo motivo.]

Anche il mio server stava facendo questo. Letteralmente nessuna delle risposte previste qui ha funzionato dal momento che queste richiedono un po 'di spazio di lavoro su / boot per il loro completamento. Se la partizione di avvio è piena, terminerà bruscamente senza eliminare nessuna delle immagini.

L'unica cosa che ha funzionato per me è stata rivedere l'immagine corrente, quindi manualmente sudo rm filename per i file di immagine più vecchi (ognuno aveva -3.16.0-30 nei loro nomi). Fatto ciò, sudo apt-get autoremove ha avuto il margine di manovra necessario per svolgere il proprio lavoro. Ha evidenziato alcuni errori associati a tale versione, ad esempio: "depmod: FATAL: impossibile caricare /boot/System.map-3.16.0-30-generic: nessun file o directory", ma è normale.

Al termine, df ha restituito un 42% in uso per / boot per indicare che è di nuovo in salute.

    
risposta data Justin Case 08.02.2017 - 01:44
0

Ho scritto questo script bash eliminare selettivamente i vecchi kernel tutti in una volta:

Tutto il codice bash e le istruzioni sono inclusi nel link.

    
risposta data WinEunuuchs2Unix 31.07.2017 - 01:46
0

Mostro che ancora nel 2017 questa domanda ha nuovi commenti e risposte ma manca una risposta che penso sia molto utile qui:

Ubuntu come sistema operativo desktop di semplice uso quotidiano non ha motivo di essere installato con una partizione \ boot separata e qualcosa del genere NON offre qualcosa a un "utente comune" ... Quindi una soluzione è una nuova installazione senza \ boot partizione e in questo modo non avrai mai un tale problema

PS: la mia risposta può essere cancellata o aggiunta nella risposta accettata ... (penso che aiuterà alcune persone in questo modo)

    
risposta data koleygr 20.08.2017 - 08:58
-1

Se non puoi rimuovere altri file inutilizzati e se hai un'altra partizione con / o spazio libero sullo stesso dispositivo, puoi ridimensionare la partizione / boot da parted / gparted . (È incluso anche nel supporto di installazione.)

Avviso : Ridimensionamento della partizione è un'operazione pericolosa , salva i tuoi dati importanti su altri supporti prima di farlo!

    
risposta data Rudolf Dovičín 02.01.2015 - 22:42

Leggi altre domande sui tag