Ubuntu 18.04でGRUBタイムアウトを0に設定する方法


11

grub構成ファイルを0の値にタイムアウトするように更新しようとしたため、OSはすぐに起動します。/etc/default/grubUbuntu 18.04で構成ファイルを変更してから実行しました。

sudo update-grub

うまくいきませんでした。私も走った:

sudo grub-mkconfig
sudo update-grub

しかし、それらは機能しませんでした。

この問題を解決するためにWebで多くのことを検索しましたが、すべてのガイドでupdate-grubコマンドを実行して、構成/etc/default/grubファイルごとにgrubを更新するように言われています。Ubuntu 18.04がgrubファイルを別の方法で処理するかどうかはわかりませんが、grubをパラメーターで更新できません。

これは私の/etc/default/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=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
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"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

3
質問を編集して、変更したgrub構成ファイルを含めてください。それ以外の場合は、あなたが何をしたかを推測しようとしています。
オーガニックマーブル

他のディストリビューションがインストールされていますか(デュアルブート)?
mook765

動作しませんでした。デフォルトでは@Melebius
Bob91

同じssdのウィンドウと他のhddにインストールされている他のディストリビューションがありますが、先月(ubuntu 18の代わりに)fedora 27があり、grub configファイルを変更したときに動作しました。他のディストリビューションはこの動作@ mook765
Bob91

1
あなたは実行してもらえブート情報編集をその結果の情報のログへのリンクが含まれるようにあなたの質問?ありがとう。
デビッドフォースター

回答:


12

では/boot/grub/grub.cfgファイルが存在条件は、タイムアウトは、あなたの中にタイムアウトを0に設定した場合、つまり、0に設定されている場合は10にタイムアウトを設定している、ほとんどのファイルの末尾に、あり/etc/default/grub、その後、GRUBを更新し、上記の条件10秒にリセットします。

if [ "${timeout}" = 0 ]; then
     set timeout=10
fi

ただし、/boot/grub/grub.cfg読み取り専用ファイルであり、その状態を削除することはできません。でタイムアウトの異なる値を使用していくつかのテストを行いました/etc/default/grub。1ms(0.001)、0.1s、1sで試しましたが、1未満の値(0.1や0.001など)は同じように機能し、タイムアウトが0に設定されているのとほぼ同じであることがわかりました。


work in the same way and almost like timeoutこれは、bashの数学が整数のみをサポートしているためです。違いを生む最短のタイムアウトは1です。
マルシンオルロ

5

私の場合、問題は私のシステムが "recordfail"をサポートしていなかったため、デフォルトで30秒のタイムアウトが設定されたgrub.cfgに別のブロックが追加されることでした。の関連コード/etc/grub.d/00_header

if [ "$recordfail_broken" = 1 ]; then
  cat << EOF
if lsefi; then
  set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}
  if [ x\$feature_timeout_style = xy ] ; then
    set timeout_style=menu
  fi
fi
EOF

修正は、単にGRUB_RECORDFAIL_TIMEOUTinに値を追加し、再度/etc/default/grub実行update-grubすることです。例えば:

GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

# Adjusted timeout for system which doesn't support recordfail
GRUB_RECORDFAIL_TIMEOUT=2

# 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"

3

他の答えが言うように、コメントを外しGRUB_HIDDEN_TIMEOUTて実行しupdate-grubます。次にコメントアウト

if [ "${timeout}" = 0 ]; then
  set timeout=10
fi

のセクション/boot/grub/grub.cfg。vimでは、感嘆符で読み取り専用プロパティをオーバーライドできます:x!。または、実行できます

sudo chmod +w /boot/grub/grub.cfg
sudo vim /boot/grub/grub.cfg
sudo chmod -w /boot/grub/grub.cfg

ファイルの編集中に一時的に書き込み権限を付与します。


3
あなたは正しいですが、私はあなたがgrubを更新するたびに(手動で、またはOSのアップグレードがある場合)、/boot/grub/grub.cfg上記の条件で再作成されると思います。
Bob91

2
私が最近経験したように、ファイルは更新時に上書きされます。
asantas93

1

あなたは、設定することができますGRUB_TIMEOUT0

タイムアウト値を上書きする部分ajust_timeoutは、の上部の関数に書き込まれます/etc/grub.d/30_os-prober

ajust_timeout () {
...
if [ "\${timeout}" = 0]; then
  set timeout=10
fi
...
}

したがって、ファイルを編集して値を設定し、if-blockをコメントアウトできます。


1

あなたは、設定することができますGRUB_TIMEOUT-1

例:GRUB_TIMEOUT="-1"


'GRUB_TIMEOUT'キーが押されない限り、メニューが表示されてからこの数秒でデフォルトのエントリを起動します。デフォルトは「5」です。メニューを表示せずにすぐに起動するには「0」に設定し、無期限に待機するには「-1」に設定します。コマンドからinfo -f grub -n 'Simple configuration
ビジェイ


0

行を追加するだけです

set timeout=0

/etc/grub.d/40_custom、ファイルを実行可能にする

chmod +x /etc/grub.d/40_custom

そして走る

sudo update-grub

新しい/boot/grub/grub.cfg-file を生成します。set timeout私たちが最後である追加-command set timeoutで-command /boot/grub/grub.cfg数えるものです今、。


-1

解決策は追加することです

GRUB_RECORDFAIL_TIMEOUT=0

/etc/default/grub

他のすべてのソリューションは、grubの更新時にリセットされます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.