Может ли VeraCrypt использовать постоянные точки монтирования в Linux?

12

Может ли VeraCrypt использовать постоянные точки монтирования в Linux?


Windows + VeraCrypt + зашифрованные тома абсолютные пути

В Windows я могу смонтировать зашифрованные разделы / диски veracrypt через пакетный скрипт, который использует имя устройства, отображаемое с помощью mountvol.exe. Такой атрибут очень полезен, поскольку перезагрузка может привести к изменению относительного пути ( \Device\Harddisk1\Partition3-> перезагрузка -> \Device\Harddisk3\Partition3).

Мой пакетный скрипт для томов veracrypt в Windows (сокращенная форма):

@echo
"C:\Program Files\VeraCrypt\VeraCrypt.exe" /v \\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\ /l z /m label=Encrypted_1 /q
"C:\Program Files\VeraCrypt\VeraCrypt.exe" /v \\?\Volume{yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy}\ /l f /m label=Encrypted_2 /q
[...]
pause


Только для Linux + VeraCrypt + зашифрованные тома относительные пути?

Я не знаю о существовании параллельной команды для Windows, /v \\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\доступной для командной строки Linux. Я попробовал (напрасно) --mount=/dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxфлаг, поскольку mountvol.exe имя тома (вероятно) основано на номере UUID ( blkidхотя и незаметно ). Официальная документация veracrypt / truecrypt позволяет пользователю Linux работать только с относительными (переменными) путями ( /dev/sda3-> reboot -> /dev/sdc3). Из-за непостоянства пути должны проверяться каждый раз после загрузки ОС.

Мой bash-скрипт для монтирования томов veracrypt в Linux (сокращенная форма):

#! /bin/bash
#
echo "Encrypted_1" && veracrypt --mount /dev/sdq --slot=12 --verbose && echo "Encrypted_1"
echo "Encrypted_2" && veracrypt --mount /dev/sdz3 --slot=1 --verbose && echo "Encrypted_2"
[...]


Решение?

Кто-нибудь знает, можно ли в Linux в абсолютном выражении описать расположение томов VeraCrypt?

Если это невозможно, пожалуйста, предоставьте предложения для достижения той же цели? (например: udev? fstab?)

опечатка

mountvol.exeпризнает GUID, не так, UUIDкак было написано выше.

Christianus
источник

Ответы:

7

Ниже я разработал ответ, опубликованный Дэвидом Фёрстером, и сделал его более наглядным и понятным для других пользователей Linux, заинтересованных в представленной теме.

Linux + VeraCrypt + зашифрованные тома абсолютные пути

Согласно моим исследованиям, кажется, что назначение абсолютного пути к объему VeraCrypt невозможно (по крайней мере, в настоящее время) ( vide : by-id и запись by-path на wiki.archlinux.org в разделе Постоянное именование блочных устройств ( 1 )).

Linux + VeraCrypt + полупостоянное именование блочных устройств

Тем не менее, мы можем использовать полупостоянное именование блочных устройств.

1. в обход

/dev/disk/by-path/зависит от кратчайшего физического пути ( 2 ) и изменяется при переключении порта контроллера ( 3 ).

Чтобы получить /dev/disk/by-path/дескриптор, введите:

ls -l /dev/disk/by-path/

Вы можете использовать полученное наименование для монтирования тома VeraCrypt:

veracrypt --mount /dev/disk/by-path/[by-path] --slot=6 --verbose

/dev/disk/by-path/[by-path] может заменить относительный путь в скрипте bash:

#! /bin/bash
#
echo "Encrypted_1" && veracrypt --mount /dev/disk/by-path/[by-path1] --slot=12 --verbose && echo "Encrypted_1"
echo "Encrypted_2" && veracrypt --mount /dev/disk/by-path/[by-path2] --slot=1 --verbose && echo "Encrypted_2"
[...]

2. идентификатор

/dev/disk/by-id/создается в соответствии с серийным номером устройства ( 4 ). wiki.archlinux.org утверждает, что /dev/disk/by-id/не может пережить аппаратные изменения, т. е. сценарий, когда устройство подключено к порту контроллера, подключенного к другой подсистеме ( 5 ). access.redhat.com , с другой стороны, утверждает, что /dev/disk/by-id/его можно поддерживать, даже если к устройству обращаются разные системы ( 6 ). Таким образом, symlinkпредставляется достаточно стабильным в случае /dev/disk/by-id/применения.

Чтобы получить имя /dev/disk/by-id/устройства, введите:

ls -l /dev/disk/by-id/

Теперь, когда у вас есть правильный, его можно использовать для монтирования тома VeraCrypt:

veracrypt --mount /dev/disk/by-id/[id] --slot=6 --verbose

Аналогично тому, что было отмечено в первом абзаце, /dev/disk/by-id/можно использовать скрипт bash:

#! /bin/bash
#
echo "Encrypted_1" && veracrypt --mount /dev/disk/by-id/[id1] --slot=12 --verbose && echo "Encrypted_1"
echo "Encrypted_2" && veracrypt --mount /dev/disk/by-id/[id2] --slot=1 --verbose && echo "Encrypted_2"

Может быть, это будет кому-то полезно.

добавление

/dev/disk/by-id/ недостаточно стабилен, чтобы забыть об исправлении сценария монтирования после перезагрузки.

Christianus
источник
3

К сожалению, UUID и метки файловой системы внутри зашифрованных контейнеров недоступны из-за шифрования, и контейнеры TrueCrypt / VeraCrypt не несут UUID или метки самостоятельно (или, по крайней мере, ни один из них, о котором udev знает, в отличие от контейнеров LUKS).

Есть еще один достаточно стабильный идентификатор томов хранения в Linux: идентификаторы дисков . Вы можете найти их в:

/dev/disk/by-id/

До сих пор я никогда не замечал каких-либо существенных изменений в символических ссылках, поскольку имена генерируются

  • udev, чья базовая конфигурация хранилища меняется не часто,
  • на основе имени производителя, названия модели и серийного номера, указанного в микропрограмме привода, которая также не часто меняется.
Дэвид Фёрстер
источник
Оно работает. Тем не менее, я должен проверить предоставленное решение против стабильности. Тем временем я разработал ваш ответ в форме, которую вы можете увидеть ниже. Может оказаться, что этот предмет полезен и для кого-то еще.
Кристиан
/dev/disk/by-id/метод слишком нестабилен на мой вкус. После одной перезагрузки две символические ссылки изменились. Было бы хорошо, если бы veracrypt использовал, как и dm-crypt, разные внешние и внутренние UUID.
Кристиан
Странный. У меня никогда не было ничего такого, что касалось физических дисков и начиналось с них ata-*, scsi-*или даже usb-*за исключением 1) *-part*суффиксов после изменения таблицы разделов или 2) после обновления релиза, включая серьезные изменения в udev. Тем временем я отключил и обменял диски, а имена ядра ( sd*) меняются каждые несколько загрузок.
Дэвид Фёрстер
В моем случае ata-*было заменено usb-*два внешних HD от WD: WDC WD15NMVW-11AV3S3 и WD Elements 107C (1042).
Кристиан
Является ли хотя бы один из префиксов постоянным для любого из дисков?
Дэвид Фёрстер
0

Перед подключением диска сделайте «снимок»

$> ll /dev/disk/by-id > ~/before.txt

Опять же, после подключения вашего диска. И посмотрите на разницу:

$> ll /dev/disk/by-id > ~/after.txt
$> diff ~/before.txt ~/after.txt

Вы должны увидеть (то есть на внешнем диске Samsung с двумя разделами)

> [...] usb-Samsung_M2_Portable_D3F12345678FE094-0:0 -> ../../sdd
> [...] usb-Samsung_M2_Portable_D3F12345678FE094-0:0-part1 -> ../../sdd1
> [...] usb-Samsung_M2_Portable_D3F12345678FE094-0:0-part2 -> ../../sdd2

Чтобы смонтировать, скажем partition2 этого к /mnt/m(мой пример: с переключателями truecrypt)

veracrypt -t -tc -pPasswordIfYouLike -k "" --protect-hidden=no /dev/disk/by-id/usb-Samsung_M2_Portable_D3F12345678FE094-0:0-part2 /mnt/m

Теперь вы можете надежно использовать соответствующий скрипт монтирования для этого диска, независимо от того, к какому USB-порту или в каком порядке он подключен.


И для правильного, надежного сценария размонтирования:

veracrypt -t -d /dev/disk/by-id/usb-Samsung_M2_Portable_D3F12345678FE094-0:0-part2


стабильность?

Я использую это из первых рук на разных док-станциях, на разных рабочих местах с несколькими внешними накопителями разных марок в течение нескольких месяцев. Без проблем.

Фрэнк Нок
источник