Монтировать зашифрованные тома из командной строки?

Если у меня есть зашифрованный внешний диск (или внутренний диск, которого нет в fstab), я вижу запись для него в Nautilus - с записью типа "Зашифрованный том X GB". Я могу нажать на этот том, и мне будет предложено ввести пароль для расшифровки и подключения устройства.

Но как мне это сделать из командной строки?

Эта вики-страница, и другие документы, которые я могу найти, относятся только к методам дешифрования устройства с графическим интерфейсом; но это не годится в контексте безголовых серверов или логинов SSH. Есть ли простой способ заставить устройства подключаться к автоматическим местоположениям в /media точно так же, как это было бы с графическим интерфейсом?

(Я не спрашиваю о зашифрованных домашних каталогах - я знаю о ecryptfs-mount-private. Этот вопрос касается дополнительных зашифрованных томов.)

Ваш том, вероятно, зашифрован с помощью LUKS, вот как его смонтировать:

Тебе нужно:

sudo apt-get install cryptsetup

Для расшифровки тома:

sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume

Теперь вы можете монтировать его как обычно:

sudo mkdir /media/my_devicesudo mount /dev/mapper/my_encrypted_volume /media/my_device

Чтобы снова заблокировать контейнер, его необходимо сначала размонтировать:

sudo umount /media/my_devicesudo cryptsetup luksClose my_encrypted_volume

Чтобы автоматически поместить его в /media местоположение, используйте инструмент udisks

sudo udisks --mount /dev/mapper/my_encrypted_volume

Шаги, приведенные в ответе @ Georg Schölly, не сработали для меня в то время, хотя они могут сработать сейчас, через несколько выпусков Ubuntu. Тогда, после того, как sudo mount /dev/mapper/my_encrypted_volume /media/my_device шаг Я получил сообщение об ошибке:

монтирование: неизвестный тип файловой системы 'LVM2_member'

Разблокировка и монтирование диска с помощью udiskctl

Вместо этого я использовал udisksctl, интерфейс командной строки, который взаимодействует с udisksd обслуживание.

Вот что сработало (/dev/sdb5 является ли раздел на моем жестком диске помеченным как crypt-luks):

udisksctl unlock -b /dev/sdb5udisksctl mount -b /dev/mapper/ubuntu--vg-root

После ввода первой команды вам будет предложено ввести пароль для шифрования. Как только зашифрованный раздел будет разблокирован, вторая команда смонтирует его. Если это будет сделано успешно, вы получите сообщение схожий к этому:

Mounted /dev/dm-1 at /media/dpm/e8cf82c0-f0a3-41b3-ab28-1f9d23fcfa72

Оттуда я мог бы получить доступ к данным :)

Блокировка диска с помощью udiskctl

Отключите устройство:

udisksctl unmount -b /dev/mapper/ubuntu--vg-root

Вам нужно будет деактивировать все логические тома в ubuntu-vg сначала группа томов. В противном случае вы получите сообщение об ошибке типа "Устройство занято", если попытаетесь заблокировать его (дополнительная информация):

sudo lvchange -an ubuntu-vg

Тогда вы сможете снова заблокировать зашифрованный раздел

udisksctl lock -b /dev/sdb5

Записи

  • То udisksctl команды выполняются без sudo.
  • Имена картографов устройств: в ubuntu--vg-root именование может меняться в разных версиях Ubuntu (например, я видел, как оно называется system-root и ubuntu-root тоже). Простой способ узнать имя - выполнить следующую команду после разблокировки раздела LUKS:

    ls -la /dev/mapper

    Затем, глядя на выходные данные ls команда, имя, которое вам понадобится, как правило, будет иметь символическую ссылку на /dev/dm-1

  • Имена картографов устройств, альтернативные: альтернативой предыдущей команде является выполнение:

    lsblk -e7

    Там вы сможете увидеть сопоставление имен устройств в виде древовидного представления. То -e 7 опция используется для исключения из вывода устройств цикла (идентификатор 7), созданных установленными привязками. Просто чтобы было меньше беспорядка.

  • Имена логических томов: вы можете запустить sudo lvs команда для определения имен групп томов и логических томов
  • Приложение для дисков: приложение GNOME Disks не отключает автоматически логические тома перед блокировкой раздела. Даже если вы успешно разблокировали раздел с помощью графического интерфейса, вам нужно будет перейти в командную строку и выполнить sudo lvchange -an ubuntu-vg команду, прежде чем вы сможете заблокировать ее из графического интерфейса.

Если вы получите эту ошибку:

mount: unknown filesystem type 'LVM2_member'

бежать:

sudo apt-get install lvm2sudo lvscan

затем активируйте все LVM, которые вы видите

sudo vgchange -ay

затем повторно запустите монтирование:

sudo mount /dev/mapper/my_encrypted_volume /media/my_device

Одна проблема, с которой я столкнулся, заключалась в том, что повторяющиеся группы томов: И моя система восстановления, и диск, подлежащий восстановлению, были системами ubuntu с LVM. Вот почему у меня было два ubuntu-vg группы томов (vgdisplay отобразил бы оба, каждый со своим собственным UUID, но я не смог добраться до их логических томов).

Мое решение основано на ответе Георга:

  • Загрузитесь с live-linux (чтобы не столкнуться с повторяющимся именем группы томов)
  • sudo cryptsetup luksOpen /dev/sdaX my_encrypted_volume
  • введите пароль при появлении соответствующего запроса
  • sudo vgscan теперь следует выбрать содержащиеся тома / группы.

  • ПРОДОЛЖАЙТЕ: ТЕПЕРЬ МЫ МЕНЯЕМ НАЗВАНИЕ ГРУППЫ ТОМОВ. ВПОСЛЕДСТВИИ ВЫ НЕ СМОЖЕТЕ ЗАГРУЗИТЬ ЭТОТ ДИСК!

    использовать sudo vgrename ubuntu-vg ubuntu-vg2 чтобы переименовать группу томов.

    Если вам нужно загрузиться с этого диска, вы можете повторить эти действия, но переименуйте свою группу томов назад в ubuntu-vg. Другая возможность - изменить конфигурацию загрузки на новое vg-имя.

Теперь, когда дублирующее vg-имя устранено, я могу загрузиться обратно в свою обычную систему, повторить cryptsetup..., vgscan а затем смонтировать /dev/mapper/ubuntu--vg2-root куда захочешь.

Все приведенные выше ответы исходили из предположения, что пользователь уже знает, какой раздел является зашифрованным. Исходя из того, что кому-то не очень нравится командная строка, я ожидал какого-нибудь удобного для пользователя ответа... Итак, мои 2 цента здесь.

  1. Откройте приложение "диски" ubuntu.
  2. Найдите подключенный жесткий диск на левой панели.
  3. Нажмите на раздел, в названии которого есть "LUKS": таким образом, вы сможете увидеть его точку монтирования в тексте "Устройство" ниже (в моем случае: /dev/sdb4).

Затем я попытался смонтировать его, как советовалось выше:

$ sudo cryptsetup luksOpen /dev/sdb4 someNameForMyVolumeEnter passphrase for /dev/sdb4: 

Но получил эту ошибку:

Cannot use device /dev/sdb4 which is in use (already mapped or mounted).

Итак, я предполагаю, что nautilus уже пытался смонтировать его (потому что он фактически запросил у меня пароль, когда я подключал USB, даже если в итоге он не показал расшифрованное дерево). Однако сообщение об ошибке на самом деле не очень полезно, потому что оно не сообщает мне, где оно уже сопоставлено / смонтировано. Но эта команда помогает в этом случае:

$ udisksctl unlock -b /dev/sdb4Passphrase: Error unlocking /dev/sdb4: GDBus.Error:org.freedesktop.UDisks2.Error.Failed: Device /dev/sdb4 is already unlocked as /dev/dm-3

Ага! Так что это /dev/dm-3.

Однако при попытке смонтировать его он не работает:

$ udisksctl mount -b /dev/dm-3Object /org/freedesktop/UDisks2/block_devices/dm_2d3 is not a mountable filesystem.

После долгих размышлений я обнаружил, что натыкаюсь на duplicate volume groups проблема (описанная выше @amenthes), поскольку команды sudo vgscan -v и sudo vgdisplay показывались две записи с одинаковым именем группы томов. Тем не менее, я нашел лучший способ справиться с этим, чем его метод (нет необходимости загружаться в LiveCD для переименования volumegroups!), в этом ссылка, который я процитирую выше (на всякий случай, если эта ссылка будет нарушена ...):

Если ты побежишь ls -la /dev/mapper/ вы должны увидеть luks-xxxxxx-xxxxx-xxxx или какой-нибудь подобный файл. Это сопоставление, которое было создано, когда Ubuntu запросила пароль шифрования с помощью диалогового окна, но не смогла его открыть (все, что сделал диалог, - это вызвать luksOpen и сопоставьте его с этим файлом /dev/mapper/luks-xxx). Сейчас:

  1. Убедитесь, что ваш физический том доступен, запустив sudo pvdisplay команда. Это должен быть /dev/mapper/luks-xxx-что угодно.
  2. Получите uuid тома, выполнив sudo pvs -o +vg_uuid. uuid будет значением, отображаемым полностью справа, содержащим 7 значений, разделенных тире. Скопируйте их куда-нибудь, поскольку мы будем использовать их на следующем шаге. НЕ ПУТАЙТЕ UUID И НЕ КОПИРУЙТЕ НЕПРАВИЛЬНЫЙ. Скопируйте только тот, который предназначен для вашего текущего устройства /dev/mapper/luks-xxx-whatever.
  3. Измените группу томов для вашего старого диска, выполнив следующую команду sudo vgrename UUIDOFYOURDISKHERE oldhd Вы можете изменить "oldhd" на любое другое значение, если оно отличается от имени группы томов вашего текущего диска. Выполнение этого шага устраняет конфликт с именами групп томов, что позволит вам теперь сделать тома доступными.
  4. Выполните команду vgchange -a y чтобы сделать тома активными.
  5. Создайте где-нибудь папку для точки монтирования, например: sudo mkdir /media/<yourUserName>/someDir
  6. Установите его: sudo mount /dev/oldhd/root /mnt/oldhd.
  7. После работы с вашими файлами вы должны переименовать свою volumegroup обратно в ubuntu-vg если вы хотите, чтобы том по-прежнему был загрузочным.

sdb1 вот пример, в котором вы должны ввести имя своего устройства, ни одна из этих команд не потребует прав суперпользователя

разблокировка зашифрованного диска

udisksctl unlock -b /dev/sdb1

после вставки правильной парольной фразы он выведет что-то вроде этого: Разблокирован /dev/sdb1 как /dev/dm-3

затем смонтируйте его в /media/

udisksctl mount -b /dev/dm-3

он должен выводить что-то вроде этого: Смонтированный /dev/dm-3 в /media/yourUserName/sdb

чтобы размонтировать его

udisksctl unmount -b /dev/dm-3

чтобы снова запереть его

udisksctl lock -b /dev/sdb1

Я пошел по нескольким путям из предыдущих ответов, и только комбинация предыдущих ответов сработала для меня. Он знает, что я сделал, и что прошло нормально, и что пошло не так, и мой обходной путь.

У меня есть LUKS зашифрованный жесткий диск который мне нужно смонтировать с загрузочного USB-накопителя для Ubuntu 15.10. Для этого я начал со следующей команды,

udisksctl unlock -b /dev/sda3

где sda3 - это зашифрованный раздел. Эта команда не сработала со мной, и я не уверен, почему, поэтому я использовал следующую команду:

sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume

он работал со мной, и мне не нужно было его устанавливать, поскольку он был там при загрузке в режиме реального времени.

Теперь мне нужно смонтировать HD, и это было непросто: я попытался:

sudo mkdir /media/my_devicesudo mount /dev/mapper/my_encrypted_volume /media/my_device

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

sudo udisksctl mount -b /dev/mapper/ubuntu--vg-root

Это был мой путь.. но вы можете использовать путь dev/mapper/ubuntu а затем дважды щелкните вкладку, чтобы просмотреть остальные параметры. Это смонтировало жесткий диск как:

Mounted /dev/dm-1 at /media/root/03cf6b80-fa7c-411f-90b9-42a3398529ce

Затем я использовал следующую команду, чтобы смонтировать его как /media/my_device следующим образом:

sudo mount /dev/dm-1 /media/my_device/

что прекрасно сработало.

Вкратце

sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volumesudo mkdir /media/my_devicesudo udisksctl mount -b /dev/mapper/ubuntu--vg-rootsudo mount /dev/dm-1 /media/my_device/

Для тех из нас, кто не хочет использовать графический интерфейс даже для определения того, какой раздел зашифрован.

  • найдите любые зашифрованные разделы

    lsblk -lf | grep LUKS

    -l запрашивает формат "список" - нам не нужно дерево
    -f показывает нам также имя файловой системы
    мы получаем что-то вроде

    sdc2 crypto_LUKS b09d6209-......

  • разблокируйте нужный нам раздел (в моем случае /dev/sdc2)

    udisksctl unlock -b /dev/sdc2

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

    Unlocked /dev/sdc2 as /dev/dm-6

  • смонтируйте только что созданное устройство (dm стоять за диспетчер устройств)

    udisksctl mount -b /dev/dm-6

    И снова мы получаем утвердительный ответ с полезной информацией:

    Mounted /dev/dm-6 at /media/g/Data.

    (g быть моим именем пользователя в этой системе, Data это метка, которую я использовал для этого раздела)

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

    Error mounting /dev/dm-6: GDBus.Error:org.freedesktop.UDisks2.Error.AlreadyMounted: Device /dev/dm-6 is already mounted at '/media/g/Data'.

    Это не проблема, вы все равно можете получить доступ к данным из зашифрованного раздела.

  • доступ к данным: ls /media/g/Data
  • снова размонтируйте устройство (используйте то же имя, которое вы использовали для монтирования, команда unmount, нет umount :-) )

    udisksctl unmount -b /dev/dm-6

    Если устройство не занято, вы получите

    Unmounted /dev/dm-6.

  • Теперь снова заблокируйте раздел (вы должны запомнить название раздела).

    udisksctl lock -b /dev/sdc2

    Вы получите

    Locked /dev/sdc2.

  • при необходимости отключите питание всего внешнего диска

    udisksctl power-off -b /dev/sdc

    С графическим рабочим столом вы можете получить сообщение об ошибке здесь:

    Error powering off drive: The drive in use: Device /dev/sdc3 is mounted (udisks-error-quark, 14)

    В этом случае вы можете использовать udisksctl чтобы размонтировать разделы один за другим, пока вы не добьетесь успеха. То udisksctl power-off не возвращает никаких сообщений.

Вы можете смонтировать его в два этапа, и у меня есть пример скрипта.

Примечание: служба udiskctl будет монтировать данные в /media, она больше предназначена для настольных пользователей, монтирующих USB-накопители. Если вы хотите смонтировать устройство в другом месте, это не то решение, которое вы ищете.

Вот что я придумал. В этом примере мое зашифрованное устройство представляет собой раздел, созданный с помощью lvm, но на самом деле это не имеет значения. Это раздел в формате ext4. В своей зашифрованной форме он живет в

/dev/myvg/opt1 

зашифрованная часть "открывается" (расшифровывается) следующим образом

  STEP 1:  sudo cryptsetup luksOpen /dev/myvg/opt1 opt1_opened

(здесь вы вводите кодовую фразу)

последний аргумент - это временная ссылка на расшифрованное блочное устройство."Сопоставление" исчезает при перезагрузке, так что вы можете каждый раз выбирать другое имя, если хотите.

теперь он виден как устройство:

ls /dev/mappercontrol  myvg-opt1  myvg-root  opt1_opened

Вы можете смонтировать это устройство: теперь у нас есть устройство ext4.Чтобы сделать это удобным, добавьте строку в /etc/fstab

/dev/mapper/opt1_opened /opt1   ext4    noauto,users    0       0

и сделайте точку монтирования (в моем случае: sudo mkdir /opt1, а затем настройте разрешения по своему усмотрению) Если вы использовали имя opt1_opened на шаге 1, то это второй шаг для его монтирования:

STEP 2: mount /opt1   #the fstab line lets users mount, so no need for sudo

и он установлен.

Следовательно, сценарий bash:

#!/bin/bash#needs to be run sudoread -s -p "Enter LUKS password: " luks_passwordprintf $luks_password | cryptsetup luksOpen /dev/myvg/opt1 opt1_opened --key-file -sudo -u tim mount /opt1

Правильный ответ таков gio mount -d /dev/dm-x (без sudo).

Предыдущие ответы показывают несоответствие способу монтирования Nautilus или Nemo, поскольку вам необходимо ввести кодовую фразу LUKS, даже если она ранее кэшировалась в пользовательской связке ключей из графического интерфейса. С помощью gio автоматически использует кодовую фразу, ранее сохраненную Nautilus или Nemo.

Для получения более подробного ответа см. https://unix.stackexchange.com/questions/394320/what-command-does-nemo-use-to-mount-drives/536842#536842

Продолжается. Это различие стало актуальным теперь, когда Ubuntu 18.04 отказалась от поддержки шифрования одного каталога в пользу полного шифрования диска, согласно Why was home encryption dropped in the 18.04 installer? - Ask Ubuntu Для некоторых, включая меня, это является источником трудностей при плавном переходе на 18.04

+1 для проведения различия между шифрованием файловых систем в целом и зашифрованными домашними каталогами

Связанные: ntfs - How to mount a disk encrypted with cryptsetup(crypto_LUKS) in Ubuntu 14.04? - Unix & Linux Stack Exchange | linux - LUKS on Ubuntu 16.04 : unknown filesystem type 'crypto_LUKS' - Super User