Rimuovere i kernel inutilizzati o obsoleti su Ubuntu
Se usi Ubuntu da un po’, probabilmente ti sarà capitato di vedere quel fastidioso messaggio che ti avvisa: “Spazio insufficiente sulla partizione /boot”. A quel punto, anche un semplice aggiornamento può diventare un incubo. In realtà, la soluzione è più semplice di quanto sembri: basta rimuovere i kernel inutilizzati. In questo articolo ti spiego come farlo in modo automatico e, se necessario, anche manualmente, così da liberare spazio senza rischiare di compromettere il sistema.
Un po’ di filosofia Unix
Ricordo un thread su usenet dove un nubbio si stupiva del fatto che Linux permettesse operazioni potenzialmente pericolose con così pochi controlli. La risposta di un veterano fu una citazione intramontabile:
“Questo è Unix: ti dà abbastanza corda per impiccarti da solo.”
Ecco, questa frase riassume perfettamente lo spirito di Linux: libertà totale, ma anche responsabilità. E quando si tratta di giocare con il kernel, bisogna sapere bene cosa si sta facendo.

Perché rimuovere i kernel inutilizzati su Ubuntu
Molti amministratori di sistema seguono la regola “se non è rotto, non aggiustarlo”. In generale è un buon principio, ma nel caso dei kernel può diventare un problema. Ogni volta che installi un aggiornamento del sistema, Ubuntu conserva anche le versioni precedenti del kernel. Questo è utile in caso di problemi (puoi sempre tornare a una versione stabile), ma nel tempo può saturare la partizione /boot.
Se la tua installazione di Linux ha /boot montata su una partizione separata, prima o poi potresti trovarti con lo spazio esaurito. Quando accade, APT non riesce più a installare nuovi kernel, e il sistema non si aggiorna. Ecco perché è importante ogni tanto fare pulizia e rimuovere i kernel inutilizzati.
Rimuovere i kernel inutilizzati in modo automatico
Fortunatamente Ubuntu mette a disposizione un modo piuttosto sicuro per liberare spazio automaticamente. Prima di tutto, controlla quanto spazio ti resta nella partizione /boot:
sudo df -h /boot/
Se vedi che sei quasi al limite, è ora di intervenire. Prima però riavvia il sistema per assicurarti di essere sul kernel più recente:
sudo reboot
Se stai lavorando via ssh, avvia una sessione di screen per non perdere la connessione durante l’operazione:
screen
Ora puoi procedere con il comando che rimuove in modo automatico i vecchi kernel non più in uso:
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
Terminato il processo, riavvia di nuovo per sicurezza:
sudo reboot
In genere, questa procedura è sufficiente per liberare spazio e permettere l’installazione di nuovi aggiornamenti senza intoppi.
Quando la rimozione automatica non funziona
In alcuni casi, specialmente quando gli aggiornamenti automatici sono attivi e la partizione /boot è già piena, l’operazione automatica non funziona. Il gestore dei pacchetti rileva errori di dipendenze o spazio insufficiente, e ti suggerisce comandi come apt-get install -f che però non risolvono davvero la situazione.
In questi casi devi passare alla rimozione manuale dei vecchi kernel, un po’ più lunga ma altrettanto efficace.
Rimuovere manualmente i vecchi kernel
Ecco la sequenza corretta di operazioni. Seguila con calma, passo dopo passo:
- Avvia una sessione di screen (se lavori via SSH):
screen
- Controlla i kernel installati nel sistema:
dpkg -l | grep linux-image
- Verifica quale kernel stai usando:
uname -r
Annota da qualche parte i vecchi kernel che vuoi eliminare. Mantieni sempre almeno una versione precedente a quella in uso, nel caso qualcosa andasse storto.
Per esempio, se il kernel attivo è 6.8.0-35-generic, potresti mantenere anche il 6.8.0-31-generic e rimuovere tutto il resto.
Ora procedi con i comandi:
Rimuovi i pacchetti generici del kernel (temporaneamente):
sudo apt-get remove linux-generic linux-image-generic
Rimuovi i kernel inutilizzati:
sudo apt-get purge linux-image-6.8.0-28-generic linux-image-6.8.0-29-generic
Ripristina i pacchetti generici del kernel:
sudo apt-get install linux-generic linux-image-generic
Esegui una pulizia generale:
sudo apt-get autoremove
Completa eventuali aggiornamenti rimasti sospesi:
sudo apt-get install -f
E infine riavvia:
sudo reboot
Al riavvio, verifica che tutto funzioni e che la partizione /boot abbia finalmente un po’ di respiro.
Note utili e consigli pratici
- In alcune situazioni potresti dover rimuovere anche altri pacchetti che APT segnala come “con dipendenze non soddisfatte”. Leggi sempre con attenzione l’output dei comandi.
- Ubuntu, quando fai login via ssh, mostra un avviso se la partizione /boot è quasi piena: prendilo come un campanello d’allarme.
- Se vuoi evitare di trovarti spesso in questa situazione, valuta di espandere la partizione /boot o usare
sudo apt autoremove --purgeperiodicamente per tenere pulito il sistema. - Dalla versione 24.04 LTS in poi, Ubuntu gestisce meglio la pulizia dei vecchi kernel, ma i sistemi più datati richiedono ancora un po’ di manutenzione manuale.
Conclusioni
Rimuovere i kernel inutilizzati su Ubuntu non è complicato, ma richiede attenzione. Ti basta ricordare due cose: fai sempre un riavvio prima e dopo l’operazione, e non cancellare mai il kernel attualmente in uso. Seguendo le procedure che ti ho mostrato, potrai liberare spazio su /boot in sicurezza e mantenere il tuo sistema sempre aggiornato e stabile.
E ricorda: Linux ti dà libertà, ma anche responsabilità. Un po’ di prudenza oggi ti risparmia un sacco di grattacapi domani



