OXY NOTES

yum-utilsを使って/bootの不要なカーネルを削除する方法

容量の限られた/boot用パーティション

Linuxのセオリーではブート用のカーネルはHDDの先頭100MBにインストールすることが推奨されています。(今ではそうでなくても普通に起動します。)

カーネル自体は圧縮されており、全部で5MB程度なので、普通は100MBもあれば十分です。しかしカーネルのアップグレードを何度も繰り返していると、バックアップファイルが貯まり、知らず知らずのうちに容量不足になることも。

新しいカーネルのアップデートをしたいけど、/bootディレクトリの容量が足りない。かと言って自分で削除するのは怖い」そんな時はyum-utilsを使いましょう。

yum-utilsのインストール

# yum install yum-utils
Dependencies Resolved

================================================================================
 Package          Arch          Version                       Repository   Size
================================================================================
Installing:
 yum-utils        noarch        1.1.16-21.el5.centos          base         74 k

Transaction Summary
================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total download size: 74 k
Is this ok [y/N]: y ←イエスの「y」を入力してエンター
Downloading Packages:
yum-utils-1.1.16-21.el5.centos.noarch.rpm                |  74 kB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : yum-utils                                                1/1

Installed:
  yum-utils.noarch 0:1.1.16-21.el5.centos

Complete!

最新のカーネルを3つだけ残して残りを削除

# package-cleanup --oldkernels --count=3
Setting up yum
I will remove the following 3 kernel related packages:
kernel-xen-2.6.18-348.12.1.el5
kernel-xen-2.6.18-348.6.1.el5
kernel-xen-devel-2.6.18-371.4.1.el5
Is this ok [y/N]: y ←イエスの「y」を入力してエンター

以下元々インストールされていたもの

/boot/initrd-2.6.18-371.1.2.el5xen.img
/boot/xen-syms-2.6.18-371.1.2.el5
/boot/symvers-2.6.18-371.1.2.el5xen.gz
/boot/vmlinuz-2.6.18-371.1.2.el5xen
/boot/System.map-2.6.18-371.1.2.el5xen
/boot/config-2.6.18-371.1.2.el5xen
/boot/.vmlinuz-2.6.18-371.1.2.el5xen.hmac
/boot/xen.gz-2.6.18-371.1.2.el5
/boot/initrd-2.6.18-348.18.1.el5xen.img
/boot/xen-syms-2.6.18-348.18.1.el5
/boot/symvers-2.6.18-348.18.1.el5xen.gz
/boot/vmlinuz-2.6.18-348.18.1.el5xen
/boot/System.map-2.6.18-348.18.1.el5xen
/boot/config-2.6.18-348.18.1.el5xen
/boot/.vmlinuz-2.6.18-348.18.1.el5xen.hmac
/boot/xen.gz-2.6.18-348.18.1.el5
/boot/initrd-2.6.18-348.16.1.el5xen.img
/boot/xen-syms-2.6.18-348.16.1.el5
/boot/symvers-2.6.18-348.16.1.el5xen.gz
/boot/.vmlinuz-2.6.18-348.16.1.el5xen.hmac
/boot/vmlinuz-2.6.18-348.16.1.el5xen
/boot/System.map-2.6.18-348.16.1.el5xen
/boot/config-2.6.18-348.16.1.el5xen
/boot/xen.gz-2.6.18-348.16.1.el5
/boot/initrd-2.6.18-348.12.1.el5xen.img
/boot/xen-syms-2.6.18-348.12.1.el5
/boot/symvers-2.6.18-348.12.1.el5xen.gz
/boot/vmlinuz-2.6.18-348.12.1.el5xen
/boot/.vmlinuz-2.6.18-348.12.1.el5xen.hmac
/boot/System.map-2.6.18-348.12.1.el5xen
/boot/config-2.6.18-348.12.1.el5xen
/boot/xen.gz-2.6.18-348.12.1.el5
/boot/initrd-2.6.18-348.6.1.el5xen.img
/boot/xen-syms-2.6.18-348.6.1.el5
/boot/symvers-2.6.18-348.6.1.el5xen.gz
/boot/vmlinuz-2.6.18-348.6.1.el5xen
/boot/System.map-2.6.18-348.6.1.el5xen
/boot/config-2.6.18-348.6.1.el5xen
/boot/.vmlinuz-2.6.18-348.6.1.el5xen.hmac
/boot/xen.gz-2.6.18-348.6.1.el5
/boot/message

実行後

/boot/initrd-2.6.18-371.1.2.el5xen.img
/boot/xen-syms-2.6.18-371.1.2.el5
/boot/symvers-2.6.18-371.1.2.el5xen.gz
/boot/vmlinuz-2.6.18-371.1.2.el5xen
/boot/System.map-2.6.18-371.1.2.el5xen
/boot/config-2.6.18-371.1.2.el5xen
/boot/.vmlinuz-2.6.18-371.1.2.el5xen.hmac
/boot/xen.gz-2.6.18-371.1.2.el5
/boot/initrd-2.6.18-348.18.1.el5xen.img
/boot/xen-syms-2.6.18-348.18.1.el5
/boot/symvers-2.6.18-348.18.1.el5xen.gz
/boot/vmlinuz-2.6.18-348.18.1.el5xen
/boot/System.map-2.6.18-348.18.1.el5xen
/boot/config-2.6.18-348.18.1.el5xen
/boot/.vmlinuz-2.6.18-348.18.1.el5xen.hmac
/boot/xen.gz-2.6.18-348.18.1.el5
/boot/initrd-2.6.18-348.16.1.el5xen.img
/boot/xen-syms-2.6.18-348.16.1.el5
/boot/symvers-2.6.18-348.16.1.el5xen.gz
/boot/.vmlinuz-2.6.18-348.16.1.el5xen.hmac
/boot/vmlinuz-2.6.18-348.16.1.el5xen
/boot/System.map-2.6.18-348.16.1.el5xen
/boot/config-2.6.18-348.16.1.el5xen
/boot/xen.gz-2.6.18-348.16.1.el5
/boot/message

最新のものを3つを残して削除されています。

yum-utilsで削除する利点はgrubも掃除してくれることです。

# cat /boot/grub/grub.conf

title CentOS (2.6.18-371.1.2.el5xen)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-371.1.2.el5xen ro root=LABEL=/ console=xvc0
        initrd /initrd-2.6.18-371.1.2.el5xen.img
title CentOS (2.6.18-348.18.1.el5xen)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-348.18.1.el5xen ro root=LABEL=/ console=xvc0
        initrd /initrd-2.6.18-348.18.1.el5xen.img
title CentOS (2.6.18-348.16.1.el5xen)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-348.16.1.el5xen ro root=LABEL=/ console=xvc0
        initrd /initrd-2.6.18-348.16.1.el5xen.img

これなら必要なファイルを誤って削除してしまうような事故は避けられますね。