您无法使用mount
的选项挂载在OS X中加密的HFS +分区encryption=aes
。原因是加密的HFS +分区和卷使用专有格式。
既不Cryptoloop也不环路-AES,它们是由所使用的底层解密方法mount
和encryption
,理解的格式。
这是我发现的:
Cryptoloop可以挂载加密为单个AES块的分区或磁盘映像(这称为单键模式,请参阅http://www.tldp.org/HOWTO/html_single/Cryptoloop-HOWTO/#cryptoloop-introduction):
/dev/sdXX
disk image /dev/loopX
+-----------+ +-------------+
| | | |
| | | |
| | | unencrypted |
| AES block | -AES passwd->AES key->decrypt I/O to loop device-> | partition |
| | | |
| | | |
| | | |
+-----------+ +-------------+
AES-Loop可以挂载单键(如上)和多键加密分区或磁盘映像:
/dev/sdXX
disk image /dev/loopX
+------------+ +-------------+
|AES block #1| | |
+------------+ | |
|AES block #2| | unencrypted |
+------------+ -AES passwd->AES key(s)->decrypt I/O to loop dev-> | partition |
|AES block #3| | |
+------------+ | |
| ... | | |
+------------+ +-------------+
另一方面,加密的HFS +分区:
Cryptoloop的后继者dm-crypt
也无法读取加密的HFS +。
但在所有希望消失之前:
至于您遇到的错误消息:
第一个错误:
Error: Password must be at least 20 characters.
令人惊讶的是,尽管您可能无法控制要解密的分区,但mount
不仅要为加密而且要为解密强制使用长密码。您只能通过下载和编辑源代码并重新编译来避免这种麻烦。(其他发行版,例如SuSE Linux Enterprise Server(SLES),没有此限制。)
第二个错误:
ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel
您需要加载Cryptoloop内核模块:
$ sudo modprobe cryptoloop
因为尽管您安装了软件包loop-aes-utils
,但并未使用Loop-AES。
环-AES使用几个修改用户空间工具(mount
,umount
,losetup
,swapon
和swapoff
,由提供loop-aes-utils
)和改性的loop.ko
内核模块。最新的Ubuntu版本将未经修改的loop
模块编译到内核中:
$ cd /usr/src/linux-source-3.2.0/linux-source-3.2.0/drivers/block/
$ diff -q /tmp/loop.c-3.x.patched loop.c
Files /tmp/loop.c-3.x.patched and loop.c differ
因此Loop-AES不能在Ubuntu上立即使用。您需要按以下说明修补并重新编译内核:http : //loop-aes.sourceforge.net/loop-AES.README。这就是为什么mount
仍然需要Cryptoloop 的原因。
如果在加载后仍然出现类似的错误消息,cryptoloop.ko
则可能无法识别加密类型。例如,我的Ubuntu 12.04无法识别aes-128
,但是aes
。SLES仅识别aes-128
。
aes256
了aes-256
吗?