尝试使用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/DMCrypt
<sector count>
通过获取设备上的扇区总数fdisk -lu
并减去偏移量来编辑。更新其余字段以匹配tcryptDump
。将结果表回显dmsetup
并希望它能起作用!
如果密钥正确,则mount /dev/mapper/test /mnt/...
可以运行。