我的系統不是雙啟動,只是單一作業系統 UBUNTU 16.04。在進行以下變更之前,Grub 畫面不會在啟動時出現(確定)。
請依照以下步驟進行操作後如何在 Ubuntu 16.04 上休眠?在系統選單中啟用休眠:
打開終端機並輸入;
sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
將行加入空文件中;
[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
^X 然後 Y 儲存(建議了一個檔名,我沒有註意到就接受了)。
重新啟動以使變更生效。
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
答案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 服務,如下所述那裡。