Ubuntu 11.10 升级为12.04 Beta1 后无法休眠(Hibernate)的问题的解决

使用32位的Ubuntu,本来是11.10,3月初为了尝鲜安装了12.04 Beta1,安装后关闭菜单中的休眠(Hibernate)不见了。这个问题不止出现在Unity中,换Gnome classic、KDE也没有。使用pm-hibernate命令可以休眠,但是有时候报空间不足,于是我发现可能是swap空间不够。如果朋友们的swap空间>=RAM,直接参考二。没有swap或swap小的,从一开始比较稳妥。(注:目前Gnome3 shell不支持(可能因为它不支持Canonical的状态栏通知器),故还不知道如何添加)

一、先是swap空间不够:我有3G的RAM,但是swap只有2.7G,一般来说开启休眠swap>=RAM(鬼知道原来11.10的时候怎么就可以),于是

1. LiveCD下使用gparted重新分了一个6G的swap,过程因简单略去

2. 由于swap换了一个,所以UUID变了,使用blkid命令重新获得UUID并记录下

/dev/sdb10: UUID="80dd945a-ae46-4acb-b5be-e57d44dcc450" TYPE="swap"

3. 使用UUID更新/etc/fstab中的swap:

# swap was on /dev/sda10 during installation
UUID=80dd945a-ae46-4acb-b5be-e57d44dcc450 none swap sw 0 0

4. 根据官方社区帮助,编辑/etc/default/grub, 找到GRUB_CMDLINE_LINUX="",将引号插入红色部分

GRUB_CMDLINE_LINUX="resume=UUID=80dd945a-ae46-4acb-b5be-e57d44dcc450"

然后命令:sudo update-grub,更新grub。

5. 编辑/etc/initramfs-tools/conf.d/resume,将UUID替换成新的:

RESUME=UUID=80dd945a-ae46-4acb-b5be-e57d44dcc450

然后命令:sudo update-initramfs -u生成新的内存镜像

二、这样做了之后,虽然菜单没有出现,但是pm-hibernate在内存使用高时没发现再报错。

于是查资料,终于发现是因为新版本的policykit设置的问题,编辑文件/etc/polkit-1/localauthority/50-local.d/com.ubuntu.desktop.pkla

填入以下内容:

[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

然后重启,休眠菜单就回来了。

参考资料:

https://help.ubuntu.com/community/SwapFaq

http://askubuntu.com/questions/94754/how-to-modify-policykit-to-allow-hibernation-in-upower

转载于:https://www.cnblogs.com/yangzhao/archive/2012/03/25/2416819.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值