Durante il ciclo di vita di una versione LTS di Ubuntu può capitare che la versione del kernel venga, giustamente, aggiornata; tuttavia la versione precedente rimane installata sul nostro sistema, come mostra questo comando lanciato sulla mia Ubuntu 22.04 LTS

luca@ubuntu:~$ apt list --installed | grep linux-image

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

linux-image-5.15.0-60-generic/jammy-updates,jammy-security,now 5.15.0-60.66 amd64 [installato, automatico]

linux-image-5.19.0-38-generic/jammy-updates,jammy-security,now 5.19.0-38.39~22.04.1 amd64 [installato, automatico]

linux-image-5.19.0-40-generic/jammy-updates,jammy-security,now 5.19.0-40.41~22.04.1 amd64 [installato, automatico]

linux-image-generic-hwe-22.04/jammy-updates,jammy-security,now 5.19.0.40.41~22.04.13 amd64 [installato, automatico]

luca@ubuntu:~$

Di per sè non è un grosso problema, qualche centinaio di MB per un kernel in più "parcheggiato" su un sistema non dovrebbero essere d'impiccio. Il kernel vecchio viene, giustamente, coinvolto nel processo di aggiornamento del sistema per essere portato sempre all'ultima versione. Quello piuttosto che infastidisce un po' è che spesso il sistema deve scaricare, aggiornare e ripulire il kernel di una versione che non usiamo più e questi processi coinvolgono centinaia di MB a ogni giro.

Ho preso la palla al balzo per cercare di capire come ripulire un po' le cose e liberarmi del kernel vecchio.

Graficamente con Synaptic


Synaptic non è installato di default, ma possiamo risolvere con

sudo apt install synaptic

Ci basterà andare nella categoria Kernel, selezionare il kernel vecchio, nel mio caso la versione 5.15.0-60, cliccare con il destro e selezionare "Rimuovi completamente". Applicando le modifiche si rimuoveranno anche i vari pacchetti collegati.

Da linea di comando


Ho provato anche da linea di comando, visto che siamo duri e puri, e i comandi sono:

sudo apt remove --purge linux-image-[version]

sudo apt remove --purge linux-headers-[version]

Che nel mio caso diventa:



sudo apt remove --purge linux-image-5.15.0-60-generic

sudo apt remove --purge linux-headers-5.15.0-60-generic

Non ho capito perchè, dopo i comandi, è comparso un linux-image-unsigned-5.15.0-60-generic, ma nel processo ho rimosso oltre 300MB di roba.

Non è molto ma in certe situazioni aiuta, come a esempio in ambito server dove i partizionamenti chirurgici sono all'ordine del giorno oppure per avere macchine virtuali un po' più snelle.

BONUS TIP


A proposito di spazio risparmiato e macchine virtuali, dopo le varie pulizie io lancio sempre questo comando per appiattire con degli zeri lo spazio su disco:

dd if=/dev/zero of=/tmp/bigemptyfile bs=4096k ; rm -f /tmp/bigemptyfile

Questo perche VirtualBox quando esporta, porta fuori ogni bit del disco a seconda che abbia senso o meno, così facendo il file della macchina sarà più leggero e le operazioni di importazione/esportazione più rapide.

Fonti
https://askubuntu.com/questions/1450048/how-to-remove-old-branch-hwe-kernels
https://phoenixnap.com/kb/ubuntu-remove-old-kernels