CentOS 7でカーネルをビルドする機会があったので、デフォルトのカーネルを変更する方法をメモしておきます。テキストエディタでgrub.cfg
を編集するものだとすっかり思い込んでたのでしばらくgrub.cfg
をじーーっと眺めてたのですが、調べてみたところ準備されているgrub2-set-default
コマンドで変更できます。
手順は下記の通りです。
注意: カーネル周りの設定を変更する際は変更後の再起動に失敗する恐れもありますので、十分注意して下さい。
現在のデフォルトを調べる
[root@host ~]# grub2-editenv list
saved_entry=CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
カーネルのリストを表示する
[root@host ~]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (3.10.0-327.3.1.el7.x86_64.debug) 7 (Core)
1 : CentOS Linux (3.10.0-327.3.1.el7_lustre.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-6eb4b54119134fe79ebe5bf35fbf8018) 7 (Core)
利用したいカーネルをデフォルトに設定する
例えば1 : CentOS Linux (3.10.0-327.3.1.el7_lustre.x86_64) 7 (Core)
に変更する場合は下記の通りです。
[root@host ~]# grub2-set-default 1
[root@host ~]# grub2-editenv list
saved_entry=1
NOTE: カーネルのリストが0(ゼロ)から始まっている点に気をつけて下さい。
再起動して確認する
再起動してログインすると、下記のように指定したカーネルになっていることが確認できると思います。
[root@host ~]# uname -r
3.10.0-327.3.1.el7_lustre.x86_64