vagrant
centos7

VagrantのCentOS7のカーネルを更新(yum)

More than 1 year has passed since last update.

概要

Dockerを使いたいので、カーネルのバージョンを3.10から
割と最新のものにアップしたいと試行錯誤した作業をメモしておきます。

事前準備

次の準備が完了して作業を開始しましょう。

Kernelを最新版に更新

Dockerを使う予定のため、カーネルを新しいバージョンに上げる。

現在のカーネルバージョン確認

下記のコマンドにて、状況を確認する。

ターミナル(vagrant)
$ uname -r
3.10.0-514.el7.x86_64

$ rpm -qa kernel\* | sort
kernel-3.10.0-514.el7.x86_64
kernel-devel-3.10.0-514.el7.x86_64
kernel-headers-3.10.0-514.26.1.el7.x86_64
kernel-tools-3.10.0-514.el7.x86_64
kernel-tools-libs-3.10.0-514.el7.x86_64

ElRepoリポジトリを追加

ELRepo リポジトリを使って、最新安定板カーネルをインストールするので追加する。

ターミナル(vagrant)
$ sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
$ sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

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

$ sudo vi /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

kernelと関連ツールを入れ替える

kernel, kernel-devel,kernel-headers,kernel-tools,kernel-tools-libs を入れ替える

ターミナル(vagrant)
# 現状確認
$ rpm -qa kernel\* | sort
kernel-devel-3.10.0-514.el7.x86_64
kernel-headers-3.10.0-514.26.1.el7.x86_64
kernel-tools-3.10.0-514.el7.x86_64
kernel-tools-libs-3.10.0-514.el7.x86_64

# 既存の削除
$ sudo yum -y remove \
kernel-devel-3.10.0-514.el7.x86_64 \
kernel-headers-3.10.0-514.26.1.el7.x86_64 \
kernel-tools-3.10.0-514.el7.x86_64 \
kernel-tools-libs-3.10.0-514.el7.x86_64

# 入れ直す
$ sudo yum -y update
$ sudo yum -y 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起動設定変更

ターミナル(vagrant)
$ sudo awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.12.0-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-8f08d29fc492488c8709392f7ebed506) 7 (Core)

※更新したいKernel 4.12.0が1行目にある

ターミナル(vagrant)
# 起動Kernel
$ sudo grub2-set-default 0
# 設定反映
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
# 再起動
$ sudo reboot

再起動後にバージョンを確認する

ターミナル(vagrant)
$ uname -r
4.12.0-1.el7.elrepo.x86_64

既存の kernel パッケージの削除

不要になった「3.10.0」を削除する

ターミナル(vagrant)
$ sudo yum remove kernel
   ・
   ・
   ・
=======================================================================
 Package    アーキテクチャー    バージョン           リポジトリー       容量
=======================================================================
削除中:
 kernel     x86_64           3.10.0-514.el7     @anaconda       148 M
トランザクションの要約
=======================================================================
削除  1 パッケージ
インストール容量: 148 M
上記の処理を行います。よろしいでしょうか? [y/N] y

状況確認

ターミナル(vagrant)
$ rpm -qa kernel\* | sort
kernel-ml-4.12.0-1.el7.elrepo.x86_64
kernel-ml-devel-4.12.0-1.el7.elrepo.x86_64
kernel-ml-headers-4.12.0-1.el7.elrepo.x86_64
kernel-ml-tools-4.12.0-1.el7.elrepo.x86_64
kernel-ml-tools-libs-4.12.0-1.el7.elrepo.x86_64

結果

カーネルはバージョンアップできたが、GuestAdditionsがエラーで起動しなくなった・・・
Google先生に聞いてみると・・・どうやら4.12.0のカーネルに対応していない見たい・・・

vagrantで使うにはフォルダの同期ができないとちょっと困りものですね・・・
対応するまで待つしかないのかな?

参考資料