温馨提示×

ubuntu swap支持休眠吗

小樊
52
2026-09-28 10:09:55
栏目: 智能运维

简短回答:Ubuntu 的 swap 可以支持休眠(hibernation),但有前提条件,而且默认情况下往往“不保证可用”。

下面详细说明。


一、Ubuntu 休眠依赖 swap 吗?

是的。

Linux 的 hibernation(休眠 / suspend-to-disk) 原理是:

  • 把内存中的所有数据写入 swap 空间
  • 关机
  • 下次开机时从 swap 读回内存

所以:

没有 swap,就不能休眠


二、Ubuntu 默认是否支持休眠?

不一定。

1. 传统情况(可靠)

  • 使用 swap 分区
  • swap ≥ 内存大小(建议 内存 + 2GB)
  • 配置 resume= 内核参数

这是最稳定、官方推荐的方式。

2. 现代 Ubuntu(如 20.04+)

  • 默认使用 swap file(/swapfile)
  • 桌面版 默认禁用休眠
  • systemctl hibernate 经常失败

原因:

  • swap file 在某些文件系统(如 btrfs)上不可靠
  • 安全启动 / initramfs 配置复杂
  • 厂商和 Canonical 对休眠支持趋于保守

三、swap 大小要求

内存大小 建议 swap
≤ 2GB 2–3 × RAM
2–8GB ≥ RAM
> 8GB RAM + 2GB(或至少相等)

⚠️ 休眠必须能装下当前内存使用量


四、如何让 Ubuntu 支持休眠?

方案 A:使用 swap 分区(推荐)

  1. 创建 swap 分区
  2. 编辑 /etc/default/grub
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/sdXn"
    
  3. 更新 grub
    sudo update-grub
    
  4. 配置 initramfs
    echo "resume=/dev/sdXn" | sudo tee /etc/initramfs-tools/conf.d/resume
    sudo update-initramfs -u
    
  5. 测试
    sudo systemctl hibernate
    

方案 B:使用 swap file(较新内核可用)

仅适用于:

  • ext4
  • 连续文件
  • 正确配置 resume= + resume_offset=

配置更复杂,不推荐新手。


五、常见限制

  • ❌ 加密根分区 + 休眠 = 复杂
  • ❌ btrfs + swap file = 不稳定
  • ❌ 笔记本厂商 BIOS 限制
  • ❌ 安全启动可能阻止

六、结论

✅ Ubuntu 的 swap 支持休眠
⚠️ 但不是开箱即用
✅ swap 分区 + 正确配置最可靠

如果你愿意,我可以:

  • 帮你检查当前系统是否支持休眠
  • 给你一份“一步一步可复制”的配置命令
  • 判断你用的是 swap 文件还是分区

只要告诉我你的 Ubuntu 版本和是否用 LUKS。

0 踩