休止状態を有効にすると、起動時に30秒のタイムアウトでGRUBメニューが表示されます。

休止状態を有効にすると、起動時に30秒のタイムアウトでGRUBメニューが表示されます。

私のシステムはデュアル ブートではなく、単一の OS UBUNTU 16.04 です。次の変更を行う前は、起動時に Grub 画面が表示されませんでした (OK)。

以下の手順を実行した後、Ubuntu 16.04 で休止状態にするにはどうすればいいですか?システムメニューで休止状態を有効にするには:

  1. ターミナルを開いて次のように入力します。

    sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
    
  2. 空のファイルに行を追加します。

    [Re-enable hibernate by default in upower]
    Identity=unix-user:*
    Action=org.freedesktop.upower.hibernate
    ResultActive=yes
    
    [Re-enable hibernate by default in logind]
    Identity=unix-user:*
    Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
    ResultActive=yes
    
  3. ^X、次に Y を押して保存します (ファイル名が提案されましたが、メモせずに受け入れました)。

  4. 変更を有効にするには再起動してください。

休止状態が機能し、メニューに表示されるようになりました (OK)。しかし、再起動するたびに、起動時に 30 秒のタイムアウトが設定された Grub メニューが表示されます (NOK)。Grub メニューのタイムアウト設定をいろいろ試してみましたが、タイムアウトは 30 秒のままです。Grub メニューが表示されないようにし、これらの変更を行う前の起動時間まで短縮するにはどうすればよいでしょうか。

現在の Grub 設定。

GRUB_DEFAULT="0"
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="quiet splash"
GRUB_CMDLINE_LINUX=""

答え1

休止状態後に 30 秒のタイムアウトがありましたが、文書化されていない設定がGRUB_RECORDFAIL_TIMEOUT機能しました。

GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT

見るこれ詳細については回答してください。

答え2

他の回答に反対票を投じるのは申し訳ないのですが、そこで与えられたアドバイスは、起動に失敗したとき(ハードウェアの故障などにより)のタイムアウトを変更するため、根拠がありません。

Grub には、最後のブートが成功したかどうかを記録する特別なファイルがあります。最初は、ビットを使用してブートが失敗したと記録しrecordfail、メイン OS が引き継ぐときにそのビットを削除します。こうすることで、ブートが失敗した場合、次のブート時に Grub はそのビットがまだ存在していることを検出しrecordfail、何が起こるかを確認する時間をユーザーに与えることができます。

しかし、休止状態から復帰するときに、OS はそのビットを削除しません。そのため、スクリプトを書いて削除するように指示する必要があります。解決策としては、次の内容のファイルを置くことです/lib/systemd/system-sleep/10_grub

#!/bin/sh

case $1 in
        post)
                grub-editenv - unset recordfail
                ;;
esac

次に、実行可能にしますsudo chmod +x 10_grub

もう一つの方法は、説明したようにsystemdサービスを使用することです。そこには

関連情報