2017年01月12日

ubuntuで/bootに溜まってしまったvmlinuzの削除

あぶすとらくと

・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


という感じに大量の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
posted by 月水和尚 (とも) at 19:26 | Comment(0) | TrackBack(0) | Linux(ディストリビューション固有)
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/445858723
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック