使用 cryptsetup 安装 truecrypt 磁盘时出错

使用 cryptsetup 安装 truecrypt 磁盘时出错

尝试使用cryptsetup挂载使用 truecrypt 加密的驱动器。

这样做:

sudo cryptsetup open --type tcrypt --readonly /dev/sdc1 encrypted_drive 

然后输入密码给我:

Activation is not supported for 4096 sector size.

此错误是什么意思,如何挂载我的 truecrypt 卷?

有用的信息:

  • 该驱动器已使用 truecrypt 7.1a 加密
  • 尝试执行此操作的机器启动到实时 USB 版本的 ubuntu,特别是 ubuntu 14.04.01,i386 桌面版本。
  • cryptsetup --version产量cryptsetup 1.6.1
  • 删除该--readonly选项不会产生任何变化

答案1

cryptsetup预计扇区大小为512,但在您的情况下似乎是4096,因为这就是 truecrypt 对物理/逻辑扇区大小为 的设备所做的事情4096。此信息存储在 TrueCrypt 标头中,您也可以使用cryptsetup tcryptDump.

Linux 版本可以truecrypt很好地挂载此类容器,如下所示:

truecrypt /dev/sdc1 /mnt/somewhere

据报道,dmsetup无论扇区大小如何,它仍然使用常规加密,因此这是其本身的限制cryptsetup。您可以在 cryptsetup 问题跟踪器上为其打开一个问题:https://code.google.com/p/cryptsetup/issues/list

答案2

如果无法cryptsetup与 4096 字节扇区设备一起使用,那么创建一个虚拟设备并cryptsetup与该设备一起使用可能是一种解决方法:

sectors=$(blockdev --getsz /dev/sdc1)
echo "0 $((sectors-1)) linear /dev/sdc1 0" | dmsetup create dummy512bytes-sdc1
cryptsetup open --type tcrypt --readonly /dev/mapper/dummy512bytes-sdc1 encrypted_drive

答案3

这里的答案都不适合我。尝试按照 @frostschutz 建议使用 truecrypt 挂载卷会产生无用的错误:

ParameterIncorrect at TrueCrypt::CoreUnix::MountVolume:443

Veracrypt 说:

ParameterIncorrect at VeraCrypt::CoreUnix::MountVolume:477

所以这就是我所做的:我使用以下命令转储了 Truecrypt 主密钥:

cryptsetup tcryptDump /dev/...

这给了我一个格式很差的主密钥块文件。删除所有换行符和空格后,得到一个 128 个字符的十六进制密钥,然后使用以下命令将其加载到 dmsetup 中:

echo "0 5860532912 crypt aes-xts-plain64 <128-character-master-key> 256 /dev/sdh 256" | dmsetup create test

该表的格式为:

<start sector> <sector count> crypt <cipher> <key> <iv_offset> <device path> <offset> [<#opt_params> <opt_params>]

来源:https://gitlab.com/cryptsetup/cryptsetup/wikis/D​​MCrypt

<sector count>通过获取设备上的扇区总数fdisk -lu并减去偏移量来编辑。更新其余字段以匹配tcryptDump。将结果表回显dmsetup并希望它能起作用!

如果密钥正确,则mount /dev/mapper/test /mnt/...可以运行。

相关内容