Я прочитал много уроков по LUKS / dm-crypt / cryptsetup, в частности, о том, как создать зашифрованный файловый контейнер.
Первый шаг - создать файл с dd
.
Затем некоторые учебники отображают файл в /dev/loop0
и форматируют устройство петли, другие учебники форматируют файл напрямую, не отображая его в устройстве петли.
Мой вопрос: нужен ли шаг петлевого устройства? В чем разница?
Если Вы не будете управлять циклическим устройством сами, [то 110] автоматически настроит циклическое устройство и закроет его, когда оно больше не необходимо. Таким образом, нет никакого различия между двумя; cryptsetup
всегда работы над циклическим устройством. См. man cryptsetup
:
ПРИМЕЧАНИЯ ПО ИСПОЛЬЗОВАНИЮ УСТРОЙСТВА ЗАКОЛЬЦОВЫВАНИЯ
Cryptsetup обычно используется непосредственно на блочном устройстве (раздел диска или объем LVM). Однако, если аргументом устройства является файл, cryptsetup пытается выделить устройство закольцовывания и отобразить его в этот файл. Этот режим требует ядра Linux 2.6.25 или более свежий, который поддерживает цикл автоясный флаг (циклическое устройство очищено на последнем завершении автоматически). Конечно, можно всегда отображать файл на циклическое устройство вручную. Посмотрите cryptsetup FAQ для примера.
, Когда отображение устройства активно, Вы видите, что цикл поддерживает файл в выводе команды состояния. Также см. losetup (8).
Можно использовать dd
или fallocate
(или head
или несколько других инструментов) для создания файла для действия как контейнер. Затем, поскольку Vincent Yu заявил cryptsetup
может обработать установку/разрушение цикла для Вас.
fallocate -l 100M mypath/filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo cryptsetup -y luksFormat mypath/filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo cryptsetup luksOpen mypath/filecontainer filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo mkfs -t ext4 /dev/mapper/filecontainer
sync
sudo cryptsetup luksClose filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
В отладке sudo losetup
вывод, отметьте AUTOCLEAR = 1
для filecontainer
запись. Вы могли вместо этого сойти с ума с loopdev=$(sudo losetup -f); mount -o loop <etc>
, но разрешение cryptsetup
дескриптор это - более хороший ПУТЬ.
Ключ - Вы, хотят удостовериться, что Вы СНАЧАЛА используете cryptsetup luksOpen containerfile mappedname
смонтировать его к /dev/mapper/mappedname
по умолчанию (можно дать ему полный путь, запускающийся с /
и это смонтируется там вместо этого, что я верю и ЗАТЕМ форматирую /dev/mapper/mappedname
будьте нацелены и удостоверяется, что Вы НЕ затрагиваете filecontainer
непосредственно, иначе Вы обходите механизм шифрования и просто создаете незашифрованный петлевой файл.