3
19
2011
10

Ubuntu下折腾分区后休眠不能唤醒问题的解决

本文来自依云's Blog,转载请注明。

我自以为把 Linux 的分区相关的东西折腾得比较熟了,所以就大胆地在本机上折腾分区,结果有一天就发现,在我在 /etc/fstab 里把 swap 区从UUID指定改成用LABEL指定之后,休眠可以成功,但唤醒失败。在开机后应当从 swap 分区恢复的时候,出现错误,然后就直接启动了,其间还毁掉了 swap 分区的内容。这么试过了两次,都失败了,于是我带着迷惑,再也没有试过了。

前天在群里看到这个链接,终于恍然大悟——原来还有个配置文件/etc/initramfs-tools/conf.d/resume!它指明了唤醒时从哪个分区恢复。当初改 swap 后我只改了fstab但没有改它,所以可以正常使用却不能唤醒。不过重新生成 initrd 时为什么没有自动更新 resume 文件呢?而且休眠时系统也不检查下resume文件,郁闷。不知道休眠时能不能指定休眠到哪个分区上呢?

resume文件的内容相当简单,就一行,像这样RESUME=LABEL=swapRESUME=后面的格式和 fstab 的第一栏一样。改了后还要sudo update-initramfs -u更新 initrd。

另外,唤醒不成功的时候我曾尝试过 s2disk 这个工具,但昨天发现,虽然它在休眠时有进度显示,可是在唤醒的时候失败了——当进度达到 100% 时就没动作了,我的桌面也就没能回来……

Category: Linux | Tags: linux ubuntu | Read Count: 16651
autoxbc 说:
Mar 20, 2011 12:37:39 PM

猜测系统只要检测到 /proc/swaps 中有启用的交换,就可以直接休眠到其中,甚至不区分是交换分区还是交换文件。至于休眠唤醒,会去 initrd.img 中查看 resume 的设置,也就是来自 /etc/initramfs-tools/conf.d/resume 的部分。不过还有一个更直接的方法,就是在 grub 中指定 kernel ...... resume=/dev/sdaX,这样直接跳过上面全部设置,启动时还可以在 grub shell 中用 e 命令查看,我觉得是首选。

Avatar_small
依云 说:
Mar 20, 2011 01:56:40 PM

在发现这个 resume 文件之前,我哪里知道是这个问题呢。既然有配置文件那还是用它吧,grub 在出了问题时再用。

Fermat 说:
Mar 22, 2011 09:22:27 PM

很久以前我也遇到过,直接指定内核resume参数搞定的。但我现在休眠老是一些驱动有问题,现在都懒休眠了。

o(∩∩)o...哈哈 说:
Mar 25, 2011 09:25:29 PM

(*^__^*) 嘻嘻…… 我来过噢,那个链接是我发滴

minicn 说:
Jun 10, 2011 09:38:06 PM

生命不息,折腾不止

kaji331 说:
Apr 06, 2012 10:00:00 PM

我这个文件下就RESUME=UUID=XXX-XXX-XXX-XXX-XXX
和我fstab里的swap一样的,可是我依然不能休眠或挂机后正常唤醒,也没有专有驱动。悲剧啊~win7最稀饭的就是不用电脑了屏幕一盖就好,东西在内存里,机器其他都断电,下次从挂机恢复,速度快又方便,反正笔记本有电池,不怕断电!

Avatar_small
依云 说:
Apr 06, 2012 10:19:55 PM

我也很喜欢挂起呵,现在已经七天没关机了,不用时就挂起。休眠几乎不用了。你的「不能休眠或挂机后正常唤醒」是什么情况呢?

kaji331 说:
Apr 07, 2012 04:25:52 PM

就是无法唤醒,无论休眠还是挂起,休眠就变成了重新开机启动,挂起恢复就是黑屏,什么反应都没有,只能强行重启

Fermat618 说:
Apr 07, 2012 05:09:14 PM

唤醒失败倒是经常的事,见怪不怪了。

Avatar_small
Jacky Liu 说:
Mar 27, 2013 02:04:42 PM

电脑芯片内的存储部件会因为被空间带电粒子击中而发生状态偏转。一般电脑(非服务器)内部没有有硬件纠错设计,所以不适合长时间不间断运行。

当然以上有一部分是我的脑补,至于具体哪些是我记不得了 :)


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

| Theme: Aeros 2.0 by TheBuckmaker.com