我启用了休眠,但它不起作用。我能做什么?

Anw*_*war 9 hibernate

我按照以下问题中给出的程序在 12.04 中启用了休眠:如何启用休眠?

但是,即使在我启用它之后,休眠也不起作用。不工作是指计算机正确休眠,但没有恢复。我总是给登录屏幕和一个新的会话。

如何启用成功恢复的休眠?

Anw*_*war 17

16.04 更新(2016 年 9 月)

如果您有btrfs分区,即使成功启用 Hibernate 也可能无法工作。正如这里的一个问题所揭示的

据透露,启用 UEFI 也会导致休眠问题。


启用休眠选项

为了启用 Hibernate,我遵循了 Dima 的这个答案

启用休眠后,您将可以在顶部面板的指示器会话菜单中选择休眠。但是,尽管您可以休眠,但您可能无法从休眠状态恢复。您将获得一个新的会话。修复方法如下。

能够从休眠状态恢复的修复 (12.04)

一些读者也证实了这一点在 14.04 上也有效

有两种方法可以解决这个问题。

1. 编辑/etc/initramfs-tools/conf.d/resume文件

  1. 首先获取交换分区的UUID。

     sudo blkid | grep swap
    
    Run Code Online (Sandbox Code Playgroud)

    这将输出类似于此的行:

    /dev/sda12: UUID="a14f3380-810e-49a7-b42e-72169e66c432" TYPE="swap"
    
    Run Code Online (Sandbox Code Playgroud)

    实际行将与此不匹配。在"..."双引号之间复制 UUID 的值。

  2. 打开简历文件

    gksudo gedit /etc/initramfs-tools/conf.d/resume
    
    Run Code Online (Sandbox Code Playgroud)

    在那个文件中,添加这样一行

    RESUME=UUID=a14f3380-810e-49a7-b42e-72169e66c432
    
    Run Code Online (Sandbox Code Playgroud)

    不要忘记替换从步骤 1 中获得的实际 UUID 值。保存文件并退出 gedit

  3. 然后在终端中,执行此命令

    sudo update-initramfs -u
    
    Run Code Online (Sandbox Code Playgroud)

您现在可以从休眠状态恢复

2. 编辑/etc/default/grub文件。

  1. 打开终端并执行以下命令打开它

    gksudo gedit /etc/default/grub 
    
    Run Code Online (Sandbox Code Playgroud)
  2. 会有一条像 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" . 编辑要RESUME=UUID=<your-uuid-value-here>在单词之后插入的行splash

    例如在我的情况下,编辑后的行看起来像这样

     GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=a14f3380-810e-49a7-b42e-72169e66c432" 
    
    Run Code Online (Sandbox Code Playgroud)

    确保您使用了从sudo blkid | grep swap命令中获得的 UUID 值。

  3. 然后执行这个命令

     sudo update-grub
    
    Run Code Online (Sandbox Code Playgroud)

这也使您能够成功地从休眠状态恢复。


在两个 Ubuntu 安装上测试,都有效