2011年9月11日日曜日

/boot が一杯になったら

/boot 領域が古いカーネルで一杯になった。
こういう場合は、古いカーネルを削除する必要がある。

とりあえず /boot ディレクトリをのぞいてみる。
$ ls /boot
System.map-2.6.31-20-generic
System.map-2.6.32-23-generic
System.map-2.6.32-24-generic
System.map-2.6.32-25-generic
System.map-2.6.32-30-generic
abi-2.6.31-20-generic
abi-2.6.32-23-generic
abi-2.6.32-24-generic
abi-2.6.32-25-generic
abi-2.6.32-30-generic
config-2.6.31-20-generic
config-2.6.32-23-generic
config-2.6.32-24-generic
config-2.6.32-25-generic
config-2.6.32-30-generic
grub
initrd.img-2.6.31-20-generic
initrd.img-2.6.32-23-generic
initrd.img-2.6.32-24-generic
initrd.img-2.6.32-25-generic
initrd.img-2.6.32-30-generic
lost+found
memtest86+.bin
vmcoreinfo-2.6.31-20-generic
vmcoreinfo-2.6.32-23-generic
vmcoreinfo-2.6.32-24-generic
vmcoreinfo-2.6.32-25-generic
vmcoreinfo-2.6.32-30-generic
vmlinuz-2.6.31-20-generic
vmlinuz-2.6.32-23-generic
vmlinuz-2.6.32-24-generic
vmlinuz-2.6.32-25-generic
vmlinuz-2.6.32-30-generic


うわぁ~ ギョウサンおるのぉ~

インストールされているカーネルを調べる
$ dpkg -l | grep linux-image
rc  linux-image-2.6.31-14-generic  2.6.31-14.48  Linux kernel image for version 2.6.31 on x86
ii  linux-image-2.6.31-20-generic  2.6.31-20.58  Linux kernel image for version 2.6.31 on x86
ii  linux-image-2.6.32-23-generic  2.6.32-23.37  Linux kernel image for version 2.6.32 on x86
ii  linux-image-2.6.32-24-generic  2.6.32-24.43  Linux kernel image for version 2.6.32 on x86
ii  linux-image-2.6.32-25-generic  2.6.32-25.45  Linux kernel image for version 2.6.32 on x86
ii  linux-image-2.6.32-30-generic  2.6.32-30.59  Linux kernel image for version 2.6.32 on x86
ii  linux-image-generic            2.6.32.30.36  Generic Linux kernel image

直近の2つ以外を削除することにする。
$ sudo apt-get remove --purge linux-image-2.6.31-14-generic linux-image-2.6.31-20-generic linux-image-2.6.32-23-generic linux-image-2.6.32-24-generic

パッケージ linux-image-2.6.31-14-generic はインストールされていないため、削除はできません
と文句を言われました・・・なんだべな?
と思ったら、 dpkg の一覧で、rc ってなっていて、調べてみると、削除済みで、設定だけが残っているものらしい。設定消すのどうやるの?わからんので放っておく。

その他のカーネルを削除すると、めでたく /boot の空き容量が増えましたとさ。

どうやら、最近は、/boot なんぞ作らなくていいらしい。RAID 上に OS をインストールする都合上、手動でパーティション作成をしたので、何にも考えずに /boot を作成していたよ・・・・


【2012/03/17】 残っている設定ファイルを、消す方法が分かった。
dpkg --purge コマンドで設定ファイルを削除できた。

まず、現状こんな感じ。

$ dpkg -l | grep linux-image
rc  linux-image-2.6.31-14-generic         2.6.31-14.48                                    Linux kernel image for version 2.6.31 on x86
ii  linux-image-2.6.32-38-generic         2.6.32-38.83                                    Linux kernel image for version 2.6.32 on x86
ii  linux-image-generic                   2.6.32.38.44                                    Generic Linux kernel image

設定ファイル(linux-image-2.6.31-14-generic)を削除してみる。

$ sudo dpkg --purge linux-image-2.6.31-14-generic
(データベースを読み込んでいます ... 現在 233343 個のファイルとディレクトリがインストールされています。)
linux-image-2.6.31-14-generic を削除しています ...
linux-image-2.6.31-14-generic の設定ファイルを削除しています ...
Running postrm hook script /usr/sbin/update-grub.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-38-generic
Found initrd image: /boot/initrd.img-2.6.32-38-generic
Found memtest86+ image: /memtest86+.bin
done

で、こうなった。

$ dpkg -l | grep linux-image
ii  linux-image-2.6.32-38-generic         2.6.32-38.83                                    Linux kernel image for version 2.6.32 on x86
ii  linux-image-generic                   2.6.32.38.44                                    Generic Linux kernel image

スッキリ!