在 Ubuntu(以及 Linux generally)中,**swap(交换空间)和休眠(hibernate / suspend-to-disk)**有非常直接的关系。下面分点说明。
1. 什么是 swap
swap 是磁盘上的一块空间(分区或文件),当物理内存(RAM)不足时,系统把不常用的内存页写到 swap 中,从而“扩展”可用内存。
常见形式:
- swap 分区
- swap 文件(Ubuntu 20.04+ 默认常用)
2. 休眠(hibernate)是什么
休眠 = suspend-to-disk
- 系统把当前内存中的所有内容写入磁盘
- 然后完全断电
- 下次开机时从磁盘恢复内存状态
⚠️ 休眠 ≠ 睡眠(suspend / sleep)
- 睡眠(suspend-to-RAM):断电内存,恢复快,但需要少量电力
- 休眠:完全断电,恢复慢,但省电、可拔电源
3. swap 与休眠的核心关系
休眠必须依赖 swap,原因是:
休眠时,内存内容要完整写入 swap 空间
因此:
- swap 空间必须 ≥ 物理内存大小(通常建议 RAM + 一点余量)
- 如果没有足够 swap,无法休眠
- 即使有 swap,但太小,休眠会失败
4. Ubuntu 中的实际情况
4.1 默认安装
- Ubuntu 桌面版默认:
- 小内存机器:创建 swap 文件(如 2GB)
- 大内存(如 ≥ 8GB):可能不创建 swap
- 默认通常不启用休眠
4.2 休眠需要手动配置
要启用休眠,一般步骤:
- 确保有 swap(分区或文件)
- swap 大小 ≥ RAM
- 配置
grub 的 resume= 参数
- 测试:
sudo systemctl hibernate
5. swap 大小建议(含休眠)
| 内存大小 |
是否休眠 |
建议 swap |
| ≤ 2GB |
是 |
2–3GB |
| 4GB |
是 |
4–6GB |
| 8GB |
是 |
8–10GB |
| 16GB |
是 |
16–18GB |
| 不管大小 |
否 |
2–4GB 或不变 |
6. 常见问题
Q1:有 swap 为什么还是不能休眠?
可能原因:
- swap 太小
- 没配置
resume 设备
- 使用了加密根分区但未正确配置
- 笔记本/主板不支持
Q2:休眠会损坏数据吗?
正常情况不会,但:
- 休眠中不要双系统修改磁盘
- 断电或写失败可能损坏状态
Q3:SSD 上用 swap 休眠伤硬盘吗?
影响很小,现代 SSD 寿命足够;但频繁休眠会增写量。
7. 一句话总结
Ubuntu 的休眠功能依赖 swap:没有足够大的 swap,就不能休眠;swap 是休眠的“内存硬盘备份区”。
如果你愿意,我可以:
- 帮你检查当前 swap 是否支持休眠
- 教你一步步开启 Ubuntu 休眠
- 对比 swap 文件 vs 分区哪种更适合你