我有一块旧硬盘,里面有一个加密分区,上面有一个文件系统。它是几年前创建(并使用)的,当时的做法是使用losetup
加密twofish
(通过内核模块loop_fish2
),然后安装以这种方式准备的循环设备。
如今,这已不再是现成的了。内核模块不是发行版的一部分,等等。
有人知道如何实现我的目标吗?
编辑:
我发现了一些提示cryptsetup 手册页将它与选项一起使用--cipher twofish-cbc-null -s 256 -h sha512
但我收到一个相当令人惊讶的错误消息:
$ sudo cryptsetup --cipher twofish-cbc-null -s 256 -h sha512 luksOpen /dev/sdd1 dm0
Usage: cryptsetup [-?vyrq] [-?|--help] [--usage] [--version] [-v|--verbose] [--debug]
[-c|--cipher=STRING] [-h|--hash=STRING] [-y|--verify-passphrase] [-d|--key-file=STRING]
[--master-key-file=STRING] [--dump-master-key] [-s|--key-size=BITS]
[-l|--keyfile-size=bytes] [--new-keyfile-size=bytes] [-S|--key-slot=INT]
[-b|--size=SECTORS] [-o|--offset=SECTORS] [-p|--skip=SECTORS] [-r|--readonly]
[-i|--iter-time=msecs] [-q|--batch-mode] [-t|--timeout=secs] [-T|--tries=INT]
[--align-payload=SECTORS] [--header-backup-file=STRING] [--use-random] [--use-urandom]
[--shared] [--uuid=STRING] [--allow-discards] [--header=STRING]
[OPTION...] <action> <action-specific>]
cryptsetup: Option --key-size is allowed only for luksFormat, create and loopaesOpen.
To limit read from keyfile use --keyfile-size=(bytes).
如果您能提供解释、解决方法或任何其他帮助,我们将不胜感激 :-}
答案1
这些命令适用于最新的 Ubuntu 16.04,适用于cryptsetup
在 Ubuntu 8.04 上使用默认值创建的磁盘:
cryptsetup open /dev/sdb1 usbdisk --type plain -c aes-cbc-plain
mount /dev/mapper/usbdisk /mnt
移除:
umount /mnt
cryptsetup close usbdisk
答案2
我找到了一个解决方案:
losetup /dev/loop1 /dev/sdb1
cryptsetup --hash ripemd160:20 --cipher twofish-cbc-null --key-size 192 create secret_img /dev/loop1
mount /dev/mapper/secret_img /media/mountpoint
我重新激活了一台安装了 Ubuntu 8.04 的旧笔记本电脑,在互联网的帮助下,我曾经解决过这个问题。显然互联网没有保留有关如何解决这个问题的信息足够长的时间,所以我很幸运那台旧硬件还能正常运行 :) 而且代码在当前的 Ubuntu 12.04 上仍然有效。
答案3
对于使用 aes128(或使用 loopaes.sh 和 hashalot 组合)加密的,需要使用以下命令代替 loopaes.sh:
cryptsetup open _path_to_device_or_file_ SOME_NAME --type plain -c aes -s 128 -h sha256
mount /dev/mapper/SOME_NAME /media/new_mount_point/
例子:
cryptsetup open /dev/sdb1 secret_img --type plain -c aes -s 128 -h sha256
mount /dev/mapper/secret_img /media/mountpoint