1 创建swap分区

# 如果有了swap分区的话,可以关掉swap再在原swap分区加密
sudo swapoff /dev/sdX
# 编辑分区
sudo cfdisk
# 查看swap分区
lsblk

2 加密需要配置为交换分区后打开它

# 安装软件包
sudo apt install cryptsetup
# 加密要配置为交换的分区
sudo cryptsetup -v luksFormat --type luks2 /dev/sdX --label DebianSwap
# 打开加密分区
sudo cryptsetup open /dev/sdX cryptswap

3 将打开的加密分区设置为交换

sudo mkswap /dev/mapper/cryptswap
sudo swapon /dev/mapper/cryptswap

配置好/etc/fstab和/etc/crypttab表

# 安装软件包
sudo apt install arch-install-scripts
# 生成/etc/fstab表
sudo genfstab -U / > /etc/fstab
# 查看设置成加密的交换分区的UUID
lsblk -f
# 配置好/etc/crypttab表
# 编辑/etc/crypttab,加入:
cryptswap UUID=<你的设置成加密的交换分区(/dev/sdX)的UUID> none luks

3 配置休眠

# 编辑 /etc/initramfs-tools/conf.d/resume
# 加入:
RESUME=/dev/mapper/cryptswap
# 编辑 /etc/default/grub
# 要有:
GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/mapper/cryptswap"
sudo update-initramfs -u -k all
sudo update-grub
sudo reboot
# 之后测试运行
systemctl hibernate 

本文参照: https://dev59.com/askubuntu/fkjYs4cB2Jgan1znKSVp