我正在运行 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...有一个,我很久以前就找到它了...):
因此,它建议使用 3 倍的 RAM 量。最终结果是 5595Mib(5.5GiB),这应该足够了。我认为这是为了允许可能的 RAM 溢出加上休眠的大小。关于增加交换空间的实际过程,有几个不错的答案这里。
如果有上述信息的 Ubuntu 版本,我很乐意替换为