インフラエンジニアbacchiのわかったことまとめ

bacchi.me

カジュアルにkernelを管理する

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の空きが足りない
    • けど、自分で削除するのはこわい。。
  • 設定ファイを手動でしこしこ編集するのはだるい

といった場合はぜひ試してみてください。

  • B!