• …vuoi RADDOPPIARE le visite del tuo sito? Scegli il miglior Hosting WordPress!

Giuseppe Fava

Follow @giuseppe_fava
  • Home
  • Internet
    • WordPress
    • Joomla
  • Pc e Software
    • Windows
    • Linux
  • Mobile VoIP
  • Altro
Home » Rimuovere i kernel inutilizzati o obsoleti su Ubuntu

Rimuovere i kernel inutilizzati o obsoleti su Ubuntu

di Leandro Botter Lascia un commento

In alcuni casi è indispensabile rimuovere i kernel inutilizzati di Linux. In questo articolo ti descrivo nel dettaglio i comandi per eseguire questa delicata operazione in modo automatico su Ubuntu, mostrandoti anche come intervenire manualmente quando la rimozione automatica non risulta possibile.

AAA

Ricordo un thread su usenet dove un nubbio si stupiva del fatto che Linux permettesse di eseguire, senza particolari controlli di sicurezza, operazioni potenzialmente dannose per l’intero sistema. La prima delle risposte era una citazione:

Questo è Unix: ti da abbastanza corda per impiccarti da solo.

Non serve che aggiunga altro, giusto!? ;)

 

Perché rimuovere i  kernel inutilizzati su Ubuntu

Molti sistemisti seguono la regola “Se non è rotto non aggiustarlo“, sopratutto quando hanno a che fare con cose delicate, come il kernel di Linux. Io non sono un accanito sostenitore di questo principio, ma capisco che recuperare spazio su disco può non essere un motivo sufficiente per eseguire un’operazione delicata come rimuovere i kernel inutilizzati.

Ma se stai gestendo un’installazione di Linux dove la directory /boot è montata in una partizione dedicata, prima o poi potrebbe risultarti impossibile aggiornare il sistema perché APT non trova spazio sufficiente per copiare i file di un nuovo kernel. In questi casi rimuovere i kernel inutilizzati diventa la soluzione più semplice da attuare.

 

Rimuovere i  kernel inutilizzati in modo automatico

Prima di eseguire un aggiornamento che prevede l’installazione di un nuovo kernel, verifica che nella directory /boot ci sia spazio sufficiente per contenere i file:

sudo df -h /boot/

Se lo spazio scarseggia la cosa più semplice da fare è rimuovere dei kernel inutilizzati.

Innanzitutto riavvia il sistema (per evitare problemi nel caso in cui anche uno dei precedenti aggiornamenti abbia installato un nuovo kernel):

sudo reboot

Se stai eseguendo questa operazione via ssh, avvia una sessione di screen:

screen

Per rimuovere i kernel inutilizzati su Ubuntu esegui questo comando (con un utente abilitato ad eseguire sudo):

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

Terminata l’esecuzione del comando, riavvia il sistema:

sudo reboot

Finito.

 

Rimozione manuale dei vecchi kernel

Se stai gestendo un sistema Linux dove:

  • la directory /boot è montata in una partizione dedicata
  • gli aggiornamenti automatici sono attivi

potresti ritrovarti nella situazione in cui un aggiornamento automatico che installa un nuovo kernel non è andato a buon fine per mancanza di spazio nella directory /boot (l’esecuzione del comando apt-get dist-upgrade restituisce un errore e consiglia di eseguire il comando apt-get install -f, ma anche questo non risolve il problema).

In questa particolare situazione non è possibile rimuovere i kernel inutilizzati in modo automatico, in quanto il gestore dei pacchetti rileva un’inconsistenza del sistema. È quindi necessario procedere con la rimozione manuale di qualcuno dei singoli kernel inutilizzati, in modo da liberare lo spazio necessario a terminare con successo il processo di aggiornamento.

La sequenza di operazioni è questa:

  1. rimuovere i pacchetti generici del kernel, per liberare eventuali dipendenze
  2. rimuovere i kernel inutilizzati
  3. reinstallare i pacchetti generici del kernel
  4. completare l’aggiornamento rimasto in sospeso

Se stai eseguendo questa operazione via ssh, avvia una sessione di screen:

screen

 

Verifica i kernel presenti nel sistema:

dpkg -l | grep linux-image

Esempio:

rc  linux-image-4.4.0-53-generic               4.4.0-53.74        amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-57-generic               4.4.0-57.78        amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-62-generic               4.4.0-62.83        amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-53-generic         4.4.0-53.74        amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-57-generic         4.4.0-57.78        amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-62-generic         4.4.0-62.83        amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-generic                        4.4.0.62.65        amd64        Generic Linux kernel image

 

Verifica il kernel in uso:

uname -r

Esempio:

4.4.0-62-generic

Ti suggerisco di annotare in un file di testo i nomi dei vecchi kernel, es.:

linux-image-4.4.0-53-generic
linux-image-4.4.0-57-generic
...
linux-image-extra-4.4.0-53-generic
linux-image-extra-4.4.0-57-generic
...

Rimuovi i pacchetti generici del kernel:

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

 

Rimuovi eventuali altri pacchetti non necessari:

sudo apt-get autoremove

Ora… facendo molta attenzione…

 

Rimuovi i kernel inutilizzati (io manterrei anche la versione del kernel precedente a quella in uso…):

sudo apt-get purge linux-image-4.4.0-53-generic linux-image-4.4.0-57-generic linux-image-extra-4.4.0-53-generic linux-image-extra-4.4.0-57-generic

 

Re-installa i pacchetti generici del kernel:

sudo apt-get install linux-generic linux-image-generic

 

Completa gli aggiornamenti rimasti in sospeso:

apt-get install -f

Riavvia il sistema:

sudo reboot

Finito.

 

Note

  • Il processo di rimozione manuale che ti ho descritto potrebbe necessitare di alcune variazioni. Per esempio potrebbe essere necessario includere nella stessa istruzione con cui rimuovi i pacchetti generici del kernel anche i pacchetti che apt-get dist-upgrade segnala come aventi delle dipendenze non soddisfatte.
  • Ubuntu quando fai login via ssh ti avverte se rileva poco spazio su /boot.
  • Leggi con particolare attenzione l’output dei comandi, in particolare quello dei vari apt-get.

 

 

 

FacebookTwitterLinkedinPinterest

Archiviato in:Linux

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

offerte amazon
miglior hosting wordpress

Copyright © 2022 · Privacy policy · Realizzato da Giuseppe Fava · con il miglior hosting WordPress · Contatti

Go to mobile version