“sudo systemctl start hibernate.target” 在 Acer B117 上使用传统启动时与 16.04 配合良好;更新到 18.04 迫使我使用 UEFI 和(Acer 要求)启用安全启动。暂停仍然有效,但我需要休眠。
交换分区处于活动状态且等于 RAM 大小 + 2GB;
GRUB_CMDLINE_LINUX_DEFAULT="安静启动恢复=UUID=myswapuuid"
journalctl -xe 显示无法访问 /sys/power/disk
cat /sys/power/disk:[已禁用]
cat /sys/power/state:冻结内存
有什么建议么?
答案1
我也有同样的问题,不幸的是,使用官方的 Ubuntu 内核是不可能的由于内核锁定补丁集 (efi-lockdown),自版本 4.13 以来。证实如下:
目前没有办法在从休眠状态返回时验证恢复映像。这可能会损害已签名的模块信任模型,因此,在我们可以使用已签名的休眠映像之前,我们会在内核锁定时禁用它。
您可以提交相关的 Bionic看这里。
这是一个有争议的决定,Linus拒绝合并这些变更到Linux内核。
您可以在文章中找到更多详细信息4.17 中的内核锁定?及其评论。
因此,当我们等待一些可以与已签名的休眠映像配合使用的神奇软件时,我们只能使用另一个内核或者禁用安全启动。
答案2
我能够使用 s2disk 或 pm-hibernate 进入休眠状态,但恢复失败。为了解决这个问题,因为我的系统是使用 UEFI 而不是 grub 启动的。我只需要重新安装引导加载程序。要检查您是否正在运行 UEFI,请使用以下命令:
[ -d /sys/firmware/efi ] && echo "Installed in UEFI mode" || echo "Installed in Legacy mode"
如果处于 UEFI 模式,那么我按照本指南重新安装引导加载程序,如果您使用 nvme 磁盘或 sata 磁盘,则情况会有所不同: https://support.system76.com/articles/bootloader/
关键是运行此命令:
sudo update-initramfs -c -k all
确保在你的内核启动选项中指定要从哪里恢复的分区或 UUID,例如像这样:
resume=UUID=ed8347ed-2eb4-40bc-bc77-cc53b987ed88
您可以通过以下方式添加:
- sudo kernel-stub -a“resume=UUID=…”
- 编辑 /etc/initramfs-tools/conf.d/resume 文件并添加:resume=UUID=ed8347ed-2eb4-40bc-bc77-cc53b987ed88
检查你的/var/log/syslog
文件是否有类似这样的内容:
Aug 4 22:26:42 pop-os /usr/bin/kernelstub[19639]: kernelstub : DEBUG kopts: root=UUID=b37019a8-91f5-445f-94c1-7359a49ed5df ro quiet loglevel=0 systemd
.show_status=false resume=UUID=ed8347ed-2eb4-40bc-bc77-cc53b987ed88
如果简历缺失或错误,则需要再次更新启动内核。