・ubuntuを長いこと運用していると/bootに大量のvmlinuzが溜まってイケてない
(カーネルアップデートをしていない場合は除く)
・apt-get autoremove でも消えてくれないので対応が必要
本論
きっかけは、開発用に使っているubuntu 14.04でソフトウェアの更新をしていたときのこと。
いつもより妙に時間がかかる…カーネルの更新があるとは言えこれはおかしい。と思って詳細情報を見てみたところ、
Setting up linux-firmware (1.127.23) ...
update-initramfs: Generating /boot/initrd.img-4.4.0-57-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-53-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-51-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-57-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-53-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-51-generic
という感じに大量のinitramfs更新が走っていました。
何でこんな事になってるんだろ…と思い /boot を覗いてみたところ、大昔から脈々と受け継がれてきた System.map / abi / config / initrd / vmlinuzが…。(全部で1GB近くあった)
直近いくつかだけ残してさくっと消してしまえばいいのかなとも思ったのですが、これカーネルパッケージのインストール時に投下されているものなので、出来ればパッケージのremoveをすべきという感じ。
うーむ、スクリプトかなんか書いて頑張って消すか…と思いながらググったところ、素敵な情報をゲット。
ubuntu16.04(64bit)古いカーネル(vmlinuzなど)を削除 ( ソフトウェア ) - あれやこれやのブログ - Yahoo!ブログ
http://blogs.yahoo.co.jp/rzx_al5n7vb/55601415.html
purge-old-kernelsコマンドいい!と思い元ネタを辿ったところ、
2016年6月17日号 “snap”パッケージの他ディストリビューションへの展開・purge-old-kernelsコマンド・#UWN469:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
http://gihyo.jp/admin/clip/01/ubuntu-topics/201606/17
「You'll already have the purge-old-kernels command in Ubuntu 16.04 LTS (and later), as part of the byobu package.」(Ubuntu 16.04LTS以降ではpurge-old-kernelsコマンドを利用できます。ちなみにbyobuパッケージの一部)
うぶんとぅ、16.04えるてぃーえす、あんど、れいたー。
ヽ(゜▽、゜)ノ
14.04はダメですかそうですか…と思いつつもさらに元ネタを辿ってみると、
byobu/purge-old-kernels at master ・ dustinkirkland/byobu
https://github.com/dustinkirkland/byobu/blob/master/usr/bin/purge-old-kernels
なーんだ、中身はシェルスクリプトじゃないですか!
というわけでさくっとコピペして動かしてみたところ、ちょっとした修正だけでちゃんと動作してくれました。
これで /boot 配下すっきりさっぱり。
ちなみにちょっとした修正ってのは以下2点。
aptにautoremoveオプションが存在しないので、最終行を以下のとおり修正。
apt $APT_OPTS autoremove --purge
↓
apt-get $APT_OPTS autoremove --purge
またパッケージ削除を中止したときにもautoremoveが実行されてしまうので、最後から2行目を以下のとおり修正。(これは14.04とは関係ないけど)
apt $APT_OPTS remove --purge $PURGE
↓
apt $APT_OPTS remove --purge $PURGE && \
いちお修正したものもこちらに置いておきますので、興味のある方はどうぞ。
https://gist.github.com/tomoattori/b19d58b4551d3e64c4a840b64f5efab7