Ubuntu挂载加密分区有哪些方法
小樊
37
2025-12-17 07:40:45
Ubuntu 挂载加密分区的常用方法
前置准备
- 安装工具:Ubuntu 上管理 LUKS 加密分区的工具为 cryptsetup,安装命令:sudo apt-get update && sudo apt-get install cryptsetup。
- 确认设备:使用 lsblk 或 sudo fdisk -l 找到加密分区,例如 /dev/sdb1。
- 基本流程:先解密(open)得到 /dev/mapper/,再用 mount 挂载;用完执行 umount 与 cryptsetup luksClose 关闭映射。
方法一 手动临时挂载 LUKS 分区
- 解密分区:执行 sudo cryptsetup luksOpen /dev/sdb1 my_encrypted(将 my_encrypted 替换为你的映射名),输入口令后生成 /dev/mapper/my_encrypted。
- 创建挂载点并挂载:例如 sudo mkdir -p /mnt/enc 与 sudo mount /dev/mapper/my_encrypted /mnt/enc。
- 卸载与关闭:使用 sudo umount /mnt/enc 与 sudo cryptsetup luksClose my_encrypted。
- 说明:这是最通用、最安全的交互式方式,适合一次性或临时访问。
方法二 开机自动解锁并挂载
- 配置自动解锁:编辑 /etc/crypttab,添加一行(示例):
- 使用设备路径:encrypted_partition /dev/sdXY none luks
- 或使用 UUID(推荐):先获取加密分区 UUID:sudo blkid,再写入:encrypted_partition UUID=<加密分区UUID> none luks
- 配置自动挂载:编辑 /etc/fstab,添加一行(示例):
- /dev/mapper/encrypted_partition /mnt/encrypted_partition ext4 defaults 0 0
- 说明:系统启动时会先提示输入 LUKS 口令完成解锁,再按 fstab 挂载;使用 UUID 更稳健,避免设备名变化导致失败。
方法三 使用密钥文件实现无交互解锁
- 生成密钥文件(示例):sudo dd if=/dev/urandom of=/root/keyfile bs=4096 count=1,并设置权限:sudo chmod 600 /root/keyfile。
- 添加密钥到 LUKS:将密钥加入分区密钥槽:sudo cryptsetup luksAddKey /dev/sdXY /root/keyfile(需输入原口令)。
- 配置自动解锁:在 /etc/crypttab 使用密钥文件(示例):
- encrypted_partition /dev/sdXY /root/keyfile luks
- 配置自动挂载:在 /etc/fstab 添加与上文相同的挂载条目。
- 说明:适合无人值守场景;务必妥善保护密钥文件(权限 600、离线备份),否则等同于泄露加密密钥。
常见问题与排查
- 设备名变化导致挂载失败:优先在 /etc/crypttab 与 /etc/fstab 中使用 UUID 而非 /dev/sdX;UUID 可通过 sudo blkid 获取。
- 忘记口令或丢失密钥:LUKS 的设计目标是“口令/密钥即数据”,无法找回,只能重做加密与恢复数据(若有备份)。
- 关闭顺序错误:应先 umount 再 cryptsetup luksClose,否则可能提示设备忙。
- 文件系统类型不匹配:挂载前确认文件系统(如 ext4/xfs),必要时用 sudo mkfs.ext4 /dev/mapper/ 重新格式化(会清空数据,谨慎操作)。