新しいカーネルをインストールして起動するカーネルを変更

update-kernel
  • URLをコピーしました!

前回、CentOSのバージョンを7から8に変更しました。
それに合わせて、カーネルバージョン3.10から4.18に変更しなければなりませんでしたが、CentOS 8へのアップグレード時のコマンドでは上手くいかず、個別にインストールして起動するカーネルバージョンを切り替えることにしました。

目次

カーネルをアップデートする方法

リポジトリを登録

まずは、ELRepoリポジトリを登録します。
著者の場合はCentOS 8ですので、以下のようになります。

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

ELRepoの最新のリポジトリはこちらから。

あわせて読みたい

カーネルのインストール

新しいカーネルインストール時には、長期サポート版(LTS)最新安定版2種類から選択することができます。

長期サポート版(Long Term Support)をインストール

yum --enablerepo=elrepo-kernel install kernel-lt

最新安定版(Mainline Stable)をインストール

yum --enablerepo=elrepo-kernel install kernel-ml

末尾のkernel-ltkernel-mlの違いだけです。
どちらか選んでインストールしてください。
著者がインストールした時点では、長期サポート版4.18で、最新安定版5系でした。
いきなり3系から5系にするのは少し不安でしたので、CentOS 8で標準の長期サポート版にしました。

デフォルトで起動するカーネルを変更

カーネルインストール後、再起動するだけで完成という訳ではありません。
一応、再起動に新しくインストールしたカーネルを選択しますが、何も設定しなければ今後も再起動する度に毎回選択しなければなりません。
例えば、起動時に選択する事を忘れたり、ESXi自動起動の設定をしている場合などは不便ですね。
そこで、デフォルトで起動するカーネルを設定してあげます。

起動できるカーネルの順番を確認する

デフォルトで起動するカーネルを設定するには、その(新しくインストールした)カーネル番号を調べる必要があります。
以下のように、起動時の画面で番号を確認することもできますが(上から0、1、2、3・・・)、

出典:@IT

上記でインストールした長期サポート版(4系)のカーネルで起動ている場合、以下のコマンドでも確認することができます。

grep "^menuentry" /boot/grub2/grub.cfg

実行結果は以下のようになります。

menuentry 'CentOS Linux (4.18.4-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-862.3.2.el7.x86_64-advanced-8c1540fa-e2b4-407d-bcd1-59848a73e463' {
menuentry 'CentOS Linux (3.10.0-862.3.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-862.3.2.el7.x86_64-advanced-8c1540fa-e2b4-407d-bcd1-59848a73e463' {
menuentry 'CentOS Linux (0-rescue-b30d0f2110ac3807b210c19ede3ce88f) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-b30d0f2110ac3807b210c19ede3ce88f-advanced-8c1540fa-e2b4-407d-bcd1-59848a73e463' {

番号は1番上から0、1、2、3・・・という具合になります。
ですので、設定する番号は「0」だということがわかりました。
ちなみに、最新安定版(5系)で起動している場合は、grepする対象を以下に変えてください。

grep "^menuentry" /boot/efi/EFI/centos/grub.cfg

デフォルトで起動するカーネルの設定

番号さえわかれば、設定するのは簡単です!
grub2-set-defaultコマンドを使用して、先程の番号を指定してあげるだけの1行で済みます。

grub2-set-default 0

ちなみに、正しく設定されたか確認する方法は、以下のコマンドです。

grub2-editenv list

このように、値に設定した番号が表示されればOKです。

saved_entry=0

あとは再起動して、いつもの

uname -a

もしくは

uname -r

コマンドで、カーネルバージョンが正しく設定されていることが確認できれば完了です。

Hacker’s Highさん、とても丁寧な解説ありがとうございます!
大変参考になりました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次