Я не знаю одного способа сделать это. Программы с графическим интерфейсом делают достаточный запрос на диске, чтобы выбрать «правильный» подход, и вам придется выполнить часть этой работы самостоятельно. Тем не менее, вам не нужен sudo, и я думаю, что последовательность событий относительно безболезненна.
Краткий ответ
Используйте udisksctl
из udisks2
пакета:
udisksctl unlock -b /path/to/disk/partition
udisksctl mount -b /path/to/unlocked/device
Ваша учетная запись пользователя должна быть надлежащим образом авторизована для того, чтобы вышеуказанное работало. В Debian и Ubuntu это означает добавление вашей учетной записи в plugdev
группу.
Когда вы закончите с диском:
udisksctl unmount -b /path/to/unlocked/device
udisksctl lock -b /path/to/disk/partition
udisksctl power-off -b /path/to/disk/or/partition
Как настроить вещи
Вот как вы можете настроить вещи (через командную строку), чтобы сделать процесс использования диска максимально безболезненным. Я предполагаю, что вы хотите использовать весь USB-накопитель в качестве единой файловой системы. Другие конфигурации потребуют изменений в инструкциях. Предостережение об изменениях: я не нашел способа использовать LVM в зашифрованном контейнере, который позволял бы непривилегированной учетной записи отключать все. (Я не вижу способа деактивировать группу томов с помощью udisksctl
.)
В целях иллюстрации скажем, что диск есть /dev/sda
. Вам понадобится имя для файловой системы, чтобы было легче ссылаться позже. Я буду использовать " example
".
Разметить диск
Запустите sudo parted /dev/sda
и выполните следующие команды:
mklabel gpt
mkpart example-part 1MiB -1s
quit
Команда mkpart
, вероятно, предложит вам немного изменить параметры. Вы должны быть в порядке, принимая его рекомендуемые номера.
Раздел теперь будет доступен через /dev/disk/by-partlabel/example-part
.
Создать и смонтировать раздел LUKS
sudo cryptsetup luksFormat /dev/disk/by-partlabel/example-part
Пройдите через подсказки.
sudo cryptsetup luksOpen /dev/disk/by-partlabel/example-part example-unlocked
Зашифрованное устройство теперь доступно по адресу /dev/mapper/example-unlocked
. Это не будет постоянной вещью; это просто для процесса установки.
Создайте свою файловую систему
Давайте предположим, что используемая вами файловая система - XFS. Практически любая другая традиционная файловая система будет работать так же. Важно добавить метку, на которую вы сможете ссылаться позже:
sudo mkfs -t xfs -L example /dev/mapper/example-unlocked
Теперь к блочному устройству файловой системы можно получить доступ через /dev/disk/by-label/example
.
Установить разрешения файловой системы
По умолчанию файловая система будет доступна только пользователю root. В большинстве случаев вы, вероятно, хотите, чтобы файлы были доступны вашей учетной записи пользователя. Предполагая, что имя вашей учетной записи " user
":
udisksctl mount -b /dev/disk/by-label/example
sudo chown user:user /media/user/example
Закройте все вниз
udisksctl unmount -b /dev/disks/by-label/example
sudo cryptsetup luksClose example-unlocked
Используйте вашу файловую систему
Это то, что вы будете делать регулярно. После подключения USB-накопителя
udisksctl unlock -b /dev/disks/by-partlabel/example-part
udisksctl mount -b /dev/disks/by-label/example
Если ваша учетная запись пользователя " user
", файловая система теперь будет смонтирована в /media/user/example
.
Чтобы размонтировать файловую систему:
udisksctl unmount -b /dev/disks/by-label/example
udisksctl lock -b /dev/disks/by-partlabel/example-part
udisksctl power-off -b /dev/disks/by-partlabel/example-part
Теперь вы можете отключить USB-накопитель.
udisks
(илиudisks2
). Изучение вариантов из утилиты CLI может дать дополнительные ответы.