无法hibernate两次

我正在运行Ubuntu 13.10,我设法在没有任何事件的情况下暂停到RAM。 但是,挂起到磁盘(hibernate),第二次执行时(重启后)不起作用。

我尝试用pm-hibernateuswusp来hibernate。

重新启动后第一次它很好,但如果我再次尝试hibernate,它将挂起消息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 

输出名称-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 

有没有办法在第一次hibernate后重新设置出错的地方? 我想这个系统会在某个地方创造出一些东西,这会阻碍随后的hibernate。

找到了解决方案。 运行:

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

将清理缓存,并且系统将能够在重新启动后第二次hibernate。

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

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

我找到了我的机器Asrock Z97 Fatal1ty的解决方法,因为HIBERNATE_MODE =“platform”不起作用但“shutdown”没有。 通过以root身份键入以下内容在终端中进行测试

 echo shutdown > /sys/power/disk 

然后

 echo disk > /sys/power/state 

进行了hibernate,并且按照我的尝试进行了多次。 我尝试了几个指南试图将默认模式从“平台”更改为“关闭”,但没有一个工作,所以我在下面添加了以下行

在/etc/rc.local

 echo shutdown > /sys/power/disk 

然后保存该文件。

编辑:我原来在原来的答案中键入了“echo shutdown> / sys / mode / disk”和“echo disk> / sys / mode / state”,意识到我的错误。 我也尽可能地格式化代码。 抱歉,编辑量不寻常。

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

/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 

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

由于您很可能没有足够的hibernate交换空间,因此您可能希望增加交换空间大小。

关于交换的大小应该是多少有不同的意见,但是这里有一个来自Fedora 64bit文档 (找不到Ubuntu一个……有一个,我确实发现它很久以前……)

For <2GB, it recommends  the swap should be '3 times the amount of RAM' in size.

因此,它建议RAM的3倍。 最终为5595Mib(5.5GiB),应该足够了。 我认为这是为了允许RAM的可能溢出加上hibernate的大小。 在增加交换空间的实际过程中,这里有一些很好的答案。

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