如果在创建Debian操作系统的时候没有勾选需要休眠的话,那么swap分区大小一般为1G,远小于物理内存,休眠所需的swap空间通常略小于实际物理内存

为了确保休眠成功,一般会保证swap分区大小略大于实际物理内存,这个时候我们只需要创建swap分区文件即可

首先,创建一个swap分区文件,并添加开机挂载

sudo fallocate -l 32g /swapfile

sudo mkswap /swapfile

sudo echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab

暂停操作系统使用交换区

sudo sysctl -w vm.swappiness=1 

创建内核变量文件

sudo echo 'vm.swappiness=1'/etc/sysctl.d/ local.conf 

启动操作系统使用交换区

sudo swapon /swapfile

安装uswsusp工具调整休眠,根据前面的操作回答uswsusp工具的问题

sudo apt install uswsusp

sudo dpkg-reconfigure -pmedium uswsusp

设置完成后,查看你的uswsusp.conf配置文件,这是我的配置文件输出,可以使用 swap-offset /swap 校验swapfile文件偏移量是否准确

cat /etc/uswsusp.conf

# /etc/uswsusp.conf(5) -- Configuration file for s2disk/s2both 
resume device = /dev/nvme0n1p2
compress = y
early writeout = y
image size = 2147483647
RSA key file = /etc/uswsusp.key
shutdown method = platform
resume offset = 274432
encrypt = y

运行 update-initramfs -u 使上述所有设置生效,最后使用以下指令可测试休眠是否成功

s2disk

参考资料