从休眠状态唤醒会导致重新启动而不是恢复

从休眠状态唤醒会导致重新启动而不是恢复

我已经从官方 .iso 映像安装了新的 Fedora 32 工作站。到目前为止,除了休眠之外,一切正常。笔记本电脑进入休眠状态,没有任何错误并关闭。但是当我打开它时,它会像重新启动后一样开始,而不是恢复之前的状态。

# cat /proc/cmdline 
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-5.7.6-201.fc32.x86_64 root=/dev/mapper/fedora_localhost--live-root ro resume=/dev/mapper/fedora_localhost--live-swap rd.lvm.lv=fedora_localhost-live/root rd.lvm.lv=fedora_localhost-live/swap rhgb quiet

# swapon -s
Filename                Type        Size    Used    Priority
/dev/dm-1                               partition   11198460    0   -2

# ls -la /dev/mapper/fedora_localhost--live-swap 
lrwxrwxrwx. 1 root root 7 Jul  2 20:37 /dev/mapper/fedora_localhost--live-swap -> ../dm-1

就在关闭journalctl之前显示:

Jul 02 18:19:41 toczka systemd[1]: Reached target Sleep.
Jul 02 18:19:41 toczka systemd[1]: Starting Hibernate...
Jul 02 18:19:41 toczka kernel: PM: Image not found (code -22)
Jul 02 18:19:41 toczka systemd-sleep[2705]: Suspending system...
Jul 02 18:19:41 toczka kernel: PM: hibernation: hibernation entry
Jul 02 18:19:42 toczka kernel: rfkill: input handler enabled

我用新安装的 Fedora 31 测试了机器,并且休眠功能可以正常工作,然后看起来像是 Fedora 32 出现了一些问题。

答案1

我找到了解决问题的解决方案,但我不确定这是否正确。

如果

$ sudo lsinitrd -m | grep 'resume'

没有返回任何内容,则表明 initrd 中缺少恢复模块。要临时插入它,请执行以下操作:

$ sudo dracut -vf -a resume 

并使用之前的命令再次检查。如果它返回“恢复”,则尝试休眠并唤醒。现在应该可以了。可以通过将新规则文件添加到 dracut 中来永久设置更改,即在名为:

/etc/dracut.conf.d/99-resume.conf

其中应包含:

add_dracutmodules+="resume"

不要忘记通过以下方式更新 initramfs 文件:

$ sudo dracut -vf

一般来说,这是 Fedora 32 安装介质的问题。该问题已在这里描述:红帽错误 1795422

答案2

我遇到过这些问题并通过以下方式解决了它们:

  1. 您需要一个交换分区。
  2. 添加GRUB_CMDLINE_LINUX =“安静的splash,resume=/dev/sdXn”

其中 sdXn 与您设置的交换分区相同/etc/fstab。 (例如sda5)

您可以使用 uuid,而不是使用设备:resume=UUID=xxxx其中 xxxx 是交换分区的 uuid。由于我不知道 fedora,uuid 的替代方案可能是: resume=/dev/by/uid=xxxx

sudo update-grub更改后不要忘记发出。然后重新启动。

相关内容