无法休眠两次

无法休眠两次

我正在运行 Ubuntu 13.10,我成功地挂起到 RAM,没有任何意外。但是,第二次挂起到磁盘(休眠)时(重启后)不起作用。

我尝试用pm-hibernate和 来冬眠uswusp

重新启动后第一次运行正常,但如果我再次尝试休眠,它就会挂起s2disk snapshooting system并显示消息,我必须重新启动。

我的交换分区比我的 RAM 还大。

我的/etc/default/grub

GRUB_DEFAULT="5"
GRUB_HIDDEN_TIMEOUT_QUIET="true"
GRUB_TIMEOUT="10"
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="resume=UUID=6a6e6406-4022-4620-bb36-fbf29f5c1cdf"
GRUB_SAVEDEFAULT="false"

我更改 CMDLINE_LINUX 参数后运行 update-grub。

我的/etc/initramfs-tools/conf.d/resume

RESUME=UUID=6a6e6406-4022-4620-bb36-fbf29f5c1cdf

修改后更新如下:

sudo update-initramfs -u

我尝试使用以下命令“重新设置”我的交换:

sudo swapoff -a && sudo swapon -U 6a6e6406-4022-4620-bb36-fbf29f5c1cdf

但它并没有改变任何事情。

输出free -m

               total       used       free     shared    buffers     cached 
 Mem:          1865         644       1220          0        111        328
 -/+ buffers/cache:         205       1659 
 Swap:         2044           0       2044

name -a 的输出:

Linux QuoraF 3.11.0-13-generic #20-Ubuntu SMP Wed Oct 23 07:38:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

第一次休眠后,是否有办法重新设置错误?我猜想系统在某处创建了某些东西,而这些东西会阻止后续休眠。

答案1

找到了解决方案。正在运行:

sync && sudo sysctl -w vm.drop_caches=3 && sudo sysctl -w vm.drop_caches=2

将清除缓存,并且系统将能够在重新启动后再次进入休眠状态。

我现在不知道内存中积累了什么或为什么积累了一些东西。它应该是一个堆栈系统,其中新条目会拖出不再需要的条目。

对于运行时使用交换空间的系统,Wilf 的提示仍然有效。我仅将其用于休眠 这意味着,我有 2 GB,但只使用了 1 GB。例如,如果我需要 3 GB,我将无法使用 2GB 交换分区来休眠我的 2GB RAM 计算机。

答案2

我为我的机器 Asrock Z97 Fatal1ty 找到了一个解决方法,因为 HIBERNATE_MODE="platform" 不起作用,但 "shutdown" 起作用。在终端中以 root 身份输入以下命令进行测试

echo shutdown > /sys/power/disk

进而

echo disk > /sys/power/state

执行了休眠,并且我尝试了多次都成功了。我尝试了几个指南,试图将默认模式从“平台”更改为“关机”,但都不起作用,所以我在下面添加了以下行

/etc/rc.local

echo shutdown > /sys/power/disk 

然后保存文件。

编辑:我最初在原始答案中输入了“echo shutdown > /sys/mode/disk”和“echo disk > /sys/mode/state”,后来意识到了自己的错误。我还尽我所能格式化了代码。抱歉编辑量异常大。

您可以通过创建该文件来启用休眠菜单选项:

/var/lib/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
ResultActive=yes

然后注销并重新登录,休眠模式将出现在注销菜单选项中,每次都有效。我知道有人可以改进这个答案,但我想我还是会分享对我有用的方法。理想情况下,人们会找到正确的文件来编辑 pm-utils 的默认休眠模式,但就像我说的,我试过了,但什么都没用,但这个有用。我遇到的唯一警告是,你现在必须按下电源按钮才能从休眠状态恢复,因为键盘不会像在“平台”中那样唤醒计算机。希望这对某人有所帮助。

答案3

由于您很可能没有足够的交换空间用于休眠,因此您可能需要增加交换空间的大小。

关于交换规模应该有多大,人们有不同的看法,但以下是Fedora 64 位文档 (找不到 Ubuntu...有一个,我很久以前就找到它了...)

对于 <2GB,建议交换大小应为“RAM 数量的 3 倍”。

因此,它建议使用 3 倍的 RAM 量。最终结果是 5595Mib(5.5GiB),这应该足够了。我认为这是为了允许可能的 RAM 溢出加上休眠的大小。关于增加交换空间的实际过程,有几个不错的答案这里

如果有上述信息的 Ubuntu 版本,我很乐意替换为

相关内容