バイオインフォ道場、くまぞうです。
解析用PCとして、Linux(今回はUbuntu)を長い間使い続けていたりすると、「boot領域不足」という警告が出ることがあります。自動アップデートができなくなったりして困るので対処しましょう。今回は、必要なくなった古いカーネルを削除します。
boot領域の使用状況を確認
boot領域の現在の状況を調べましょう。下記リスト「/boot」の「Use%」が100%に近くなると領域不足となります。尚、ここで用いた「df」コマンドは、ディスク・ドライブの使用量を表示するもので、「-h」オプションで見やすい単位にして表示します。
$ df -h Filesystem Size Used Avail Use% Mounted on ... /dev/sda1 494M 494M 0M 100% /boot
boot領域の使用していない古いカーネルの削除
現在使用中のカーネルを確認
下記のコマンドで、現在使用中のカーネルのバージョンを確認しましょう。これ以外の使っていないバージョンのカーネルを削除します。
$ uname -r 3.13.0-91-generic
インストールされているカーネルを確認
下記のコマンドで、使用中または使用中のもの以外で、どのようなカーネルがインストールされているかを確認しましょう。
$ dpkg --get-selections | grep linux-image linux-image-3.13.0-85-generic install linux-image-3.13.0-86-generic install linux-image-3.13.0-87-generic install linux-image-3.13.0-88-generic install linux-image-3.13.0-91-generic install linux-image-extra-3.13.0-85-generic install linux-image-extra-3.13.0-86-generic install linux-image-extra-3.13.0-87-generic install linux-image-extra-3.13.0-88-generic install linux-image-extra-3.13.0-91-generic install linux-image-generic install
使用中でないカーネルを削除
現在使用中でないカーネルのバージョンを指定して、1つ1つ(シェルのブレース展開は使えます)削除していきます。
$ sudo apt-get autoremove --purge linux-image-3.13.0-{85,86,87} ... 繰り返す ...
参考情報:使用中でないカーネルを一括で削除する
数が多くなると、1つ1つ削除するのも多少面倒です。あくまで参考情報ですが、このような操作を一括で処理してくれるスクリプトがあります。最後のパイプ(|)の「xargs sudo apt-get -y purge」部分が実際に削除する部分なので、事前にその直前までを実行して、どのようなカーネルが削除されるのかを確認してから、実行するのが良いと思います。私の環境では動作は問題ありませんでしたが、自己責任で実行してください。
現在使用していないカーネルの確認
$ dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
現在使用していないカーネルを削除まで一括処理(注意)
$ dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
整理されたことを確認
処理が完了したら、現在使用中のもの以外が削除されたかを確認しましょう。そして、boot領域の使用状況が改善されたかも併せて確認しましょう。
$ dpkg --get-selections | grep linux-image linux-image-3.13.0-91-generic install linux-image-extra-3.13.0-91-generic install linux-image-generic install
$ df -h Filesystem Size Used Avail Use% Mounted on ... /dev/sda1 494M 23M 447M 5% /boot
ディスク容量の確保
boot領域以外も綺麗にしたいですね。「apt-get clean」はapt のパッケージキャッシュをクリア、「apt-get autoremove」は依存関係のない不要なパッケージを削除します。
$ sudo apt-get clean $ sudo apt-get autoremove