2017年3月19日日曜日

Linuxデュアルブート環境でGRUBメニューを出さない方法

ちょっと前に悩んで裏ワザ的解決方法を見つけた(?)のでメモ。

いつの間にかデュアルブート環境でGRUBメニューが強制的に出るようになっていました。


今までは?

今までは /etc/default/grub
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

#GRUB_HIDDEN_TIMEOUT=0 のコメントを外すだけでいけたような記憶があります。

今は?

単に GRUB_HIDDEN_TIMEOUT=0 にするだけだと
# update-grub
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
こんな警告メッセージが出てしまいます。 さらに GRUB_TIMEOUT=0 にすると警告は消えるのですが、この状態ではなぜかメニューが出てしまいました。 /boot/grub/grub.cfg の中にこんな記述を発見。
if [ "${timeout}" = 0 ]; then
  set timeout=10
fi
なにこれ強制的に10にしてんの?

結局どうした?

調べた限りではこの条件を取り除く方法は見つかりませんでした。かといってこのファイルは自動生成されるので、直接編集するのはスマートな方法じゃないですよね。

試行錯誤の末にこうやりました。
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=00                    # ←ここがポイント
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_TIMEOUT=00 がポイント。0じゃなくて00にすればさっきの条件には引っかからないぞっと。

もう一度 update-grub 後に再起動したら、無事メニューが表示されずにLinuxが起動されました。

0 件のコメント:

コメントを投稿