luks2是linux下最可靠磁盘加密方案,需显式指定argon2id、5秒派生耗时、aes-xts-plain64与512位密钥,并严格遵循识别设备、卸载、备份数据三步骤,加密后须映射、格式化、挂载方可使用。

LUKS 是 Linux 下最可靠、最主流的磁盘加密方案,它工作在块设备层,对整个分区或磁盘透明加密——数据写入时自动加密,读取时自动解密,用户几乎无感。但光“设个密码”远远不够,真正安全的 LUKS 部署必须兼顾加密强度、密钥管理与启动流程设计。
选对加密格式和参数
务必使用 LUKS2 格式,它比 LUKS1 更抗头部损坏、支持 Argon2 密钥派生,并具备多份元数据备份能力。初始化时不要依赖默认参数,显式指定关键选项:
- --type luks2:强制启用 LUKS2
- --pbkdf argon2id:替代易被 GPU 暴力破解的 PBKDF2
- --iter-time 5000:让密钥派生耗时约 5 秒,平衡安全性与解锁体验
- --cipher aes-xts-plain64 --key-size 512:明确 AES-XTS 模式与 512 位密钥长度,避免回退到弱配置
加密前必须做三件事
操作不可逆,一步错就丢数据:
宝塔Linux面板11.8.1为官网当前正式版,新增AI建站能力并经过宝塔网站工程师深度调教,开放自定义AI功能API,同时对WAF进行界面重构和深度优化,提升拦截能力与运维效率。
- 用 lsblk 和 sudo blkid 精准识别目标设备(如
/dev/sdb1),切勿误选整盘(/dev/sdb)或系统盘 - 确认该设备未挂载:mount | grep sdb1 应无输出;若已挂载,先 sudo umount /dev/sdb1
- 确保设备无重要数据——
cryptsetup luksFormat会彻底覆写分区头和 superblock,无法恢复
挂载后不能直接用,得走标准流程
LUKS 加密后只是一个“锁住的容器”,需映射、格式化、挂载三步才可存数据:
- 执行 sudo cryptsetup open /dev/sdb1 mydata 解锁并映射为
/dev/mapper/mydata - 在映射设备上创建文件系统:sudo mkfs.ext4 /dev/mapper/mydata(不建议 Btrfs,存在兼容风险)
- 创建挂载点并挂载:sudo mkdir -p /mnt/encrypted && sudo mount /dev/mapper/mydata /mnt/encrypted
- 验证后记得 sudo umount /mnt/encrypted && sudo cryptsetup close mydata,再重新打开一次确认完整性
自动挂载不是免密,而是可控信任
开机自动解锁非根分区(如数据盘)时,应优先用密钥文件而非明文密码:
- 生成高熵密钥文件:sudo dd if=/dev/urandom of=/etc/luks-keys/mydata.key bs=512 count=4 && sudo chmod 0400 /etc/luks-keys/mydata.key
- 将密钥加入 LUKS 容器:sudo cryptsetup luksAddKey /dev/sdb1 /etc/luks-keys/mydata.key
- 编辑 /etc/crypttab:一行写全
mydata UUID=xxxx-xxxx /etc/luks-keys/mydata.key luks,discard(UUID 用sudo blkid查) - 对应配置 /etc/fstab,并确保 initramfs 已包含 cryptsetup 支持(Debian/Ubuntu 执行
sudo update-initramfs -u)
别忘了最关键的备份动作
LUKS 头一旦损坏,整个加密卷将不可访问。每次加密完成后,立即执行:
- sudo cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file /path/to/backup.hdr
- 把备份文件离线保存(如打印成 QR 码、存于离线 USB 或纸质文档),且与加密盘物理隔离
- 定期验证备份有效性:sudo cryptsetup luksHeaderRestore /dev/sdb1 --header-backup-file /path/to/backup.hdr(仅测试,勿在生产环境执行)










