Ubuntu系统启动休眠及无法唤醒问题的解决

(编辑:jimmy 日期: 2024/12/27 浏览:2)

家都知道 Windows 有休眠模式,其实 Ubuntu 也有。休眠模式简单来说,就是可以在用户暂时离开时将内存中的所有内容都写入到硬盘当中,当用户下次开机时,就可以直接启动到上次保存的时间状态。

打个比方,你正用 LibreOffice 在处理一个文档,同时打开了很多参考网页和其它文件,下班时间到了,你怕第二天回来再去找那些参考网页和文件等会影响你的写作思路,现在就可以在离开时将 Ubuntu 进行休眠。Ubuntu 休眠后会将所有的未完成的处理任务都写入到硬盘再关机,下次再开机时会自动从硬盘去调用上次的状态。

检查Ubuntu休眠模式是否正常
现在我们要检查一下当前的 Ubuntu 是否允许进行休眠模式,要允许休眠我们最好为当前系统分配了一个与内存同样大小的 SWAP 分区(大多用户在系统安装时都会进行分配)。使用 “Ctrl + Alt + T” 快捷键打开一个终端,执行如下命令:

复制代码代码如下:
sudo pm-hibernate

命令执行后,Ubuntu 将会自动关机并断电。再次开机后,如果一切正常的话我们将可以直接恢复到上次关机时的状态,这表明当前 Ubuntu 系统的休眠模式工作正常。

注意:如果关机前的状态和会话没被恢复或遇到其它错误的话,可能是由多种原因造成的,在下一步操作之前需要先进行排错。

重新启用休眠
如果通过上述步骤已经确认 Ubuntu 休眠模式在你的系统上可以正常工作,我们便可以将“休眠”按钮添加回我们的菜单当中。

执行如下命令在/etc/polkit-1/localauthority/50-local.d/目录中创建一个com.ubuntu.enable-hibernate.pkla文件:

复制代码代码如下:
sudo vi /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

在上述文件中写入如下内容:

复制代码代码如下:
[Enable Hibernate in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=yes

Ubuntu系统启动休眠及无法唤醒问题的解决

Ubuntu 从 14.04 开始全面支持低功耗模式,通过以上配置文件的写法应该就可以调用完成了。但如果你使用的是早期版本 Ubuntu 可以试试如下写法:

复制代码代码如下:
[Enable hibernate in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

注意:以上写法不适用于 Ubuntu 13.10

如果你不能完全确定或为了保险起见,也可以同时把两种写法都写进 com.ubuntu.enable-hibernate.pkla 配置文件。
[Enable Hibernate in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
 
[Enable Hibernate in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=yes
配置文件修改好后我们需要重启系统或重启 indicator 会话:


复制代码代码如下:
killall indicator-session-service


重启好之后“休眠”选项就会出现了。
Ubuntu系统启动休眠及无法唤醒问题的解决


笔记本电脑休眠之后无法启动问题的解决
1.  问题引入

Ubuntu系统的Power设置休眠时间,在系统进入休眠之后,系统无法启动。只能通过冷启动,方可重新进入系统。

2.  问题分析

首先分析一下问题,系统在休眠之后,进入死机的状态,无法响应键盘和鼠标事件,但是键盘本身是可以进行状态切换的,比如可以开关网络。但是显示屏幕上的内容无法更新。

升级到最新版本,问题依然存在。

从网络上查询了一下,确认一下是否和我所使用的笔记本的型号有关,经过查询无法。因为在13.x版本的时候,休眠功能是正常的。

3.  问题确定

在网上有人提到说,是不是显卡驱动本身存在的缺陷,由于Ubuntu是开源的Linux系统,厂商未曾或提供的驱动会有一定的问题或者兼容性。

于是,进行显卡切换:
Ubuntu系统启动休眠及无法唤醒问题的解决

说明:

(1). 启动切换测试之后,当前的这个驱动是最为适合我的机器的驱动

(2).  网络上有文章说,开源驱动很好,测试结果是无法解决死机问题。

4.  写在最后

由于Ubuntu从12.x开始,从系统禁用Hibernate休眠功能,所以,需要用户自行打开休眠功能。据传是由于系统无法正确保存应用状态所致,故默认禁用休眠功能。

复制代码代码如下:
sudo pm-hibernate

 ------测试休眠功能,并让系统进入休眠