Lost Bob Blog (TG&OS)

novembre 28, 2010

Script per rimuovere i vecchi kernel su Ubuntu

Filed under: Linux,Ubuntu — lostbob @ 11:10 am

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.

5 commenti »

  1. 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 | Replica

  2. 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 | Replica

  3. 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 | Replica

  4. 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 | Replica

  5. 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 | Replica


RSS feed dei commenti a questo articolo. TrackBack URI

Lascia un Commento

Fill in your details below or click an icon to log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Log Out / Modifica )

Foto Twitter

You are commenting using your Twitter account. Log Out / Modifica )

Foto di Facebook

You are commenting using your Facebook account. Log Out / Modifica )

Connecting to %s

Theme: Rubric. Blog su WordPress.com.

Follow

Get every new post delivered to your Inbox.