GRUB2のバグ対処まとめ

More than 3 years have passed since last update.

筆者の環境は以下のとおりである。

Lightning AM

CPU:AMD A8-7600 MPK

OSなしのモデルにfedora21をインストールした

すると起動すると

fedoraXXXXXXXXXXXXXXXXX

fedoraXXXXXXXXXXXXXXXXxxxxxのように複数選べるブートメニューのようなものが出てきた。

これはgrubと呼ばれるものらしい。

wikiには”GNUにて開発されている高機能なブートローダである”と書かれている。

ブートを知らない人はまずこの記事を見ないであろうので割愛する。

ブートするOSを管理するものだと思ってもらえばそれでいい。

grubとgrub2ではこの表示を消したりするやり方が異なる。

今回はgrub2を中心に書いていく。

ルート(sudo su)になってvim で /etc/default/grubを開く。

grub2以前ではgrub.cfgというファイルを編集するようだったらしいがgrub2からは/etc/default/grubを編集して最後にそれをBuild実行ファイルにするという流れらしい。

まだ新しいものでいろいろなバグがあるがfedoraを使った運命だろうw

そして以下の部分を編集する。

GRUB_TIMEOUT=5(修正前) とデフォルトではなっているのでここを1にする。

GRUB_TIMEOUT=1 (修正後) とする。

これは秒単位で5秒経てばタイムアウトして、GRUB_DEFAULTに設定されているOSを起動するというもの。

GRUB_DEFAULT=savedは以前起動したOSを起動するというオプション

GRUB_DEFAULT=0とすれば一番最初に登録されていたOSを起動する。次には1その次は2という流れで指定できる。

以下、私の環境の設定です。


/etc/default/grub


GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
#最初に登録されたOSを起動する
GRUB_DEFAULT=0
#0にしたいところだがバグったりうまくいかないので1にする
GRUB_TIMEOUT=1
#0にしたいところだがバグったりうまくいかないので1にする
#メニューを非表示にして、一秒後にDEFAULTのOSを起動するという流れ
GRUB_HIDDEN_TIMEOUT=1
#これを追加しとくとバグが出なくなってうまくいく。
#trueだとカウントダウンされている間もメニューは非表示にするということ
GRUB_HIDDEN_TIMEOUT_QUIET=true
#サブメニューの非表示
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=fedora/swap rd.lvm.lv=fedora/root rhgb quiet"
GRUB_DISABLE_RECOVERY="true" 

そして最後が一番重要。

grub-mkconfigしてbuildすると書いてあるサイトもあるが、これでは私の環境ではうまくいかなかった

なのでいかに修正して実行する

grub2-mkconfig -o /boot/grub2/grub.cfg

以上で私の環境ではうまくいった。

grub2は絶賛開発中らしいのでこれから仕様はどんどん変わっていくと思う。。

(2015/04/09)