web-dev-qa-db-ja.com

GRUBメニューを非表示にし、ShiftキーまたはEscキーでブート時に非表示のGRUBメニューを表示するにはどうすればよいですか

Ubuntu 16.10を実行していますが、電源投入時/起動時にGRUBメニューを非表示にしようとしています。 Shift または Esc キー。

/etc/default/grubの適切なオプションを変更しても、メニューは非表示になりません。

これを調査すると、2013年のこの投稿が見つかりました GRUB hidden menu not working これは問題がしばらく続いていることを示しており、/etc/grub.d/30_os-proberへの変更を提案します行う。このコードは、複数のOSが見つかったので、とにかくGRUB_TIMEOUT=10を設定することを示唆しています。

ここに、私が/etc/default/grubに持っているもののスニペットがあります... 10秒のカウントダウンのメニュー...

 GRUB_DEFAULT = saved 
 GRUB_SAVEDEFAULT = true 
 GRUB_HIDDEN_TIMEOUT_QUIET = true 
#GRUB_HIDDEN_TIMEOUT = 0 
 GRUB_DISTRIBUTOR = `lsb_release -i -s 2>/dev/null || echo Debian` 
 GRUB_CMDLINE_LINUX_DEFAULT = "quiet splash" 

#GRUB_HIDDEN_TIMEOUT=0のコメントを外すと、Sudo update-grubGRUB_TIMEOUT=10GRUB_TIMEOUT=0に設定することも要求します。それを行っても、GRUBメニューが表示されます。

terminalinfo -f grub -n 'Simple configuration'と入力すると、さまざまなオプションが説明され、情報の最後に、現在のコマンドの一部が減価償却されたことが示され、新しい置き換えのほうが優れていることが示唆されます。

16.10およびでGRUBメニューを非表示にする方法を知っている人はいますか? Shift または Esc 起動時にキー?

9
heynnema

わかりました、答えは...デュアルブート構成で隠しGRUBメニューを取得するには... 2つの編集...とSudo update-grub...

編集#1

マルチブート構成で非表示のGRUBメニューを取得するには、最初に/etc/default/grubを編集する必要があります。以下のコマンドを使用してこのファイルを開きます。

Sudo editor /etc/default/grub

ファイルが開いたら、これらの行を置き換えます

GRUB_HIDDEN_TIMEOUT_QUIET=true
#GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=10

これらと共に:

GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_TIMEOUT_STYLE=countdown
#GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=3

これにより、GRUBは3秒のカウントダウンタイマーを画面に表示します。これにより、ユーザーは Esc デフォルトのメニューを表示するキー。そうしないと、デフォルトのOSが起動します。

デフォルトOSを最後に起動したOSに設定する場合は、上記の「GRUB_TIMEOUT = 3」の下に次の2行を追加します。

GRUB_DEFAULT=saved    # change an existing line to this
GRUB_SAVEDEFAULT=true # add this line

編集#2

次に、OSプローブを更新して、クイックブート機能を無効にする必要があります。これを行うには、お気に入りのエディターで/etc/grub.d/30_os-proberを開き、10に置き換えて、次の行(17.04の23行目)を変更します。

quick_boot="1"

完了すると、行は次のようになります。

quick_boot="0"

ファイルを保存し、以下のコマンドを実行してブートローダーを再構成し、変更を適用します。

Sudo update-grub
7
heynnema
  1. /etc/default/grubで利用可能な「すべて」を試してみたいと思います。このリンクを読みましたか、

    help.ubuntu.com/community/Grub2/Setup#Configuring_GRUB_2

  2. /boot/grub/grub.cfgから次の行を削除することをお勧めします。

    ...
    set timeout_style=menu
    if [ "${timeout}" = 0 ]; then
      set timeout=10
    fi
    ### END /etc/grub.d/30_os-prober ###
    

    はい、わかっています。update-grubが実行されるたびに実行する必要がありますが、スクリプトを作成できます。

3
sudodus

Grub2 wiki からの抜粋によると、この問題は複数のOSが原因であると考えられます。

他のオペレーティングシステムが検出されない場合GRUB 2がデフォルトのオペレーティングシステムを直接起動し、メニューは表示されません。別のオペレーティングシステムが検出された場合、GRUB 2メニューwillが表示されます。

そして

OSの保存は、GRUB_DEFAULT = savedが/ etc/default/grubで設定されている場合にSudo grub-set-defaultを実行することで実現できます。 GRUB_SAVEDEFAULT = trueが/ etc/default/grubでも設定されている場合にも保存されます。 この場合、GRUB 2メニューまたはgrub-set-defaultコマンドから新しいOSが手動で選択されるまで、デフォルトOSは残ります実行されます。

Grub2 Wikiにも次のように記載されています:注:GRUBの非表示メニュー機能には、長年にわたって確認されているバグがあります1.97からGRUB 1.99まで。このページの説明で指定されているように、メニューが非表示にならない場合があります。 30_os-proberスクリプトを編集するとこの問題を解決できますが、このページの範囲外です。

回避策として、GRUB_TIMEOUT="1"を設定できます。メニューは1秒間しか表示されません。別のOSに切り替える必要がある場合は、その秒以内に下矢印キーを押すだけで、選択するまでメニューが表示されます。

バグに関連する潜在的な構文問題がある可能性があります。私はGrub2の専門家ではありませんが、私のgrubファイルではすべてのコマンドラインが= "some quoted setting"で終わります非引用符が変数に単純な数値を渡す文字列を渡すことでした。私はUP新しいコード技術ではありません。例えばgrubの出力の一部を次に示します。

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT="Ubuntu"
#GRUB_HIDDEN_TIMEOUT="0"
GRUB_HIDDEN_TIMEOUT_QUIET="true"
GRUB_TIMEOUT="1"
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

私はこれを調べています Grubbug :)および詳細情報 このバグ これらは両方ともGrub2に関連しています2yrs。この一部は、Grub2へのハンドオフ前のMBRコードに関連している可能性があります

3
xtrchessreal