サイトアイコン IT NEWS

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

update-kernel

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

今回は、CentOS 7をCentOS 8にアップグレードする方法をご紹介します。ググってみると、いくつものサイトでいかにも簡単そうにコマンドを書いていますが、著者の場合は、そのまま実行しても上手くアップグレードできませんでした。
結果的にそれらの課題を解決したの...
CentOS 7から8にアップグレードする方法(3つの問題を解決) - Minory

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

リポジトリを登録

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

rpm --import 
yum install 

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

カーネルのインストール

新しいカーネルインストール時には、長期サポート版(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で標準の長期サポート版にしました。

2019年9月24日に CentOS 8 がリリースされます。 RedHat Enterprise Linux 8 の情報を元に、CentOS 8 で想定される変更点をまとめました。 PHP や MySQL といったミド...
CentOS 8 と CentOS 7 の違い、yum やミドルウェアにも要注意 - サーバー構築と設... - サーバー構築と設定 ~初心者にも分かりやす...

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

カーネルインストール後、再起動するだけで完成という訳ではありません。
一応、再起動に新しくインストールしたカーネルを選択しますが、何も設定しなければ今後も再起動する度に毎回選択しなければなりません。
例えば、起動時に選択する事を忘れたり、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

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

参考サイト(引用)

CentOS7でのyumを使ったカーネルのアップデート方法を、初めての人でもわかるように詳しくまとめています。
【初心者向け】カーネルアップデートの方法【CentOS7】 - Hacker's High
Hacker’s Highさん、とても丁寧な解説ありがとうございます!
大変参考になりました!

モバイルバージョンを終了