红联Linux门户
Linux帮助

Archlinux 休眠相关问题

发布时间:2008-07-07 11:00:04来源:红联作者:eowyxip
出自http://navarro.blogbus.com/

今天试了下休眠和挂起,一合上本本的屏幕,结果马上就唧唧唧地报警了几声。打开屏幕一看,系统进到了gdm的登录界面,登录进去,电源管理applet报告休眠出错。

查了查linux休眠的问题,大致如下:Linux里的休眠分几5个等级,具体情况不详述了。在archlinux的gnome里的休眠有两个,一个是suspend,一个是hibernate。 suspend会把所有东西存入RAM然后系统挂起,就是所谓suspend to ram。而hibernate,则是将内存中的信息写入硬盘并且关闭系统电源,即所谓的suspend to disk。

首先怀疑是权限问题,因为电源管理需要root权限的,工具包pm-utils里的几个工具可以控制休眠。尝试用root权限休眠:

sudo pm-suspend

很好很强大,可以正常进入suspend to ram挂起状态,返回系统也正常。

再尝试hibernate休眠到硬盘

sudo pm-hibernate

硬盘转了一阵,然后电源关闭。开机,问题出现了,系统没有进入恢复状态,而是正常启动,并且启动过程中swap分区报错,无法挂载swap分区。这下麻烦了,hibernate是需要写入swap分区的,不处理swap分区问题,后面无法解决hibernate。没办法,只有先解决swap了,尝试手动激活swap分区:

sudo mkswap /dev/sda5

sudo swapon -a /dev/sda5

出错,还是无法挂载,google了一下,原来有可能是fstab里UUID的问题,因为硬盘分区表一旦有任何改变(比如调整swap分区位置,改变swap分区大小等等),使用UUID来挂载swap就不能。修改/etc/fstab,将swap分区所在的那一行改为直接用/dev/xxxx的格式:

/dev/sda5 none swap sw 0 0

保存后重启,进入系统后free -m查看是否swap被正确挂载。

OK,swap工作正常。如果没有挂载,再次手动激活应该没有问题。

现在来解决普通用户无权限休眠的问题。根据以前使用其他发行版的经验,系统内应该有个电源管理的组。查了下,archlinux里面,电源管理的组就叫power。把当前用户加入power组:

sudo gpasswd -a raven power

注销raven重新登录,尝试挂起(suspend),一切正常。

休眠(hibernate)牵涉到写入swap和启动时候要从swap区重新读取,需要在grub里设置,将/boot/grub/menu.lst里面启动项的位置加入 resume=/dev/sda,比如我的类似:

# (0) Arch Linux
title Arch Linux
root (hd0,3)
kernel /boot/vmlinuz26 root=/dev/sda4 resume=/dev/sda5 ro
initrd /boot/kernel26.img

保存后,重启。再次尝试hibernate, 挂起正常,开机恢复正常。
文章评论

共有 0 条评论