如何使用启动密码挂载 VeraCrypt 或 TrueCrypt 卷

如何使用启动密码挂载 VeraCrypt 或 TrueCrypt 卷

对于 Windows,VeraCrypt 实现了一项称为“系统收藏夹卷”的功能。它允许使用启动时输入的密码安装其他光盘以解锁系统分区。

规格:我正在运行 Pop 操作系统! 22.04,这个问题应该相当于 Ubuntu 22.04。我的系统分区是用 LUKS 加密的。我想安装三个卷:一个使用 VeraCrypt 加密,两个使用原始 TrueCrypt 加密。

我找到了几篇文章来解决这个问题;然而,它们都不起作用:

我完全迷失了,甚至无法测试我的试验。

答案1

至少在 Debian 和 Ubuntu 上,您也可以使用系统启动 (luks) 密码解锁 truecrypt 卷和 veracrypt。具有 PIM 的 Veracrypt 卷需要至少 v254 的 systemd 才能使用veracrypt-pim=<number>cryptab 中的选项。看这里https://www.freedesktop.org/software/systemd/man/latest/crypttab.html

对于 Debian 12 systemd 是 v252,因此从向后移植安装 v254 systemd 以veracrypt-pim=<number>在 cryptab 中使用。然后,除了让所有卷使用相同的密码外,还要initramfs,keyscript=decrypt_keyctl在行末尾添加选项。它将initramfs卷的解密拉到系统驱动器启动的开始并keyscript=deycrypt_keyctl缓存密码,因此您只需输入一次。

对于 crypttab 以及您的系统驱动器解锁行,类似这样。请注意,initramfs解锁系统卷的行不需要:

# System volume
sda3_crypt UUID=6b3229c1-6f6a-480f-8524-212f6bd2e4dc none luks,discard,keyscript=decrypt_keyctl
# Truecrypt volume
sdb_true /dev/disk/by-partuuid/7d185b93-01 none tcrypt,discard,initramfs,keyscript=decrypt_keyctl
# Veracrypt volume.
sdc_vera /dev/disk/by-partuuid/2c175e93-01 none tcrypt-veracrypt,discard,initramfs,keyscript=decrypt_keyctl

需要 PIM 的 Veracrypt 卷需要 systemd v254 或更高版本:

sdc_vera /dev/disk/by-partuuid/2c175e93-01 none tcrypt-veracrypt,veracrypt-pim=20,discard,initramfs,keyscript=decrypt_keyctl

创建 crypttab(以及用于安装驱动器的 fstab)条目并彻底检查后!运行# update-initramfs -u -v更新 grub。

答案2

长话短说:

  • 编辑/etc/crypttab以展示设备;喜欢
    # existing lines from the system setup
    cryptdata UUID=ca....5c none luks
    cryptswap UUID=9a...91 /dev/urandom swap,plain,offset=1024,cipher=aes-xts-plain64,size=512
    # added lines
    givenname1 /dev/sdb2 none tcrypt,tcrypt-veracrypt #add the tcrypt-veracrypt option for a device encryted with veracrypt
    givenname2 /dev/sdc2 none tcrypt
    givenname3 /dev/sdd1 none tcrypt
    
  • 将以下行添加到/etc/fstab类似的 内容中
    /dev/mapper/givenname1 /mnt/mymountpoint1 auto nosuid,nodev,nofail 0 0
    /dev/mapper/givenname2 /mnt/mymountpoint2 auto nosuid,nodev,nofail 0 0
    /dev/mapper/givenname3 /mnt/mymountpoint3 auto nosuid,nodev,nofail 0 0
    

如何测试

编辑crypttab文件后,您可以使用cryptdisks_start例如调用 sudo cryptdisks_start givenname1。如果这有效,它可能在启动时仍然无法工作,但你的方法是正确的。

要测试它是否在启动时工作,请执行以下步骤

  1. 这将重新读取 crypttab 文件

    sudo systemctl daemon-reload 
    
  2. 这将启动服务,如果您之前已成功调用 cryptdisks_start,则可能会产生误报结果

    sudo systemctl start [email protected]
    
  3. 以排除误报结果重新启动服务

    sudo systemctl stop [email protected]
    sudo systemctl start [email protected]
    
  4. 检查链接是否出现在/dev/mappers

    $ ls  /dev/mapper/
    
    control  cryptdata  cryptswap  data-root  givenname1
    

Ubuntu 用户请注意

Ubuntu 实现 cryptsetup 脚本的方式与大多数其他发行版不同。因此,ubuntu 和类似发行版缺少 crypttab 中的某些选项。

比较手册页以了解确切的更改。

对我来说,这意味着我无法将密钥文件与密码结合使用,因为tcrypt-keyfile缺少选项。

要测试您可以使用哪些选项,请致电man crypttab

评论

这个解决方案对我来说非常有效。安装光盘也比使用 veracrypt GUI 快得多。

对于典型的双引导方案,安装的驱动器可能具有 NTFS 文件系统。这里的安装选项应该不同。

我已经在以下位置尝试了这些附加参数/etc/fstab

uid=1000,gid=1000,dmask=027,fmask=137

相关内容