Linux分区加密常用 LUKS(Linux Unified Key Setup) 标准,通过 cryptsetup 工具实现,步骤如下:
确保系统安装 cryptsetup(多数发行版默认安装):
# Debian/Ubuntu
sudo apt update && sudo apt install cryptsetup
# CentOS/RHEL
sudo yum install cryptsetup
用 fdisk 或 parted 创建新分区(如 /dev/sdb1),注意:加密会清除分区数据:
sudo fdisk /dev/sdb
# 操作:n(新建分区)→ p(主分区)→ w(保存)
sudo partx -a /dev/sdb # 重新加载分区表
使用 cryptsetup luksFormat 加密分区(需输入强密码):
sudo cryptsetup -v -y --cipher aes-xts-plain64 --key-size 512 luksFormat /dev/sdb1
# 参数说明:
# - aes-xts-plain64:推荐加密算法(高强度)
# - --key-size 512:密钥长度(可选256/512)
通过 luksOpen 映射为虚拟设备(如 /dev/mapper/secure_partition):
sudo cryptsetup luksOpen /dev/sdb1 secure_partition
# 输入密码后,分区会映射到 /dev/mapper/secure_partition
格式化虚拟设备为文件系统(如 ext4),并挂载到指定目录:
sudo mkfs.ext4 /dev/mapper/secure_partition
sudo mkdir /mnt/secure
sudo mount /dev/mapper/secure_partition /mnt/secure
编辑 /etc/crypttab 和 /etc/fstab 实现开机自动解密挂载:
secure_partition /dev/sdb1 /root/key(/root/key 为密码文件路径)。UUID=$(blkid /dev/sdb1 | cut -d'"' -f2) /mnt/secure ext4 defaults,luks 0 0。使用完毕后,卸载并关闭加密分区:
sudo umount /mnt/secure
sudo cryptsetup luksClose secure_partition
cryptsetup luksHeaderBackup 备份分区头信息,防止硬件故障导致数据丢失。以上步骤参考自 。