前回、CentOSのバージョンを7から8に変更しました。
それに合わせて、カーネルのバージョンも3.10から4.18に変更しなければなりませんでしたが、CentOS 8へのアップグレード時のコマンドでは上手くいかず、個別にインストールして起動するカーネルのバージョンを切り替えることにしました。
カーネルをアップデートする方法
リポジトリを登録
まずは、ELRepoのリポジトリを登録します。
著者の場合はCentOS 8ですので、以下のようになります。
1 2 |
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)をインストール
1 |
yum --enablerepo=elrepo-kernel install kernel-lt |
最新安定版(Mainline Stable)をインストール
1 |
yum --enablerepo=elrepo-kernel install kernel-ml |
末尾のkernel-lt
とkernel-ml
の違いだけです。
どちらか選んでインストールしてください。
著者がインストールした時点では、長期サポート版が4.18で、最新安定版が5系でした。
いきなり3系から5系にするのは少し不安でしたので、CentOS 8で標準の長期サポート版にしました。
デフォルトで起動するカーネルを変更
カーネルをインストール後、再起動するだけで完成という訳ではありません。
一応、再起動に新しくインストールしたカーネルを選択しますが、何も設定しなければ今後も再起動する度に毎回選択しなければなりません。
例えば、起動時に選択する事を忘れたり、ESXiで自動起動の設定をしている場合などは不便ですね。
そこで、デフォルトで起動するカーネルを設定してあげます。
起動できるカーネルの順番を確認する
デフォルトで起動するカーネルを設定するには、その(新しくインストールした)カーネルの番号を調べる必要があります。
以下のように、起動時の画面で番号を確認することもできますが(上から0、1、2、3・・・)、
上記でインストールした長期サポート版(4系)のカーネルで起動ている場合、以下のコマンドでも確認することができます。
1 |
grep "^menuentry" /boot/grub2/grub.cfg |
実行結果は以下のようになります。
1 2 3 |
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
する対象を以下に変えてください。
1 |
grep "^menuentry" /boot/efi/EFI/centos/grub.cfg |
デフォルトで起動するカーネルの設定
番号さえわかれば、設定するのは簡単です!grub2-set-default
コマンドを使用して、先程の番号を指定してあげるだけの1行で済みます。
1 |
grub2-set-default 0 |
ちなみに、正しく設定されたか確認する方法は、以下のコマンドです。
1 |
grub2-editenv list |
このように、値に設定した番号が表示されればOKです。
1 |
saved_entry=0 |
あとは再起動して、いつもの
1 |
uname -a |
もしくは
1 |
uname -r |
コマンドで、カーネルのバージョンが正しく設定されていることが確認できれば完了です。
Hacker’s Highさん、とても丁寧な解説ありがとうございます!
大変参考になりました。
コメント