启用休眠后,启动时出现 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. 重新启动以使更改生效。

休眠现在可以正常工作并出现在菜单中(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 服务,如下所述那里

相关内容