kernel の更新時に /boot が足りなくなったら ( package-cleanup )

自宅の CentOS6 で yum update したら下記のエラーが。

トランザクションの確認エラー
  installing package kernel-2.6.32-642.11.1.el6.x86_64 needs 29MB on the /boot filesystem

kernel の update も行っていたため、/boot がイッパイになってました。

df -h /boot

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       190M  182M     0 100% /boot

以前のカーネルがたんまり。

ls -la /boot

合計 183788
dr-xr-xr-x.  5 root root     4096 11月 12 17:03 2016 .
dr-xr-xr-x. 24 root root     4096 11月 12 17:16 2016 ..
-rw-r--r--   1 root root      170  6月  1 07:02 2016 .vmlinuz-2.6.32-642.1.1.el6.x86_64.hmac
-rw-r--r--   1 root root      170  7月 13 03:39 2016 .vmlinuz-2.6.32-642.3.1.el6.x86_64.hmac
-rw-r--r--   1 root root      170  8月 24 05:04 2016 .vmlinuz-2.6.32-642.4.2.el6.x86_64.hmac
-rw-r--r--   1 root root      170 10月  5 09:41 2016 .vmlinuz-2.6.32-642.6.1.el6.x86_64.hmac
-rw-r--r--   1 root root      170 10月 26 16:00 2016 .vmlinuz-2.6.32-642.6.2.el6.x86_64.hmac
-rw-r--r--   1 root root  2615135  6月  1 07:02 2016 System.map-2.6.32-642.1.1.el6.x86_64
-rw-r--r--   1 root root  2615095  7月 13 03:39 2016 System.map-2.6.32-642.3.1.el6.x86_64
-rw-r--r--   1 root root  2618532  8月 24 05:04 2016 System.map-2.6.32-642.4.2.el6.x86_64
-rw-r--r--   1 root root  2618532 10月  5 09:41 2016 System.map-2.6.32-642.6.1.el6.x86_64
-rw-r--r--   1 root root  2618532 10月 26 16:00 2016 System.map-2.6.32-642.6.2.el6.x86_64
-rw-r--r--   1 root root   108107  6月  1 07:02 2016 config-2.6.32-642.1.1.el6.x86_64
-rw-r--r--   1 root root   108107  7月 13 03:39 2016 config-2.6.32-642.3.1.el6.x86_64
-rw-r--r--   1 root root   108107  8月 24 05:04 2016 config-2.6.32-642.4.2.el6.x86_64
-rw-r--r--   1 root root   108107 10月  5 09:41 2016 config-2.6.32-642.6.1.el6.x86_64
-rw-r--r--   1 root root   108107 10月 26 16:00 2016 config-2.6.32-642.6.2.el6.x86_64
drwxr-xr-x.  3 root root     1024  7月 13 01:13 2012 efi
drwxr-xr-x.  2 root root     1024 11月  2 02:33 2016 grub
-rw-------   1 root root 25362674  6月 17 14:27 2016 initramfs-2.6.32-642.1.1.el6.x86_64.img
-rw-------   1 root root 25367137  7月 19 10:40 2016 initramfs-2.6.32-642.3.1.el6.x86_64.img
-rw-------   1 root root 25360273  8月 24 10:53 2016 initramfs-2.6.32-642.4.2.el6.x86_64.img
-rw-------   1 root root 25366388 10月 13 00:13 2016 initramfs-2.6.32-642.6.1.el6.x86_64.img
-rw-------   1 root root 25365624 11月  2 02:33 2016 initramfs-2.6.32-642.6.2.el6.x86_64.img
-rw-------   1 root root  5059924  6月 21 23:57 2016 initrd-2.6.32-642.1.1.el6.x86_64kdump.img
-rw-------   1 root root  5060034  7月 19 23:28 2016 initrd-2.6.32-642.3.1.el6.x86_64kdump.img
-rw-------   1 root root  5054533  9月 15 23:35 2016 initrd-2.6.32-642.4.2.el6.x86_64kdump.img
-rw-------   1 root root  5054488 10月 13 00:21 2016 initrd-2.6.32-642.6.1.el6.x86_64kdump.img
-rw-------   1 root root  5054565 11月 12 17:03 2016 initrd-2.6.32-642.6.2.el6.x86_64kdump.img
drwx------.  2 root root    12288  7月 13 01:08 2012 lost+found
-rw-r--r--   1 root root   215559  6月  1 07:02 2016 symvers-2.6.32-642.1.1.el6.x86_64.gz
-rw-r--r--   1 root root   215559  7月 13 03:39 2016 symvers-2.6.32-642.3.1.el6.x86_64.gz
-rw-r--r--   1 root root   215531  8月 24 05:04 2016 symvers-2.6.32-642.4.2.el6.x86_64.gz
-rw-r--r--   1 root root   215530 10月  5 09:41 2016 symvers-2.6.32-642.6.1.el6.x86_64.gz
-rw-r--r--   1 root root   215530 10月 26 16:00 2016 symvers-2.6.32-642.6.2.el6.x86_64.gz
-rwxr-xr-x   1 root root  4264432  6月  1 07:02 2016 vmlinuz-2.6.32-642.1.1.el6.x86_64
-rwxr-xr-x   1 root root  4265936  7月 13 03:39 2016 vmlinuz-2.6.32-642.3.1.el6.x86_64
-rwxr-xr-x   1 root root  4268880  8月 24 05:04 2016 vmlinuz-2.6.32-642.4.2.el6.x86_64
-rwxr-xr-x   1 root root  4269008 10月  5 09:41 2016 vmlinuz-2.6.32-642.6.1.el6.x86_64
-rwxr-xr-x   1 root root  4270096 10月 26 16:00 2016 vmlinuz-2.6.32-642.6.2.el6.x86_64
yum list kernel

インストール済みパッケージ
kernel.x86_64          2.6.32-642.1.1.el6         @updates
kernel.x86_64          2.6.32-642.3.1.el6         @updates
kernel.x86_64          2.6.32-642.4.2.el6         @updates
kernel.x86_64          2.6.32-642.6.1.el6         @updates
kernel.x86_64          2.6.32-642.6.2.el6         @updates
利用可能なパッケージ
kernel.x86_64          2.6.32-642.11.1.el6        updates

今まで yum remove で古いカーネルを削除してたのですが、yum-utils パッケージに含まれている package-cleanup というコマンドで一発解決できる事を知ってビビる。

package-cleanup --oldkernels --count 2

これで 2 世代分だけ残して、それ以前の kernel は削除する事が出来ます。

実行後に再確認。

df -h /boot

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       190M   74M  106M  42% /boot
yum list kernel

インストール済みパッケージ
kernel.x86_64          2.6.32-642.6.1.el6         @updates
kernel.x86_64          2.6.32-642.6.2.el6         @updates
利用可能なパッケージ
kernel.x86_64          2.6.32-642.11.1.el6        updates

ちなみに、package-cleanup の挙動を見て気づいたのですが、手動で kernel 消してた際に kernel-devel の削除を忘れていました。

そこもフォローしてくれる package-cleanup さんステキ。

今後はこれでやるようにしますし、–oldkernels 以外のオプションもちょっと調べてみたいと思いました。