linux里面休眠不是直接就很好地支持的,虽然kernel里面有这个功能,但是不大稳定,现在就说说具体怎么去弄。
首先,上面说了,kernel的休眠功能不强,所以要是想很好地使用,就要打补丁。有一个很好的补丁叫做software suspend,在Arch Linux可以不用自己编译内核就用打好了这个补丁的内核了,因为有一个包含了很多流行的补丁的kernel26beyond(不过现在beyond的suspend to disk好像有些问题),还有一个只打上了software suspend补丁的kernel26suspend2,都可以直接拿来用。
然后安装hibernate-script,并配置一下,具体可以参考http://wiki.archlinux.org/index.php/Suspend_to_Disk
最后修改一下/boot/grub/menu.lst,在打好software suspend补丁的那个kernel的项后面加上resume2=swap:/dev/hdXY,其中/dev/hdXY是swap分区。
这样按说就没大有问题了,直接用hibernate来休眠,开电源选择之前休眠的那个内核启动就可以恢复,不过在arch里面还有些问题要注意:
Arch Linux的内核都使用initcpio,所以要多作一些工作来让休眠正常使用,编缉/etc/mkinitcpio.conf文件,把里面的hook中加上一个resume,注意,这个resume应该加在ide和filesystem的后面,在休眠后恢复时系统先加载完硬盘和文件系统的模块以后再恢复,否则就会出现BIG FAT WARNING !!,也就没法正常恢复了。这样应该就没有问题了。