Смонтировать зашифрованные тома из командной строки?
Если у меня есть зашифрованный внешний диск (или внутренний диск, который не находится в fstab), я вижу запись для него в Nautilus - с записью типа "X GB Encrypted Volume". Я могу нажать на этот том, и мне будет предложено ввести пароль для расшифровки и подключения устройства.
Но как мне это сделать из командной строки?
Эта вики-страница и другие документы, которые я могу найти, относятся только к GUI-методам дешифрования устройства; но это не будет сделано в контексте безголовых серверов или SSH-логинов. Есть ли простой способ заставить устройства монтировать в автоматические места в /media
так же, как они будут с графическим интерфейсом?
(Я не спрашиваю о зашифрованных домашних каталогах - я в курсе ecryptfs-mount-private
, Этот вопрос о дополнительных зашифрованных томах.)
14 ответов
Шаги в ответе @Georg Schölly не работали в то время, хотя они могли бы сработать и сейчас, через несколько выпусков Ubuntu после. Тогда, после sudo mount /dev/mapper/my_encrypted_volume /media/my_device
шаг я получил ошибку:
mount: неизвестный тип файловой системы 'LVM2_member'
Разблокировка и монтирование диска с помощью udiskctl
Вместо этого я использовал udisksctl
интерфейс командной строки, который взаимодействует с udisksd
оказание услуг.
Вот что получилось (/dev/sdb5
раздел на моем жестком диске помечен как crypt-luks
):
udisksctl unlock -b /dev/sdb5
udisksctl mount -b /dev/mapper/ubuntu-root
После ввода первой команды вам будет предложено ввести пароль для шифрования. Как только зашифрованный раздел разблокирован, вторая команда смонтирует его. Если это успешно, вы получите сообщение, похожее на это:
Mounted /dev/dm-1 at /media/dpm/e8cf82c0-f0a3-41b3-ab28-1f9d23fcfa72
Оттуда я мог получить доступ к данным:)
Заметки
- Команды выполняются без
sudo
, ubuntu-root
наименование может меняться в разных версиях Ubuntu (например, я видел, что это называетсяsystem-root
тоже). Простой способ узнать имя - запустить следующую команду после разблокировки раздела LUKS:ls -la /dev/mapper
Затем, глядя на вывод
ls
команда, имя, которое вам понадобится, будет, как правило, символической ссылкой на/dev/dm-1
- Я заметил недостаток использования
udisksctl
, хоть. После разблокировки раздел отображается как символическая ссылка в/dev/mapper
, Имя этой символической ссылки становится UUID устройства. Однако такие инструменты, какinitramfs-update
ожидать, что символическая ссылка будет соответствовать имени в/etc/crypttab
и напечатает ошибку, если символическая ссылка не будет переименована. В качестве альтернативы, используяcryptsetup luksOpen
кажется, правильно установить имя символической ссылки.
Ваш том, вероятно, зашифрован с помощью LUKS, вот как его смонтировать:
Тебе нужно:
sudo apt-get install cryptsetup
Чтобы расшифровать том:
sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume
Теперь вы можете установить его как обычно:
sudo mkdir /media/my_device
sudo mount /dev/mapper/my_encrypted_volume /media/my_device
Чтобы снова заблокировать контейнер, его нужно сначала размонтировать:
sudo umount /media/my_device
sudo cryptsetup luksClose my_encrypted_volume
Чтобы автоматически положить его в /media
местоположение, используйте инструмент Udisks
sudo udisks --mount /dev/mapper/my_encrypted_volume
Если вы получили эту ошибку:
mount: unknown filesystem type 'LVM2_member'
бежать:
sudo apt-get install lvm2
sudo 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
Теперь следует подобрать содержащиеся тома / группы.Впереди драконы: теперь мы меняем название группы VOLUME. ВЫ НЕ МОЖЕТЕ ЗАГРУЗИТЬ ЭТО ДРАЙВ ПОСЛЕ!
использование
sudo vgrename ubuntu-vg ubuntu-vg2
переименовать группу томов.Если вам нужно загрузиться с этого диска, вы можете сделать эти шаги снова, но переименуйте вашу группу томов обратно в ubuntu-vg. Другая возможность - изменить конфигурацию загрузки на новое имя vg.
Теперь, когда дублированное имя vg разрешено, я могу загрузиться в свою обычную систему, повторить cryptsetup...
, vgscan
а затем смонтировать /dev/mapper/ubuntu--vg2-root
где угодно.
Все ответы выше предполагали, что пользователь уже знает, какой раздел является зашифрованным. Исходя из того, кому не очень нравится командная строка, я ожидал какого-то удобного для пользователя ответа... Итак, мои 2cents здесь.
- Откройте приложение "Диски" в Ubuntu.
- Найдите ваш смонтированный жесткий диск в левой панели.
- Нажмите на раздел с именем "LUKS": таким образом, вы можете увидеть его точку монтирования в тексте "Device" ниже (в моем случае:
/dev/sdb4
).
Затем я попытался смонтировать его, как указано выше:
$ sudo cryptsetup luksOpen /dev/sdb4 someNameForMyVolume
Enter passphrase for /dev/sdb4:
Но получил эту ошибку:
Cannot use device /dev/sdb4 which is in use (already mapped or mounted).
Итак, я предполагаю, что nautilus уже попытался смонтировать его (потому что он фактически запрашивал у меня пароль при подключении USB, даже если он не отображал расшифрованное дерево). Тем не менее, сообщение об ошибке не очень полезно, потому что оно не говорит мне, где оно уже сопоставлено / смонтировано. Но эта команда помогает в этом случае:
$ udisksctl unlock -b /dev/sdb4
Passphrase:
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-3
Object /org/freedesktop/UDisks2/block_devices/dm_2d3 is not a mountable filesystem.
После долгих ковыряний я узнал, что столкнулся с duplicate volume groups
проблема (описанная выше @amenthes), потому что команды sudo vgscan -v
а также sudo vgdisplay
показывали две записи с одинаковым именем группы томов. Тем не менее, я нашел лучший способ справиться с этим, чем его метод (не нужно загружаться в LiveCD для переименования групп томов!), В этой ссылке, которую я процитирую выше (на случай, если эта ссылка будет нарушена...):
Если вы бежите ls -la /dev/mapper/
вы должны увидеть luks-xxxxxx-xxxxx-xxxx
или какой-то такой файл. Это отображение, которое было создано, когда Ubuntu запросил пароль шифрования с диалоговым окном, но не смог открыть его (все, что делал диалог, это вызывал luksOpen
и сопоставьте его с этим файлом /dev/mapper/luks-xxx). Сейчас:
- Убедитесь, что ваш физический том доступен, запустив
sudo pvdisplay
команда. Это должен быть /dev/mapper/luks-xxx-что угодно. - Получить UUID тома, запустив
sudo pvs -o +vg_uuid
, Значение uuid будет отображаться полностью вправо и содержать 7 значений, разделенных тире. Скопируйте их куда-нибудь, так как мы будем использовать их на следующем шаге. НЕ ЗАМЫСЛЯЙТЕ UUIDS И КОПИРУЙТЕ НЕПРАВИЛЬНО. Скопируйте только один для вашего текущего устройства /dev/mapper/luks-xxx-независимо. - Измените группу томов для старого диска, выполнив следующую команду
sudo vgrename UUIDOFYOURDISKHERE oldhd
Вы можете изменить "oldhd" на любое другое, если оно отличается от имени группы томов вашего текущего диска. Выполнение этого шага устраняет конфликт с именами групп томов, что позволит вам теперь сделать тома доступными. - Запустите команду
vgchange -a y
сделать тома активными. - Создайте папку для точки монтирования где-нибудь, например:
sudo mkdir /media/<yourUserName>/someDir
- Смонтировать это:
sudo mount /dev/oldhd/root /mnt/oldhd
, - После работы с вашими файлами вы должны переименовать вашу группу томов обратно в
ubuntu-vg
если вы хотите, чтобы том все еще был загрузочным.
Вот примерsdb1, вы должны ввести имя вашего устройства, ни одна из этих команд не потребует прав root
разблокировать зашифрованный диск
udisksctl unlock -b /dev/sdb1
после вставки правильной парольной фразы она выдаст что-то вроде этого: Unlocked / 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
это работало со мной, и мне не нужно было устанавливать его, как это было в live boot.
Теперь мне нужно смонтировать HD, и это было не так просто: я попробовал:
sudo mkdir /media/my_device
sudo mount /dev/mapper/my_encrypted_volume /media/my_device
Но вторая команда не работала со мной, и поэтому я должен найти решение, которое заключается в следующем:
sudo udisksctl mount -b /dev/mapper/ubuntu--vg-root
Это был мой путь... но вы можете использовать путь dev/mapper/ubuntu
а затем дважды нажмите вкладку, чтобы увидеть остальные варианты. Это смонтировано на HDD как:
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_volume
sudo mkdir /media/my_device
sudo udisksctl mount -b /dev/mapper/ubuntu--vg-root
sudo 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
не возвращает никаких сообщений.
Правильный ответ gio mount -d /dev/dm-x
(не судо).
В предыдущих ответах показано отключение с помощью способа монтирования Nautilus или Nemo, поскольку вам необходимо ввести кодовую фразу LUKS, даже если она ранее была кэширована в пользовательском наборе ключей из GUI. С помощью gio
автоматически использует фразу-пароль, ранее сохраненную Nautilus или Nemo.
Более подробный ответ см. На https://unix.stackexchange.com/questions/394320/what-command-does-nemo-use-to-mount-drives/536842
Вы можете смонтировать его в два этапа, и у меня есть пример сценария.
Примечание: сервис udiskctl будет монтировать вещи в /media, он больше предназначен для настольных пользователей, монтирующих usb-флешки. Если вы хотите смонтировать устройство в другом месте, это не то решение, которое вы ищете.
Вот что я разработал. В этом примере мое зашифрованное устройство - это раздел, созданный с помощью lvm, но это не имеет значения. Это раздел в формате ext4. В зашифрованном виде он живет по адресу
/dev/myvg/opt1
зашифрованный раздел "открывается" (расшифровывается) вот так
STEP 1: sudo cryptsetup luksOpen /dev/myvg/opt1 opt1_opened
(это где вы вводите фразу-пароль)
последний аргумент является временной ссылкой на дешифрованное блочное устройство. "Сопоставление" исчезает при перезагрузке, поэтому вы можете каждый раз выбирать другое имя, если хотите.
теперь он виден как устройство:
ls /dev/mapper
control 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 sudo
read -s -p "Enter LUKS password: " luks_password
printf $luks_password | cryptsetup luksOpen /dev/myvg/opt1 opt1_opened --key-file -
sudo -u tim mount /opt1
Искал то же самое...
mkdir
шаги были моей причиной, чтобы смотреть дальше, также я изменил policykit
чтобы разрешить моему пользователю монтировать, не спрашивая сначала пароль root, а затем пароль зашифрованного тома, поэтому sudo
было также более убить.
Мое решение, которое я нашел, было использование gvfs-mount
из gvfs-bin
пакет. Теперь с gvfs-mount -d /dev/sda7
Меня просят только зашифрованный пароль, и он монтируется под /media/VOLUME_LABEL
,
Это проблема LVM, которую (упомянутую выше/ниже) необходимо установить.
$ sudo apt-get install lvm2 #This step may or may not be required.
$ sudo pvscan #Use this to verify your LVM partition(s) is/are detected.
$ sudo vgscan #Scans for LVM Volume Group(s)
$ sudo vgchange -ay #Activates LVM Volume Group(s)
$ sudo lvscan #Scans for available Logical Volumes
$ sudo mount /dev/YourVolGroup00/YourLogVol00 /YourMountPoint
Ссылались на них по пути к приведенному выше ответу:
- Как смонтировать устройство в Linux?
- Монтировать зашифрованные тома из командной строки
- Не удается смонтировать зашифрованный раздел LUKS
- mount: неизвестный тип файловой системы 'crypto_LUKS'
- Внешний жесткий диск обнаружен, но не монтируется
- Монтирование диска и доступ к нему
- Внешний жесткий диск не распознается в Debian
Уточнить :
/YourMountPoint
может быть что угодно, например
/media/user/external
Итак, у меня есть работающее решение, ребята, как обсуждалось ранее, причина, по которой вы получаете mount: unknown filesystem type 'LVM2_member'
ошибка в том, что по умолчанию ваша машина linux назначает одно и то же имя VG внешнему жесткому диску, следовательно, все разделы на внешнем жестком диске неактивны.
Это то, что вам нужно сделать:
- отключите внешний жесткий диск и запишите свой внутренний VG UUID, используя (
sudo vgdisplay command
), - Теперь подключите внешний жесткий диск и переименуйте группу VG вашего ВНЕШНЕГО HDD (не внутреннего, это сломает ваш ящик) (
vgrename UUID_Number [new-group]
). - Убедитесь, что новое имя обновлено в VGdiplay, теперь активируйте новую VGroup (
vgchange [new_group] -a y
), проверьте, все ли разделы активированы (lvscan
). - Теперь вы должны увидеть все свои разделы под
ls /dev/mapper/[new_group]
все, что вам нужно сделать, это смонтировать раздел (mount -t ext4 /dev/mapper/[new_group]-data /zez
)
На моем Chromebook с (крутон) Ubuntu Xenial 16.04 я нахожу, что когда я выпускаю:
sudo cryptsetup luksOpen / dev / sda1 my_encrypted_volume
В соответствии с приведенным выше сообщением и введением моей парольной фразы, я получаю "Нет ключа с этой парольной фразой". Однако случайно я обнаружил (и это очень странно!) Все работает, когда я добавляю "--debug" в команду cryptsetup! Затем я могу смонтировать том и получить доступ к файлам.
Запрашивает файловый менеджер Thunar для выполнения монтирования результатов "Не авторизован для выполнения операции". ошибка. Я не могу найти способ обойти это, но так как я могу сделать монтирование в командной строке, это несколько приемлемо.