如何在 16.04.1 中激活休眠?(系统化)

Mar*_*arc 44 hibernate systemd-logind systemd 16.04

我在 Lenovo T450s 上全新安装了 16.04.1,它在 Ubuntu 上的挂起/休眠方面始终运行良好(我使用的先前版本是 14.04.5)。在此安装中,Swap 比 RAM 大得多。

正如我现在习惯的那样,安装后我尝试继续使用通常的休眠激活方法。不过,这次sudo pm-hibernate 好像什么都没有做,事情似乎有些不同。

据我了解,现在 ubuntu 已经切换到 systemd,正确的命令是systemctl hibernate 返回

 Failed to hibernate system via logind: Sleep verb not supported
Run Code Online (Sandbox Code Playgroud)

我尝试了这里提到的解决方案,但它们主要是为了重新启用pm-hibernate并使其成为注销菜单中的一个条目。我还看到一种可能的解决方案是安装 Tuxonice 内核,但没有尝试,因为我不太热衷于篡改内核,尤其是使用 PPA 内核。

那么,有没有办法在最后一个基于 systemd 的 Ubuntu 版本上重新激活休眠?最好使用 systemd,并避免潜在的系统破坏性黑客攻击。还是我只需要等待并希望直到下一次更新?

Mar*_*arc 47

我终于能够按照Fedora上的一些主题解决我自己的问题(他们不久前切换到 systemd,因此那里有更多材料)。

事实证明,我启用了安全启动(我记得在 16.04 安装期间有人问过这个问题,我没有考虑太多就一直开着),这导致输出为cat /sys/power/disk

 [disabled]
Run Code Online (Sandbox Code Playgroud)

确实不是一个很好的迹象。所以我重新启动并在我的 BIOS 设置中搜索,在那里禁用安全启动。现在cat /sys/power/disk让我:

 [platform] shutdown reboot suspend 
Run Code Online (Sandbox Code Playgroud)

哪个看起来更好。并且确实调用会systemctl hibernate导致成功的休眠/解冻序列。

此外,休眠选项现在显示在图形界面中,无需任何黑客攻击(至少在我的计算机上)。

  • 这应该添加到 Ubuntu 文档中:https://help.ubuntu.com/stable/ubuntu-help/power-hibernate.html (4认同)

nh2*_*nh2 20

当您的交换空间太小而无法容纳您的 RAM 内容时(例如,当您在设置操作系统后向计算机添加更多 RAM 时),也会发生这种情况。

签入例如htop,然后Mem数字应该是<=Swp数字。

https://github.com/systemd/systemd/issues/6729