You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 24.04 LTS 休眠功能失效求助(原20.04 LTS正常,使用交换文件而非分区)

Ubuntu 24.04 LTS 休眠功能失效求助(原20.04 LTS正常,使用交换文件而非分区)

嘿,我太懂你这闹心的状况了——在20.04 LTS上用systemctl hibernate快捷键好好的,升级到24.04 LTS后,靠交换文件搞休眠,触发时要密码但啥反应都没有,还跟hibernate.target死磕上了。我来分享几个社区里亲测有效的排查和解决方法,都是踩过坑的经验:

  • 先把交换文件的基础配置盯牢
    24.04对交换文件的休眠支持要求更严谨,先确认这几点:

    • free -h检查交换文件大小,必须≥你的物理内存容量,不然存不下内存数据根本休眠不了。
    • 打开/etc/fstab,确保交换文件的挂载行带对参数,比如:
      /swapfile none swap defaults,x-systemd.device-timeout=0 0 0
      
    • 再创建/编辑/etc/initramfs-tools/conf.d/resume,写入RESUME=/swapfile,然后执行sudo update-initramfs -u更新启动镜像,这一步很容易忘!
  • 搞定hibernate.target的权限问题
    24.04默认把休眠的权限收得更紧了,普通用户执行可能被卡:

    • 创建一个polkit规则文件sudo nano /etc/polkit-1/rules.d/10-enable-hibernate.rules,粘贴以下内容:
      polkit.addRule(function(action, subject) {
          if (action.id == "org.freedesktop.login1.hibernate" && subject.isInGroup("sudo")) {
              return polkit.Result.YES;
          }
      });
      
    • 保存退出后,重启polkit服务sudo systemctl restart polkit,或者直接重启系统,再试试休眠。
  • 查日志找具体故障点
    如果上面两步都没解决,直接看报错日志准没错:

    • 手动执行systemctl hibernate,不管成不成功,立刻用journalctl -xe翻最近的日志,找带有“hibernate”“swap”“login1”关键词的错误信息,比如是不是交换文件的UUID没识别对,或者某个服务阻止了休眠。
    • 也可以用systemctl status hibernate.target看看这个target的状态,有没有激活失败的提示。
  • 确保休眠功能被系统启用
    有些时候24.04默认没开休眠选项,得手动打开:

    • 先执行sudo systemctl enable hibernate.target启用休眠目标。
    • 如果是GNOME桌面,还可以用命令开启图形界面的休眠选项:gsettings set org.gnome.settings-daemon.plugins.power hibernate true,或者在GNOME Tweaks的电源面板里勾选“允许休眠”。

试完这些步骤,大概率能解决问题。要是还不行,把日志里的错误信息贴出来,社区里的朋友也能帮你进一步排查~

备注:内容来源于stack exchange,提问作者The MAJOR

火山引擎 最新活动