grub2でdefaultでブートするOS/カーネルを変更する

grub2になってから、ブートメニュー等の設定を記述するブートローダの設定ファイルが/boot/grub2/grub.cfgになったのだけど、基本的にこのファイル自体を編集することは推奨されておらず、grub2-mkconfigなるコマンドを利用して作成するのが正しい手順。

正直、ちょっとデフォルトでブートするカーネルを変更するだけだったりすると、ファイルを直接編集した方が楽なのだけど、しょうがない*1

で、defaultでブートするカーネルの設定はfedora17の場合、/etc/default/grubに書きます。このファイルの内容を見てみるとこんな感じ。

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Fedora"
GRUB_DEFAULT=saved
GRUB_CMDLINE_LINUX="rd.md=0 rd.lvm=0 rd.dm=0 SYSFONT=True  KEYTABLE=us rd.luks=0 LANG=en_US.UTF-8 rhgb quiet"

まあ、見て分かるけど、default値の変更はGRUB_DEFAULTの値を変更します。例えばgrubのように0とか1とかの数字でもいいし、メニューに出てくる名前でもOKらしい。例えばFedora (3.5.2-1.fc17.x86_64)とか。↓のような感じね。

GRUB_DEFAULT="0"
とか
GRUB_DEFAULT="Fedora (3.5.2-1.fc17.x86_64)"

で、今回ちょっと困ったのは次のような場合、どうしたらいいのということ。具体的に説明すると、grub2ではmenuが階層化できて、例えば次のような感じにできる。

Fedora (3.5.2-1.fc17.x86_64)
Advanced options for Fedora Linux
Fedora release 16 (Verne)

ここで、Advanced options for Fedora Linuxを選択すると、次の画面に遷移して起動するカーネルを選択する。

Fedora, with Linux 3.5.2-1.fc17.x86_64
Fedora, with Linux 3.5.0-2.fc17.x86_64
Fedora, with Linux 3.3.4-5.fc17.x86_64

この場合、Advanced options ....の先のカーネルをdefaultで起動したかったらどうすればいいのということ。で、調べてみたところ、ここに説明があった。どうすれば良いかというと、

"1段目のデフォルト値>2段目のデフォルト値"

と書けば良いとのこと。例えば、Fedora, with Linux 3.5.0-2.fc17.x86_64をデフォルトで起動したい場合は

GRUB_DEFAULT="1>2"
とか
GRUB_DEFAULT="1>Fedora, with Linux 3.5.0-2.fc17.x86_64"

と記述すれば良いらしい。なるほど。


grub2って面倒臭くなっただけな気がするのは気のせい?

(参考)
https://help.ubuntu.com/community/Grub2/Setup#Configuring_GRUB_2

*1:今はファイル直接編集でも良いような流れ?