【问题标题】:Ubuntu 18.04 update hibernate hangsUbuntu 18.04 更新休眠挂起
【发布时间】:2018-08-28 23:20:26
【问题描述】:

将 ubuntu 16.04 更新到 18.04 后,我无法让休眠模式工作。

我什么都试过了:

sudo -s

echo 平台 > /sys/power/disk

回显磁盘 > /sys/power/state

sudo -s

echo 关机 > /sys/power/disk

回显磁盘 > /sys/power/state

sudo apt-get install uswsusp

sudo s2disk

安装hibernate 2.0+15+g88d54a8-1.deb

sudo 休眠

在任何情况下,计算机都会挂在空白屏幕上并且永远不会关闭。 另一方面,挂起正在工作。但是我需要保存到磁盘,这样我才能拔掉电脑。

有人遇到这个问题并解决了吗?

【问题讨论】:

    标签: hibernate ubuntu


    【解决方案1】:

    我从高处寻找解决这个问题的方法。无论我尝试了多少不同的方法,我的戴尔 E7450 都无法休眠。许多不同的文章引用了 fstab 中包含 UUID 的条目,但我的 fstab 交换文件条目安装在 /swapfile 此处,因此许多文章不适用。

    有一天我偶然发现这篇文章确实有效!这是一连串的步骤,所以要注意,这是唯一有效的方法,所以按照这些步骤进行操作,你会欣喜若狂! (我不能把这个归功于任何人!):

    https://fitzcarraldoblog.wordpress.com/2018/07/14/configuring-lubuntu-18-04-to-enable-hibernation-using-a-swap-file/

    【讨论】:

      【解决方案2】:

      这里是 Ubuntu 18.04 的所有“可能”步骤,确保所有步骤都通过。由于您正在升级,这有点棘手。

      1- 确保已安装休眠

      sudo apt install pm-utils hibernate pm-hibernate
      

      那就试试吧:

      sudo pm-hibernate
      

      (对你来说这一步不起作用)

      2- 确保您有足够的交换并且您指向正确的交换

      运行这个来检查你的交换:

      grep swap /etc/fstab
      

      你应该得到类似的东西:

      swap was on /dev/nvme0n1p5 during installation
      UUID=xyz-bb32-4ad2-aaeb-xyz none     swap    sw    
      

      如果没有,那么您需要创建一个(我想这对您有用)。

      3- 将swap的UUID复制到grub中

      将上一步的 UUID 复制到 grup 文件中(我很确定这是你的问题。

      sudo gedit /etc/default/grub
      

      然后将简历更改为 UUID 而不是开发名称:

      GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=xyz-bb32-4ad2-aaeb-xyz"
      

      4- 启用休眠(如果尚未启用)

      sudo gedit /var/lib/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
      ResultActive=yes
      

      5- 合上盖子时休眠

      sudo gedit /etc/systemd/logind.conf
      

      并包括

      #HandleLidSwitch=suspend 
      HandleLidSwitch=hibernate
      

      【讨论】:

      • 最后我重新安装了一个新版本的 Ubuntu 18.04,我读到它不需要交换分区。相反,我有一个 20Gb(16GB RAM)的交换文件,但仍然无法正常工作。我遇到了同样的问题;当我休眠时,我得到一个空白屏幕并且计算机永远不会关闭。
      • 在shell中运行sudo pm-hibernate时会出现这种情况吗?
      • 睡眠有效吗? (已知 18.04 存在问题)。另外,你的笔记本电脑是什么?
      • 是的,我运行 sudo pm-hibernate,然后我得到一个黑屏,顶部显示一条消息“s2disk ....”,它冻结了,从不切换电脑。是的,睡眠模式运行良好,但我需要打开电脑电源。它是台式电脑(I7,16GB RAM)而不是笔记本电脑。
      • HandleLidSwitch 中的一个小错别字:Lid 而不是 lid。
      【解决方案3】:

      如果您使用的是交换文件,我建议您按照本教程重新开始,这将确保正确配置:

      https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-18-04

      【讨论】:

      • 谢谢,我已经看过这个指南并且已经有一个活跃的交换文件了。
      【解决方案4】:

      您正在使用 uswsusp - 它有一个关于休眠期间冻结的开放错误,特别是当有太多数据要写入交换时,缓冲 IO 作为休眠的一部分被挂起: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1819915

      该错误似乎仍然存在,但线程底部的一个人发布了一个在 Ubuntu 18.04 上对我有用的解决方法:

      我可以通过编写 Hibernate 脚本和 为其分配键盘快捷键:

      #!/bin/sh
      echo Unlimiting IO cache...
      sudo sysctl -w vm.dirty_ratio=100
      sudo sysctl -w vm.dirty_background_ratio=100
      
      sleep 5
      sudo s2disk
      
      echo Re-limiting IO cache...
      sudo sysctl -w vm.dirty_background_ratio=10
      sudo sysctl -w vm.dirty_ratio=20
      

      这会为休眠禁用缓存的磁盘 IO,并在恢复后恢复它。

      使用这种方法近一年来我没有遇到任何休眠问题。一个缺点是,如果您的电池电量严重不足,脚本将不会触发(尽管可能有办法做到这一点)。

      【讨论】:

        猜你喜欢
        • 2012-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多