D.

Ubuntu で古いカーネルを破棄する

Ubuntu でアップデートを繰り返すと、古いカーネルがたまってきて Grub2 のブートセレクタが埋め尽くされディスク容量も無駄に占有してしまう。手作業で古いカーネルを削除しても良いのだが面倒だしミスが怖い。そこで現在のカーネル以外を一括で消去するスクリプトを書いた。

#!/bin/sh

CURKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')
LINUXPKG="linux-(image|headers|ubuntu-modules|restricted-modules)"
METALINUXPKG="linux-(image|headers|restricted-modules)-(generic|i386|server|common|rt|xen)"
OLDKERNELS=$(dpkg -l|awk '{print $2}'|grep -E $LINUXPKG |grep -vE $METALINUXPKG|grep -v $CURKERNEL)

sudo aptitude purge $OLDKERNELS

ただしバックポートカーネルを適用している場合は上手く行かない。それ以外の通常の利用であれば現バージョン以外のカーネルを綺麗に抹消できる。