Systemctl hibernate 无法恢复,就像关机一样

Systemctl hibernate 无法恢复,就像关机一样

我厌倦了笔记本电脑在挂起时耗电过多的问题,因此想设置休眠模式。但是,我无法让它工作。Systemctl hibernate 关闭笔记本电脑,但再次打开时不会恢复到之前的状态。我在双启动配置中使用 Ubuntu 22.04.4 LTS 和 Windows 11,我正在尝试在联想 L13 Yoga 上休眠 Ubuntu(这是我主要使用的东西)。

我尝试了很多我在其他帖子中找到的东西,最后也是最重要的帖子是Ubuntu 18.04 休眠后无法恢复

目前我有以下配置:

猫/etc/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;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

[Enable hibernate to be run via cron]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=yes

猫/etc/initramfs-tools/conf.d/resume

RESUME=UUID=5147e4a0-81c2-440a-ba09-ae762f4304fb
RESUME_OFFSET=52942848

猫/etc/默认/grub

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT="saved"
GRUB_TIMEOUT_STYLE="hidden"
GRUB_TIMEOUT="10"
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=5147e4a0-81c2-440a-ba09-ae762f4304fb resume_offset=52942848"
GRUB_CMDLINE_LINUX=""

猫/etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/nvme0n1p5 during installation
UUID=5147e4a0-81c2-440a-ba09-ae762f4304fb /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=5E7F-D0A8  /boot/efi       vfat    umask=0077      0       1
#UUID=cbc63938-26a9-47c6-b63e-3a1a1b00ee09 none swap sw 0 0
/swapfile                                 none            swap    sw              0       0

免费-h

               total        used        free      shared  buff/cache   available
Mem:            15Gi       2,0Gi        10Gi       575Mi       2,7Gi        12Gi
Swap:           20Gi          0B        20Gi

sudo filefrag-v/swap文件

Filesystem type is: ef53
File size of /swapfile is 22548578304 (5505024 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..       0:   52942848..  52942848:      1:            
   1:        1..    2047:   52942849..  52944895:   2047:             unwritten

猫/系统/电源/状态

freeze mem disk

猫/系统/电源/磁盘

[platform] shutdown reboot suspend test_resume 

这是我所能想到的所有可能相关的信息。如果还有其他信息我可以提供,请询问。


编辑: 我删除了交换文件并创建了一个交换分区,尝试从那里恢复,按照https://help.ubuntu.com/community/SwapFaqhttps://www.geeksforgeeks.org/how-to-enable-hibernate-in-ubuntu-22-04-lts/。(因此,我现在看到以下 GRUB 菜单 在此处输入图片描述

编辑3:这只是因为我弄乱了启动菜单,我修复了它,现在它的行为与交换文件完全一样)但它仍然无法恢复我在休眠前打开的任何应用程序。有什么可以阻止我的笔记本电脑将 RAM 写入交换分区吗?


编辑2: 我过去曾使用“Grub Customizer”来编辑启动顺序脚本。虽然我没有用它来编辑启动菜单以包含恢复,但直接用 nano 编辑了文件。根据这个“https://ubuntuhandbook.org/index.php/2021/08/enable-hibernate-ubuntu-21-10/”,Grub Customizer 可能会干扰启用休眠?

答案1

在我使用 GRUB Customizer 制作的启动脚本中,我写了这样一行

linux   /boot/vmlinuz-6.2.0-39-generic root=UUID=5147e4a0-81c2-440a-ba09-ae762f4304fb ro  quiet splash $vt_handoff

其中“quiet splash”看起来像我必须在 /etc/grub/default 中更改的 GRUB_CMDLINE_LINUX 选项,所以我猜测这个脚本正在设置所有启动选项并忽略 /etc/default/grub。

因此我在此行中添加了 resume=UUID=X

linux   /boot/vmlinuz-6.2.0-39-generic root=UUID=5147e4a0-81c2-440a-ba09-ae762f4304fb ro  quiet splash resume=UUID=e638352c-0d3f-451d-ae01-86f7fbf6c74e $vt_handoff

现在它起作用了!

相关内容