起動時にロードするカーネルを変更・指定する

2020-10-30

OS起動時にデフォルトでロードされるGRUB のカーネルを変更・指定する

yum updateでカーネルのバージョンが上がった場合、サーバーの再起動とかして、OSが起動する場合は、その時に最新のカーネルで起動します。yum updateで意図しない形でカーネルのバージョンがあがり最新場合だと起動時にエラーが発生したり不具合が発生した場合に以前のカーネルで起動できるように、起動するカーネルを変更する方法を紹介します

今起動した時に指定されたカーネルのバージョンを確認する

「grub2-editenv list」を利用すると、起動時に選択されたカーネルのバージョンを確認できるので確認します

$ sudo grub2-editenv list
saved_entry=CentOS Linux (3.10.0-1127.19.1.el7.x86_64) 7 (Core)

起動時に選択できるカーネルのバージョンを確認する

自宅のサーバーやVM環境など、起動時にサーバーのカーネルを選択できる環境なら問題ないが、サーバーが遠隔のIDCにあったり、クラウドサービスを利用している場合は起動画面を操作は出来ません。
起動時にカーネル選択できるか確認できないので、下記のコマンドで起動時に選択できるカーネルリストを確認します

$ sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (3.10.0-1127.19.1.el7.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1062.18.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-1062.12.1.el7.x86_64) 7 (Core)
3 : CentOS Linux (3.10.0-1062.9.1.el7.x86_64) 7 (Core)
4 : CentOS Linux (3.10.0-1062.1.1.el7.x86_64) 7 (Core)
5 : CentOS Linux (3.10.0-514.6.1.el7.x86_64) 7 (Core)
6 : CentOS Linux (0-rescue-410742585f2a482ea832c426cef8ff76) 7 (Core)

「grub2-editenv list」で確認した場合は「3.10.0-1127.19.1.el7.x86_64」のカーネルで起動しているので「0 : CentOS Linux (3.10.0-1127.19.1.el7.x86_64) 7 (Core)」で起動してしています

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

今回は最新の「3.10.0-1127.19.1.el7.x86_64」ではなく、一つ前の「3.10.0-1062.18.1.el7.x86_64」で起動するように変更します
「grub2-set-default 1」のコマンドでカーネルリストの「1」番で起動するように指定します

$ sudo grub2-set-default 1
$ sudo grub2-editenv list
saved_entry=1

起動するカーネルを指定したら、再起動してみて、指定したカーネルになっているか確認します

$ uname -r
3.10.0-1062.18.1.el7.x86_64

 

 

LinuxCentOS 5,CentOS 6,CentOS 7

Posted by admin