https://bacchi.me/linux/centos7-grub/で、不要なkernelを削除した後は、
CentOS 6の場合は手動で/etc/grub.config を編集しないとだめですねーとか
CentOS 7の場合は、設定ファイルいじるのではなく、grub2-mkconfig をしないとだめですよーと紹介しましたが、もっとカジュアルな方法がありました。
package-cleanupを使ってカジュアルにkernelを管理する
package-cleanupを使えば、不要なパッケージを削除しつつ、設定ファイルもよしなに変更してくれます。
yum-utilsをインストールして、package-cleanupコマンドを叩けばOK。
yum-utils が入っていなければ以下のようにインストールしてください。
# yum -y install yum-utils
下の例では最新のkernel3世代分を残して、古いkernelを削除しています。
# package-cleanup --oldkernels --count=3
Loaded plugins: fastestmirror, priorities
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
--> Running transaction check
---> Package kernel.i686 0:2.6.32-431.29.2.el6 will be erased
---> Package kernel.i686 0:2.6.32-504.el6 will be erased
---> Package kernel-devel.i686 0:2.6.32-431.29.2.el6 will be erased
---> Package kernel-devel.i686 0:2.6.32-504.el6 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================================================================================
Package Arch Version Repository Size
==========================================================================================================================================================
Removing:
kernel i686 2.6.32-431.29.2.el6 @updates 89 M
kernel i686 2.6.32-504.el6 @base 91 M
kernel-devel i686 2.6.32-431.29.2.el6 @updates 24 M
kernel-devel i686 2.6.32-504.el6 @base 24 M
Transaction Summary
==========================================================================================================================================================
Remove 4 Package(s)
Installed size: 227 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Erasing : kernel-devel.i686 1/4
Erasing : kernel-devel.i686 2/4
Erasing : kernel.i686 3/4
Erasing : kernel.i686 4/4
Verifying : kernel-2.6.32-504.el6.i686 1/4
Verifying : kernel-2.6.32-431.29.2.el6.i686 2/4
Verifying : kernel-devel-2.6.32-431.29.2.el6.i686 3/4
Verifying : kernel-devel-2.6.32-504.el6.i686 4/4
Removed:
kernel.i686 0:2.6.32-431.29.2.el6 kernel.i686 0:2.6.32-504.el6 kernel-devel.i686 0:2.6.32-431.29.2.el6 kernel-devel.i686 0:2.6.32-504.el6
Complete!
これで古いkernelは削除されました。
grub設定ファイルもいい感じになってます。
# ll /boot/grub/grub.conf
-rw-------. 1 root root 1175 3月 10 21:51 2015 /boot/grub/grub.conf
# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/vg_www5363ue-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/vda
default=0
timeout=5
#splashimage=(hd0,0)/grub/splash.xpm.gz
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
hiddenmenu
title CentOS (2.6.32-504.8.1.el6.i686)
root (hd0,0)
kernel /vmlinuz-2.6.32-504.8.1.el6.i686 ro root=/dev/mapper/vg_www5363ue-lv_root rd_NO_LUKS rd_LVM_LV=vg_www5363ue/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 rd_NO_DM LANG=en_US.UTF-8 rd_LVM_LV=vg_www5363ue/lv_root rhgb quiet nomodeset clocksource=hpet console=tty0 console=ttyS0,115200n8r
initrd /initramfs-2.6.32-504.8.1.el6.i686.img
title CentOS (2.6.32-504.3.3.el6.i686)
root (hd0,0)
kernel /vmlinuz-2.6.32-504.3.3.el6.i686 ro root=/dev/mapper/vg_www5363ue-lv_root rd_NO_LUKS rd_LVM_LV=vg_www5363ue/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 rd_NO_DM LANG=en_US.UTF-8 rd_LVM_LV=vg_www5363ue/lv_root rhgb quiet nomodeset clocksource=hpet console=tty0 console=ttyS0,115200n8r
initrd /initramfs-2.6.32-504.3.3.el6.i686.img
title CentOS (2.6.32-504.1.3.el6.i686)
root (hd0,0)
kernel /vmlinuz-2.6.32-504.1.3.el6.i686 ro root=/dev/mapper/vg_www5363ue-lv_root rd_NO_LUKS rd_LVM_LV=vg_www5363ue/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 rd_NO_DM LANG=en_US.UTF-8 rd_LVM_LV=vg_www5363ue/lv_root rhgb quiet nomodeset clocksource=hpet console=tty0 console=ttyS0,115200n8r
initrd /initramfs-2.6.32-504.1.3.el6.i686.img
この例ではCentOS 6 の環境ですが、CentOS 7 の環境でもOKです。
- 新しいkernelのアップデートをしたいけど、/bootの空きが足りない
- けど、自分で削除するのはこわい。。
- 設定ファイを手動でしこしこ編集するのはだるい
といった場合はぜひ試してみてください。