多系统硬盘中完成系统安装后如何加密Swap分区?
嗨,针对你经常移动笔记本、担心他人获取设备访问权限、想加密swap分区的需求,我给你整理了两个用apt自带工具就能实现的靠谱方案:
方案一:加密现有Swap分区
这个方案直接对已有的swap分区进行加密,用到的cryptsetup是系统默认可通过apt安装的工具(如果你的系统没装,先执行sudo apt install cryptsetup),步骤如下:
先关闭正在运行的swap分区:
首先用cat /proc/swaps找到你的swap分区路径(比如/dev/sda3),然后执行:sudo swapoff /dev/sdXn记得把
/dev/sdXn替换成你实际的swap分区路径。初始化加密swap分区:
执行下面的命令,按提示输入大写的YES确认操作,然后设置一个安全的加密密码:sudo cryptsetup luksFormat /dev/sdXn解锁加密的swap设备:
给加密后的设备起个别名(比如cryptswap),执行:sudo cryptsetup luksOpen /dev/sdXn cryptswap格式化swap设备:
sudo mkswap /dev/mapper/cryptswap临时启用加密swap:
sudo swapon /dev/mapper/cryptswap配置开机自动挂载:
- 编辑
/etc/fstab文件,把原来的swap分区挂载行注释掉(前面加#),然后添加一行:/dev/mapper/cryptswap none swap defaults 0 0 - 编辑
/etc/crypttab文件,添加一行:cryptswap /dev/sdXn none luks
这样每次开机系统就会提示你输入密码,解锁后自动挂载加密swap。
- 编辑
方案二:在加密分区上创建Swap文件
正如评论里提到的,这个方案更灵活——先准备好一个已加密的分区,然后在上面创建swap文件,好处是不用单独为swap分区输密码,步骤如下:
确保你已经有一个挂载好的加密分区(比如挂载在
/mnt/encrypted)创建swap文件(这里设置为4G大小,你可以根据自己的内存需求调整数值):
sudo fallocate -l 4G /mnt/encrypted/swapfile设置严格的文件权限(必须设置,避免安全风险):
sudo chmod 600 /mnt/encrypted/swapfile格式化swap文件:
sudo mkswap /mnt/encrypted/swapfile临时启用swap文件:
sudo swapon /mnt/encrypted/swapfile配置开机自动挂载:
编辑/etc/fstab文件,添加一行:/mnt/encrypted/swapfile none swap defaults 0 0注意:要确保你的加密分区已经配置好开机自动解锁/挂载,否则swap文件无法自动启用。
备注:内容来源于stack exchange,提问作者jehon

