Ubuntu默认仅提供“睡眠(Sleep)”模式,需手动启用“休眠(Hibernate)”功能。休眠的核心是将系统状态保存至Swap分区(或Swap文件),因此需确保系统已配置Swap空间且大小足够(建议为物理内存的1-2倍)。具体步骤如下:
运行以下命令查看Swap分区信息:
swapon --show
若未显示Swap分区,需通过GParted工具创建Swap分区(大小≥内存),或在安装系统时手动分配Swap分区(推荐)。
编辑GRUB配置文件,添加resume=参数指向Swap分区(以/dev/sdaX为例,X为Swap分区号):
sudo vim /etc/default/grub
找到GRUB_CMDLINE_LINUX_DEFAULT行,修改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/sdaX"
保存后更新GRUB:
sudo update-grub
默认情况下,普通用户无权触发休眠,需修改Polkit策略文件:
sudo vim /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
保存后重启indicator-session-service使配置生效:
killall indicator-session-service
完成上述配置后,可通过以下方式触发休眠:
使用systemctl(Ubuntu 16.04及以上推荐):
sudo systemctl hibernate
输入管理员密码后,系统将保存当前状态至Swap分区并关机,唤醒时恢复至上次状态。
使用pm-utils(旧版本兼容):
sudo pm-hibernate
该命令直接调用休眠工具,效果与systemctl一致。
通过DBus接口(适用于GNOME环境):
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
此命令会触发GNOME的休眠流程,支持屏幕锁定等附加功能。
若需快速触发休眠,可创建自定义键盘快捷键:
systemctl hibernate,点击“设置快捷键”(如Ctrl+Alt+H)。swapon --show),或重新生成initramfs:sudo update-initramfs -u
/var/log/syslog中的授权日志),或重启系统。通过以上步骤,即可在Ubuntu中正常触发休眠模式,实现系统状态的持久化保存。