Tech Beans

Web企業で働くエンジニアのBlog


CentOS7のKernelを最新版に更新する(yumで)

docker1.9のoverlay networkを試すにはLinux kernel3.16が必要だが、CentOS7では3.10までしか提供されていない。 kernelの更新はelrepoを使えば簡単にできるようなので試してみた。

注意: kernelの更新は危険なオペレーションのため、壊れても良い環境で試して下さい。

現在のkernel
3.10.0-229.14.1.el7.x86_64

elrepoの追加

yumのrepolistにelrepoを追加

$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 
$ rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

elrepo-kernelを有効にする。enabled=0になっているのでenabled=1とする

$ vim /etc/yum.repos.d/elrepo.repo
----
[elrepo-kernel]
name=ELRepo.org Community Enterprise Linux KÂernel Repository - el7
baseurl=http://elrepo.org/linux/kernel/el7/$basearch/
        http://mirrors.coreix.net/elrepo/kernel/el7/$basearch/
        http://jur-linux.org/download/elrepo/kernel/el7/$basearch/
        http://repos.lax-noc.com/elrepo/kernel/el7/$basearch/
        http://mirror.ventraip.net.au/elrepo/kernel/el7/$basearch/
mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo-kernel.el7
enabled=1 <==== 0から1に変更
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
protect=0

install

# 古いkernelのパッケージを削除
$ yum remove kernel-headers-3.10.0-123.9.2.el7.x86_64 kernel-tools-3.10.0-123.9.2.el7.x86_64 kernel-tools-libs-3.10.0-123.9.2.el7.x86_64

$ yum update
$ yum install kernel-ml.x86_64 kernel-ml-devel.x86_64 kernel-ml-headers.x86_64 kernel-ml-tools.x86_64 kernel-ml-tools-libs.x86_64

grub起動設定変更

$ awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg

---
CentOS Linux 7 (Core), with Linux 4.3.0-1.el7.elrepo.x86_64
CentOS Linux 7 (Core), with Linux 3.10.0-229.20.1.el7.x86_64
CentOS Linux 7 (Core), with Linux 3.10.0-229.14.1.el7.x86_64

更新したいKernel4.3が1行目にあるので

# 起動Kernel
$ grub2-set-default 0
# 設定反映
$ grub2-mkconfig -o /boot/grub2/grub.cfg
# 再起動
$ reboot

再起動後、

$ uname -r
4.3.0-1.el7.elrepo.x86_64

更新されている!

kernel version

以下のページから利用できるrpmを知ることができるが、kernel3はもうないみたい http://elrepo.org/linux/kernel/el7/x86_64/RPMS/

参考

http://wiki.mikejung.biz/CentOS_7#Upgrade_CentOS_7_Kernel_to_4.0.1