Вы не можете смонтировать раздел HFS+, зашифрованный в OS X, используя опцию mount
encryption=aes
. Причина в том, что зашифрованные разделы и тома HFS+ используют собственный формат.
Ни Cryptoloop, ни Loop-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.
Loop-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
.