起動時のカーネルバージョンを変更する方法



●方法(CentOS 7)

 参考URL:CentOS 7でデフォルトのカーネルを変更・指定する
 参考URL:yum update でOSのバージョンを上げない [CentOS] - ex1-lab
 参考URL:利用するCentOS 7のバージョンを固定するには
 参考URL:Linuxねた帳

 CentOSのKernelをバージョンアップしてVMware Player等が動作しなくなったというのは良く聞く話です。
 このような時、以前使用していたKernelで起動したいというような状況になる場合があります。
 対処方法は下記のとおりです。
 現在の状況を確認します。
# grub2-editenv list
saved_entry=CentOS Linux (3.10.0-693.5.2.el7.x86_64) 7 (Core)
 Kernelのリストを表示します。リストは「0」から始まっていますので注意が必要です。
# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2-efi.cfg 
0 : CentOS Linux (3.10.0-693.5.2.el7.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-693.2.2.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-514.26.2.el7.x86_64) 7 (Core)
3 : CentOS Linux (3.10.0-514.26.1.el7.x86_64) 7 (Core)
4 : CentOS Linux (3.10.0-514.21.2.el7.x86_64) 7 (Core)
5 : CentOS Linux, with Linux 0-rescue-dce61b8a28a0488b945540beb6f2a899
 リスト一覧から使用したいカーネルを選択します。
# grub2-set-default 2
# grub2-editenv list
saved_entry=2
 再起動して、選択したKernelになっているか確認します。
# uname -r
3.10.0-514.26.2.el7.x86_64
 以上で作業完了です。

 Kernelをアップデートしても起動するKernelのバージョンが希望するものとなるように設定する方法が分かりました。
# vi /etc/sysconfig/kernel
#UPDATEDEFAULT=yes ← コメントアウト
UPDATEDEFAULT=no
 上記のように設定すると、Kernelアップデート時に該当バージョンが残りつづけるかどうか不明です。

●方法(CentOS 8)

 参考URL:カーネルを一時的に変更できるgrub2-rebootが便利。結局GRUB2のことをいろいろ調べたよ

 デフォルトで起動するカーネルを調べます。
# grubby --default-kernel
/boot/vmlinuz-4.18.0-315.el8.x86_64

# grubby --default-index
0
 カーネルリストを表示します。
# grubby --info=ALL | grep -A 2 index
index=0
kernel="/boot/vmlinuz-4.18.0-315.el8.x86_64"
args="ro crashkernel=auto resume=/dev/mapper/cs-swap rd.lvm.lv=cs/root rd.lvm.lv=cs/swap rhgb quiet ipv6.disable=1 $tuned_params"
--
index=1
kernel="/boot/vmlinuz-4.18.0-310.el8.x86_64"
args="ro crashkernel=auto resume=/dev/mapper/cs-swap rd.lvm.lv=cs/root rd.lvm.lv=cs/swap rhgb quiet ipv6.disable=1 $tuned_params"
--
index=2
kernel="/boot/vmlinuz-4.18.0-305.3.1.el8.x86_64"
args="ro crashkernel=auto resume=/dev/mapper/cs-swap rd.lvm.lv=cs/root rd.lvm.lv=cs/swap rhgb quiet ipv6.disable=1 $tuned_params"
--
index=3
kernel="/boot/vmlinuz-0-rescue-43d63a67dde64f76ab42885ce0c6da06"
args="ro crashkernel=auto resume=/dev/mapper/cs-swap rd.lvm.lv=cs/root rd.lvm.lv=cs/swap rhgb quiet ipv6.disable=1"
 デフォルトカーネルを変更します。今回は「4.18.0-305.3.1.el8.x86_64」を選択します。
# grubby --set-default=/boot/vmlinuz-4.18.0-305.3.1.el8.x86_64

or

# grubby --set-default-index=2
 変更されているかを確認します。
# grubby --default-kernel
/boot/vmlinuz-4.18.0-305.3.1.el8.x86_64

 再起動して設定したカーネルリリース番号で起動するか確認します。