CentOSで不要カーネルの削除

サーバを利用して時間が経過すると溜まってくるLinuxのkernelの削除方法の備忘録。
忘れるたびに調べているのでメモを残します。

特にVPSなどを利用していてディスクに余裕がないときには、定期的に削除を行わないとディスクを圧迫されてしまいます。
容量不足で更新ができなくなる方もいるのでは。

カーネルの削除

カーネルの削除はyum-utilsというものをインストールして行うのが一般的なようです。
こちらを使うことで簡単に不要なカーネルを削除できます。

[root@metal ~]# yum install yum-utils  
[root@metal ~]# rpm -q kernel  
[root@metal ~]# uname -r  
[root@metal ~]# package-cleanup --oldkernels --count=3  

rpmコマンドから現在残っているカーネルを確認して、unameで現在利用しているカーネルを確認します。
利用しているカーネルが最新でない場合にはrebootを行うことで最新にすることができます。

最後のコマンドで削除を行っていますが、これは古いものを3世代残すという設定になります。
個人的には2世代くらい残せばいいかなぁって気がしますが、一旦3世代残しています。

カーネルのローテート

ローテートと呼んでいいのかはわかりませんが、残す世代を少なくする設定を行います。

[root@metal ~]# cp /etc/yum.conf /etc/yum.conf.org  
[root@metal ~]# vi /etc/yum.conf  
[root@metal ~]# diff /etc/yum.conf.org /etc/yum.conf  
10c10  
< installonly_limit=5 --- > installonly_limit=3  

installonly_limitを3にすることで残していくカーネルの数を変更しています。

ちなみにこのinstallonly_limitですが、正確にはカーネルの残す数の設定ではありません。
正しくはinstallonlypkgsに指定されているものを残しておく数になります。
installonlypkgsはインストール可能でも自動で更新しない(したくない)ものを設定しておくオプションです。
デフォルトではカーネル系が対象になります。

なので、初期状態ではここを変更することでカーネルの数を調整できるということになります。
pkgsの方に設定を追加、上書きしている場合にはそちらを残す数の設定になります。

あとがき

普段頻繁に使わない設定やコマンドはすぐに忘れてしまいますね。
やはりサーバには自分用の手順書が必要だと感じます。

気付いたら自分もいろんな手順が手元にあるので、仕事でもプライベートでもサーバ建てるときに重宝しています。