sobota, 7 maja 2011

Usuwanie nieaktualnych kerneli z Ubuntu i Debiana

Poniżej znajduje się skrypt automatycznie czyszczący nieaktualne wersje kernela i pakietów "okołokernelowych" (nagłówki, itd) z działającego systemu. Skrypt należy uruchomić po aktualizacji zmieniającej kernel na nowszy i po zresetowaniu komputera. Kluczową sprawą jest reset, gdyż starszą wersję można bezpiecznie wywalić tylko z poziomu działania nowej wersji kernela.
#!/bin/bash

CURRENT=`uname -r | sed 's/-[a-z0-9]*$//g'`
OLD=""

cd /boot

for VM in vmlinuz*
do
OLD_VM=`echo "$VM" | sed 's/vmlinuz-\|-[a-z0-9]*$//g'`
if [ "$CURRENT" != "$OLD_VM" ]
then
echo "Nieużywany kernel $OLD_VM - do usunięcia"
OLD="$OLD '~n$OLD_VM'"
else
echo "Bieżący kernel $CURRENT - zostaje na dysku"
fi
done

if [ "$OLD" ]
then
aptitude purge $OLD
fi