休眠到磁盘无法恢复,但挂起到内存正在工作

休眠到磁盘无法恢复,但挂起到内存正在工作

我有 Debian 6,我也在 Ubuntu 下看到过​​这个(不记得我是如何修复它的)。

我可以休眠,但是当我打开系统冷启动时(它不会恢复以前的会话)。


注意暂停工作正常。 已查看“/var/log/pm-suspend.log 显示每个suspend suspend块一个resume suspend块,但hibernate hibernate' is not followed by恢复休眠”(我认为这是预期的。


安装了 hibernate 包,因为我认为可能需要它,但没有什么区别。


我刚刚开始寻找,找不到/usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux或者/usr/lib/hal我搜索了电源文件(都在那里吗?:

find /usr/lib -iname "*power*"
/usr/lib/libupower-glib.so.1
/usr/lib/klibc/bin/poweroff
/usr/lib/python2.6/dist-packages/axiom/test/test_powerup.pyc
/usr/lib/python2.6/dist-packages/axiom/test/test_powerup.py
/usr/lib/upower
/usr/lib/upower/upowerd
/usr/lib/libupower-glib.so.1.0.1
/usr/lib/gnome-power-manager
/usr/lib/pymodules/python2.6/OpenGL/raw/GL/ARB/texture_non_power_of_two.pyc
/usr/lib/pymodules/python2.6/OpenGL/raw/GL/ARB/texture_non_power_of_two.py
/usr/lib/pymodules/python2.6/OpenGL/GL/ARB/texture_non_power_of_two.pyc
/usr/lib/pymodules/python2.6/OpenGL/GL/ARB/texture_non_power_of_two.py
/usr/lib/pymodules/python2.6/coherence/upnp/services/servers/switch_power_server.py
/usr/lib/pymodules/python2.6/coherence/upnp/services/servers/switch_power_server.pyc
/usr/lib/pymodules/python2.6/coherence/upnp/services/clients/switch_power_client.pyc
/usr/lib/pymodules/python2.6/coherence/upnp/services/clients/test/test_switch_power_client.py
/usr/lib/pymodules/python2.6/coherence/upnp/services/clients/test/test_switch_power_client.pyc
/usr/lib/pymodules/python2.6/coherence/upnp/services/clients/switch_power_client.py
/usr/lib/pymodules/python2.6/coherence/upnp/core/xml-service-descriptions/SwitchPower1.xml
/usr/lib/pm-utils/power.d
/usr/lib/pm-utils/power.d/sched-powersave
/usr/lib/pm-utils/sleep.d/00powersave
/usr/lib/rhythmbox/plugins/power-manager
/usr/lib/rhythmbox/plugins/power-manager/libpower-manager.so
/usr/lib/rhythmbox/plugins/power-manager/power-manager.rb-plugin

答案1

我必须在运行 Debian 测试 (Jessie/Sid) 的笔记本电脑上处理这个问题。

可能相关:LVM 卷(未加密)上的交换分区/dev/vg1/swap

为了使系统在休眠后恢复,我必须编辑/etc/default/grub和更改

GRUB_CMDLINE_LINUX=""

GRUB_CMDLINE_LINUX="resume=/dev/mapper/vg1-swap"

然后运行update-grub

如果您希望内核在从 GRUB 菜单中选择恢复选项时不检查恢复映像,那么您需要修改GRUB_CMDLINE_LINUX_DEFAULT而不是GRUB_CMDLINE_LINUX.

我本来希望自己update-grub写入任何必要的resume=参数/boot/grub/grub.cfg,而不需要如此明确。

resume=然而,脚本片段内部唯一提到的/etc/grub.d是与 OSX 支持有关的片段。不知道那里发生了什么。

答案2

这是 Ubuntu / Debian 中休眠和挂起的常见问题。

安装uswsusp

sudo apt-get install uswsusp

然后分别尝试以下暂停和休眠,

sudo s2ram

sudo s2disk

如果它有效,那么您可以将其永久化,备份以下内容,

sudo cp /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux.bak

sudo cp /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux.bak

并编辑以下内容,

/usr/lib/hal/scripts/linux/hal-system-power-suspend-linux

#!/bin/sh
/sbin/s2ram –force

/usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux

#!/bin/sh
/sbin/s2disk

答案3

如果您更改了硬盘或分区表,那么您的计算机将保存一个会话,但无法在开机时恢复它,就像重新启动而不是休眠一样。

在这种情况下,您必须告知 initramfs-tools 正确的分区 uuid。首先,记下交换分区的 ID

$ ls /dev/disk/by-uuid -la

然后,相应地编辑文件 /etc/initramfs-tools/conf.d/resume 。

最后更新 initramfs 为

# update-initramfs -u

如果还是不行,尝试将恢复分区也指定给Grub。然而,这应该不是必要的。

编辑文件 /etc/default/grub 指定交换分区的 UUID:

GRUB_CMDLINE_LINUX="resume=UUID=6098d082-4654-4840-8937-7337d14b2c5d other-option=value"

或者只是使用该设备

GRUB_CMDLINE_LINUX="resume=/dev/sda1 other-option=value"

不要忘记更新 Grub。

# update-grub

重新启动,并尝试休眠:

# pm-hibernate

答案4

对于suse,解决方案可以在这里找到:

https://www.suse.com/support/kb/doc/?id=000020287

相关内容