温馨提示×

ubuntu swap与休眠关系

小樊
52
2026-09-22 11:41:38
栏目: 智能运维

在 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 休眠需要手动配置

要启用休眠,一般步骤:

  1. 确保有 swap(分区或文件)
  2. swap 大小 ≥ RAM
  3. 配置 grub 的 resume= 参数
  4. 测试:
    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 分区哪种更适合你

0 踩