In un momento di follia e applicando un po’ di quello che ho imparato in un corso base di amministratore Linux ho deciso di provare a fare uno script per automatizzare l’eliminazione dei vecchi kernel su Ubuntu, ma potrebbe funzionare anche su altre distribuzioni basate su Debian.
Lo script richiede per essere usato di essere root o usare sudo , comunque questo viene controllato. Inoltre è necessario avere installato aptitude ed anche questa condizione è controllata.
Lo script prevede un parametro search oppure remove , il primo mostrerà solo gli eventuali kernel da eliminare il secondo lancerà la rimozione dei pacchetti chiedendo comunque conferma.
Lo script in pratica si limita ad eliminare i pacchetti relativi al kernel di versione diversa da quello in uso , quindi dopo che è stato aggiornato il kernel fare un reboot prima di lanciare lo script, altrimenti verrà cancellato anche il pacchetto relativo all’ultima release del kernel.
ATTENZIONE: usatelo a vostro rischio e pericolo
Per chi abbia voglia di postare suggerimenti per lo script , che è sicuramente migliorabile, può usare questo post.
Lo script è presente qui sotto:
#!/bin/bash ###Info # About: Script for cleaning old kernel # version : 0.01 # Use at you own risk! # by Lost Bob (lostbob.wordpress.com) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. ### apt=/usr/bin/aptitude pkgKernel='linux-image' type='-generic' version=$(uname -r) virtualpkg=$pkgKernel$type # Kernel actually installed kernelInst=$pkgKernel"-"$version # Testing root or sudo if [ $(id -u) -ne 0 ]; then echo "must be root" exit 1 fi # Testing aptitude if [ ! -x $apt ]; then echo "you must install aptitude" exit 1 fi echo "Kernel installed " $kernelInst case "$1" in -z) echo "usage $0 search or remove" exit 1;; 'search') operation=$1;; 'remove') operation=" -P "$1;; *) echo "usage $0 search or remove" exit 1;; esac # all kernel package installed without virtual package and actual version $apt $operation "?name($pkgKernel) ?installed ?not(?name($virtualpkg)) ?not(?name($kernelInst))"
Per utilizzarlo copiare il test in un file .sh (io l’ho chiamato _cleanOldKernl.sh ) rendetelo eseguibile e lanciatelo.
Consiglio di spostarlo in /sbin così per lanciarlo basterà usare solo il nome dello script più il suo parametro.
Mi autocommento: per ora provato sul netbook, sul pc fisso e su un server ubuntu (cambiando il contenuto della variabile type) e ha funzionato bene.
Commento di lostbob — dicembre 3, 2010 @ 5:35 pm |
Meraviglioso, io non so programmare e devo dire che cercavo qualcosa del genere che automatizzasse il tutto senza dover andare ogni volta su internet a ripassare le istruzioni per la “pulizia”. Davvero utile e ben spiegato, al posto tuo lo metterei a disposizione sul forum di Ubuntu.it, sai quanti utenti ne avrebbero bisogno?
Ciao e grazie ancora.
Commento di pugliamix — dicembre 23, 2010 @ 5:25 pm |
mi fa piacere che lo script ti sia utile.
In realtà esiste una versione più user-friendly con Ubuntu-Tweak, ma può essere utile usare lo scripts se non vuoi installare il pacchetto.
Per metterlo su ubuntu.it non lo so, linkarlo io mi sembrerebbe una cosa da “supponente”.
Commento di lostbob — dicembre 23, 2010 @ 5:56 pm |
Ciao Lost. Ti volevo chiedere se il tuo sistema di rimuovere voci da grub( o grub2) va bene anche se ho un dual boot(con doppio…altro dual boot, aihmè!) con Windows XP Pro e Home. Di Linux ho Ubuntu 10.10 Maverick.
In pratica GRUB risulta così:
> Ubuntu kernel 2.6.28. ecc,
> Ubuntu kernel (recov.mode)
> U. kernel memtest ecc.
> Windows (loader)…
quest’ ultimo, selezionandolo mi rimanda a un ulteriore boot con i 2 Windows.
Io vorrei eliminare il sotto boot loader dei 2 Windows e una delle 2 partizioni.
Grazie x il tuo gentile aiuto se possibile! Ciao.
Commento di salvubuntuzz — maggio 14, 2011 @ 2:45 pm |
lo script si occupa solo di rimuovere i kernel vecchi, l’eliminazione quindi delle voci da grub viene fatta dal package manager.
Il secondo boot loader che incontri dovrebbe essere di windows , ma onestamente non so come funzioni e se quindi ti basti rimuovere la partizione con il windows che vuoi eliminare. Solo un consiglio prima di fare qualunque operazione sulle partizioni, fai un backup dei dati.
Commento di lostbob — maggio 14, 2011 @ 9:19 pm |