在 Linux 系统中,休眠(Hibernation) 是一种将内存数据完整保存到磁盘(通常是 Swap 分区或文件)后彻底关闭电源的状态,唤醒时,系统从磁盘恢复内存数据,精确还原到休眠前的状态,与挂起(Suspend) 不同,休眠不依赖电源维持内存数据,适合长时间离开电脑的场景(如夜间休眠),能显著节省电力。
休眠与挂起的核心区别
特性 | 休眠(Hibernation) | 挂起(Suspend) |
---|---|---|
数据存储位置 | 保存到磁盘(Swap) | 保留在内存(RAM) |
耗电 | 零耗电(完全关机) | 低耗电(维持内存供电) |
恢复速度 | 较慢(需从磁盘加载数据) | 极快(内存数据即时可用) |
适用场景 | 长时间离开(数小时至数天) | 短时间离开(几分钟至几小时) |
休眠前的必要检查
确认 Swap 空间
休眠要求 Swap 空间 ≥ 物理内存(RAM),通过命令检查:
free -h # 查看内存和 Swap 大小 swapon --show # 检查 Swap 分区/文件路径
若 Swap 不足,需扩展 Swap(见下文)。
验证内核支持
cat /sys/power/state # 输出包含 "disk" 表示支持休眠 grep HIBERNATION /boot/config-$(uname -r) # 确认 CONFIG_HIBERNATION=y
获取 Swap 设备标识符
findmnt -no UUID -T /swapfile # 若用 Swap 文件,获取其 UUID sudo blkid # 若用 Swap 分区,查找对应 UUID
配置休眠功能(以 Ubuntu/Debian 为例)
编辑 Grub 配置
sudo nano /etc/default/grub
修改以下参数(替换 UUID
为实际值):
GRUB_CMDLINE_LINUX_DEFAULT="... resume=UUID=你的Swap分区或文件UUID"
更新 Grub:
sudo update-grub
配置 initramfs
sudo nano /etc/initramfs-tools/conf.d/resume
添加:
resume=UUID=你的Swap分区或文件UUID
更新 initramfs:
sudo update-initramfs -u
测试休眠
sudo systemctl hibernate # 执行休眠(确保已保存所有工作)
不同桌面环境的休眠方法
GNOME (Ubuntu/Fedora)
- 点击右上角系统菜单 → 点击电源图标
- 按住
Shift
键 → “挂起” 选项变为 “休眠” → 选择即可。
KDE Plasma (Kubuntu)
- 点击右下角电源按钮 → 选择 “休眠”(若未显示需启用)。
命令行休眠(通用)
systemctl hibernate # 立即休眠 systemctl hybrid-sleep # 混合休眠(同时保存到内存+磁盘)
常见问题解决
休眠后无法唤醒
- 原因:显卡驱动或 ACPI 兼容性问题。
- 解决:
- 更新内核:
sudo apt upgrade linux-image-generic
- 在 Grub 参数添加
acpi_sleep=nonvs
或nouveau.modeset=0
(NVIDIA 显卡)。
- 更新内核:
Swap 空间不足
- 扩展 Swap 文件(以新增 8GB 为例):
sudo swapoff /swapfile # 禁用现有 Swap sudo dd if=/dev/zero of=/swapfile bs=1G count=8 status=progress # 创建 8GB 文件 sudo chmod 600 /swapfile # 设置权限 sudo mkswap /swapfile # 格式化为 Swap sudo swapon /swapfile # 启用新 Swap
- 永久生效:
编辑/etc/fstab
,添加行:/swapfile none swap sw 0 0
休眠选项未显示在菜单
- 检查策略:
cat /etc/systemd/sleep.conf # 确保 AllowHibernation=yes
- 安装扩展(Ubuntu):
sudo apt install pm-utils hibernate
安全注意事项
- 数据完整性:
休眠前保存所有文件,异常断电可能导致数据丢失。
- 加密系统:
- 若使用全盘加密(如 LUKS),需确保 initramfs 包含解密模块(参考 Arch Wiki)。
- 企业环境:
服务器慎用休眠,可能影响服务稳定性。
Linux 休眠是平衡节能与工作连续性的高效方案,正确配置后,可安全用于笔记本或台式机,若遇到问题,建议查阅发行版官方文档(如 Ubuntu Help、Arch Wiki),通过本文步骤,您已掌握从配置到故障排除的全流程,尽情享受 Linux 的灵活性与可靠性吧!
引用说明参考 Linux 内核文档、Ubuntu 官方电源管理指南 及 Arch Wiki 休眠专题,结合实践验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4919.html