我正在运行 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"
Run Code Online (Sandbox Code Playgroud)
我在更改 CMDLINE_LINUX 参数后运行 update-grub。
我的/etc/initramfs-tools/conf.d/resume:
RESUME=UUID=6a6e6406-4022-4620-bb36-fbf29f5c1cdf
Run Code Online (Sandbox Code Playgroud)
更改后更新它:
sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)
我尝试“重新设置”我的交换:
sudo swapoff -a && sudo swapon -U 6a6e6406-4022-4620-bb36-fbf29f5c1cdf
Run Code Online (Sandbox Code Playgroud)
但它没有改变任何东西。
的输出free -m:
total used free shared buffers cached
Mem: 1865 644 1220 0 111 328
-/+ buffers/cache: 205 1659
Swap: 2044 0 2044
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
有没有办法在第一次休眠后重新设置错误?我想象系统在某处创建了一些东西,而这个东西会阻止后续的休眠。
找到了解决方案。跑步:
sync && sudo sysctl -w vm.drop_caches=3 && sudo sysctl -w vm.drop_caches=2
Run Code Online (Sandbox Code Playgroud)
将清理缓存,并且系统将能够在重新启动后第二次休眠。
我现在不知道记忆中积累的是什么或为什么。它应该是一个堆栈系统,其中新条目拖出不再需要的条目。
Wilf 的提示对于运行时使用交换空间的系统仍然有效。我仅将其用于休眠 这意味着我有 2 GB,但只使用了 1 GB。例如,如果我需要 3 GB,我将无法使用 2GB 交换分区来休眠我的 2GB RAM 计算机。