啟用休眠 grub 選單後,啟動時會出現 30 秒逾時

啟用休眠 grub 選單後,啟動時會出現 30 秒逾時

我的系統不是雙啟動,只是單一作業系統 UBUNTU 16.04。在進行以下變更之前,Grub 畫面不會在啟動時出現(確定)。

請依照以下步驟進行操作後如何在 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. 重新啟動以使變更生效。

hibernate 現在可以工作並出現在選單中(OK),但每當我重新啟動時,我現在都會在啟動時看到一個 Grub 選單,並有 30 秒的超時時間(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,主作業系統在接管時刪除該位元。這樣,如果啟動失敗,下次啟動時,Grub 可以檢測到它recordfail仍然存在,並給用戶更多時間來檢查發生了什麼。

但是,當從休眠狀態解凍時,作業系統不會刪除該位元。所以我們必須透過編寫腳本來告訴它。解決方案是放置一個/lib/systemd/system-sleep/10_grub包含內容的檔案:

#!/bin/sh

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

然後使其可執行sudo chmod +x 10_grub

另一種方法是使用 systemd 服務,如下所述那裡

相關內容