Чи може 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 + зашифрований обсяг лише відносних шляхів?

Я не знаю про існування паралельної команди, /v \\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\доступної для Windows для командного рядка Linux. Я спробував (марно) --mount=/dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxпрапор, оскільки mountvol.exe назва тома (ймовірно) заснована на номері UUID ( blkidхоча непомітний для ). Офіційна документація veracrypt / truecrypt дозволяє користувачеві Linux працювати лише з відносними (змінними) шляхами ( /dev/sda3-> перезавантаження -> /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"
[...]


Рішення?

Хтось знає, чи можна описувати розташування томів VeraCrypt в абсолютних термінах на Linux?

Якщо це неможливо, будь ласка, надайте пропозиції щодо досягнення тієї ж мети? (Наприклад: udev? fstab?)

Помилка

mountvol.exeвизнає GUID, не так, UUIDяк було написано вище.

Відповіді:


7

Нижче я розробив відповідь, яку опублікував Девід Фоерстер, і зробив її більш описовою та зрозумілою для інших користувачів Linux, зацікавлених у представленій темі.

Linux + VeraCrypt + зашифровані обсяги абсолютних шляхів

Згідно з моїми дослідженнями, здається, що присвоєння абсолютного шляху томі VeraCrypt неможливе (принаймні, на даний момент) ( відео : by-id та запис по шляху на 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/ недостатньо стабільний, щоб забути про виправлення сценарію встановлення після перезавантаження.


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


стабільність?

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.