Friday, July 3, 2009

[工作] linux下的hibernate

之前一直使用pm-suspend挂起机器的, 从没有理会过hibernate.

昨晚朋友提出了一个hibernate问题, 就随便学习了一把.

他的问题是:
* OS为ubuntu, 本来gnome和pm-hibernate都可以正常
* 但是增加swap区后就只能hibernate而不能恢复了!

系统上有两个包可以做到hibernate的, 如下:
1. sys-power/pm-utils 其中的pm-hibernate
2. sys-power/suspend 其中的s2disk

两者有什么关系呢, 从arch的wiki中看到这样一段话:
However, this is highly likely to fail, because some services could
need to be stopped, some modules unloaded, etc. Thus it is probably
necessary to resort to a userspace tool which calls internally s2disk,
like Pm-utils since version 1.1 (which is now in core) or
hibernate-script.

看来, 是层次的不同.

在自己的电脑上也试了一把pm-hibernate(从来没有使用过), 可以正常hibernate, 就是说,可以正常把RAM内容写入disk了. 但是不能恢复!

其实在hibernate后, 要启动时恢复旧的swap内容, 是需要在内核启动时使用一指令的, 如下:
* resume=/dev/sda5
/dev/sda5为本人notebook的swap, 这就可以正常恢复

自己notebook的问题处理好后, 回归到朋友的ubuntu, 查看了一把/boot/grub/menu.list,
没有发现使用了resume指令, 那之前ubuntu是怎么做到的呢, ubuntu又玩出魔法了, 我顶!

早上打开朋友的notebook, 发现grub Error了. 看来朋友放弃找问题基本的想法了. 那我也算了, 反正gentoo下我了解了,
至以ubuntu的下的魔法, 下次再找吧

BTW: hibernate后, Notebook的硬盘位置很热!! gentoo很清净

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.