Змонтувати зашифровані томи з командного рядка?


86

Якщо у мене є зашифрований зовнішній диск (або внутрішній диск, який не знаходиться у fstab), я бачу запис про нього в Nautilus - із записом типу "X GB Encrypted Volume". Я можу натиснути на цей том, і мені буде запропоновано пароль, щоб розшифрувати і встановити пристрій.

Але як це зробити з командного рядка?

Ця вікі-сторінка та інші документи, які я можу знайти, стосуються лише методів GUI розшифровки пристрою; але це не зробиться в умовах безголових серверів або входу в SSH. Чи є простий спосіб встановити пристрої для монтажу до автоматичних місць /mediaтак, як це було б із графічним інтерфейсом?

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


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

Продовжується. Відмінність стала актуальною тепер, коли Ubuntu 18.04 знизив підтримку шифрування одного каталогу на користь повного шифрування диска, згідно з askubuntu.com/q/1030572/446253 Для деяких, включаючи мене, це джерело труднощів при переході на 18.04 безшовно
XavierStuvw

Відповіді:


61

Кроки у відповіді @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--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Параметр використовується для виключення пристроїв контуру (ID 7) , створених з допомогою встановлених знімків з виходу. Просто мати менше захаращення.

  • Імена логічного тома : ви можете запустити sudo lvsкоманду, щоб дізнатися назви груп томів та логічних томів
  • Додаток Диски : додаток GNOME Disks не вимикає автоматично логічні томи до блокування розділу. Навіть якщо ви успішно розблокували розділ через GUI, вам потрібно буде перейти до командного рядка та виконати sudo lvchange -an ubuntu-vgкоманду, перш ніж ви зможете заблокувати її з GUI.

1
Я думаю, що це найкраща відповідь, тому що я підозрюю, що це більш-менш те, що nautilus робить за допомогою libudisks2. Також я перевірив це, щоб він працював як непривілейований користувач.
Jaap Versteegh,

9
Я, на жаль, отримую помилку, Object /org/freedesktop/UDisks2/block_devices/dm_2d3 is not a mountable filesystem.будь-яку пораду?
wawa

1
@wawa У мене була така ж проблема , і вирішити її в цій відповіді askubuntu.com/a/895508/334823
Рафаїл

2
Швидко просунувшись на 5 років, мені знову довелося врятувати зашифрований розділ. Я використовував живу USB-накопичувач Ubuntu 18.04 і дотримувався тих же кроків, які я описав тоді. Як і раніше, вони добре працювали, і мені не потрібно sudoбуло їх виконувати.
Девід Планелла

1
@Selah, я розширив відповідь, щоб краще пояснити, який шлях пристрою використовувати для кріплення. Для mwfearnley: можливо, варто ознайомитись з дозволами користувача, у якому ви ввійшли в систему.
Девід Планелла

87

Ваш об'єм, ймовірно, зашифрований 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місці, скористайтеся інструментом удиски

sudo udisks --mount /dev/mapper/my_encrypted_volume

Тож я не можу це робити і як непривілейований користувач, навіть якщо міг би через GUI?
ча

Це насправді залежить від налаштувань вашої системи. Я вважаю, що більшість команд повинні працювати, поки ваша система надає користувачеві доступ до пристроїв.
Георг Шьолі

1
Ubuntu 15.04 відправляє udisks2пакет замість udisks, а колишній перейменовує інструмент udisksctl.
лижник

на жаль, не працював для мене з ubuntu 16.04. Кріплення: невідомий тип файлової системи «LVM2_member»
Села

@Selah: Схоже, ви намагаєтесь розшифрувати щось, що не є томом LUKS. Можливо, вам потрібно використовувати щось інше, ніж /dev/sda1.
Георг Шоллі

22

Якщо ви отримаєте цю помилку:

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

7
Останній рядок необов’язково правильний, оскільки ви все-таки можете опинитися з тією ж помилкою. Швидше встановіть один із дисків, перелічених на lvscan, а не/dev/mapper/my_encrypted_volume
Weasemunk

Це для мене не вийшло. Те саме кріплення помилки: невідома файлова система типу "LVM2_member". Можливо тому, що я завантажуюся з флешки?
Селах

@SeanScott дякую тобі велике ... Я використовував інсталятор, щоб шифрувати свій привід зараз, я намагаюся відновити дані, і я повинен нещодавно вивчити ці речі ... d'oh
CameronNemo

13

Одна з проблем, з якою я стикався, - це дублювання груп томів : І моя система відновлення, і диск, який потрібно відновити, були системами 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-ім'я.

Тепер, коли ім'я дубліката В. вирішено, я можу завантажитися назад в мою звичайну систему, переробляти cryptsetup..., vgscanа потім змонтувати в /dev/mapper/ubuntu--vg2-rootбудь-якому місці ви хочете.


2
Схоже, ви також sudo vgdispayможете знайти UUID і використовувати це замість дублюючого імені, щоб зробити перейменування лише одного тома. Тобто, схопивши UUID, а потім sudo vgrename <uuid> oldпрацював на мене.
mpontillo

Я не можу перевірити пропозицію Майка зараз, але якщо вона працює, це краще, ніж перейменувати групу томів!
аменти

5

sdb1 ось приклад, коли ви повинні ввести ім'я свого пристрою, жодна з цих команд не потребуватиме root права

розблокувати зашифрований диск

udisksctl unlock -b /dev/sdb1

після вставлення правильної парольної фрази вона виведе приблизно так: Unlocked / dev / sdb1 as / dev / dm-3

потім встановіть його на / медіа /

udisksctl mount -b /dev/dm-3

він повинен вивести щось подібне: Монтаж / dev / dm-3 у / media / yourUserName / sdb

зняти його

udisksctl unmount -b /dev/dm-3

щоб знову заблокувати

udisksctl lock -b /dev/sdb1

2
disksctl mount -b / dev / dm-4 Об'єкт / org / freedesktop / UDisks2 / block_devices / dm_2d4 не є монтажною файловою системою.
DevilCode

Вибачте, що ви вирішили це питання? (з не монтується FS ... як я отримую те саме)
Олег Тарасенко

1
Ті ж проблеми, побачити цей відповідь на те , що працював для мене askubuntu.com/a/895508/334823
Raphael

3

Усі відповіді вище припускали, що користувач вже знає, який розділ є зашифрованим. Походячи від того, хто не любить командний рядок так сильно, я сподівався на відповідь, зручну для користувачів ... Тож мої 2 центи тут.

  1. Відкрийте додаток "диски" ubuntu.
  2. Знайдіть встановлений жорсткий диск на панелі ліворуч.
  3. Клацніть на розділі, який має назву "LUKS": таким чином ви зможете побачити його точку кріплення в тексті "Пристрій" нижче (в моєму випадку /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). Зараз:

  1. Переконайтесь, що ваш фізичний обсяг доступний, запустивши sudo pvdisplayкоманду. Це має бути / dev / mapper / luks-xxx-будь-що.
  2. Отримайте uuid гучності, запустивши sudo pvs -o +vg_uuid. Uuid - це значення, яке відображатиметься до кінця праворуч, і містить 7 значень, розмежованих тире. Скопіюйте їх кудись, оскільки ми будемо використовувати їх на наступному кроці. НЕ БУДІТЬ БЕЗПЕШНЕННЯ ВИМОГИ, А КОПІЮЙТЕ ВІД НЕБЕЗПЕКИ Копіюйте лише цей пристрій на поточний / dev / mapper / luks-xxx.
  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. Після роботи з вашими файлами слід перейменувати свою групу томів назад, ubuntu-vgякщо ви хочете, щоб гучність все ще завантажувалася.

2

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

  • знайти будь-які зашифровані розділи

    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не повертає жодних повідомлень.


2

Я пішов кількома шляхами з попередніх відповідей, і для мене працювала лише комбінація попередніх відповідей. Він, що я зробив, і що пішло нормально, і що пішло не так і мій спосіб вирішення.

У мене жорсткий диск зашифрований LUKS, який мені потрібно встановити з живого завантажувального USB для Ubuntu 15.10 . Для цього я почав із наступної команди,

udisksctl unlock -b /dev/sda3

де sda3 - зашифрований розділ. Ця команда не працювала зі мною, і я не впевнений, чому, тому я використав таку команду:

sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume

він працював зі мною, і мені не потрібно було його встановлювати, як це було там у прямому завантаженні.

Тепер мені потрібно встановити 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а потім подвійну вкладку, щоб переглянути інші варіанти. Це встановило жорсткий диск як:

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/

1

Ви можете встановити його в два етапи, і я маю приклад сценарію.

Примітка: сервіс udiskctl зможе монтувати речі під / медіа, він більше розроблений для користувачів настільних ПК, які монтують 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

1

Правильна відповідь gio mount -d /dev/dm-x(без судо).

Попередні відповіді показують відключення способу монтування Nautilus або Nemo, оскільки вам потрібно ввести парольну фразу LUKS, незважаючи на те, що вона попередньо зберігається в користувацькому ключі від GUI. При використанні gioавтоматично використовується парольна фраза, яку раніше зберігали Наутілус або Немо.

Більш детальну відповідь див. На https://unix.stackexchange.com/questions/394320/what-command-does-nemo-use-to-mount-drives/536842#536842


0

Шукав те саме ...

Ці mkdirкроки були моєю причиною шукати далі, а також я змінив, policykitщоб дозволити моєму користувачу монтуватися, не запитуючи спочатку корінний passwd, а потім пароль зашифрованого тома, тому також sudoбуло закінчено вбити.

Моє рішення я знайшов застосування gvfs-mountз gvfs-binпакета. Тепер із gvfs-mount -d /dev/sda7запитом мене запитують лише зашифрований пароль, і він встановлений під /media/VOLUME_LABEL.


Не отримуючи з цим удачі. Створені нами дії: по-перше, cat /proc/partitionsдля виявлення / dev label для накопичувача. По- друге, gvfs-mount -d /dev/sdf1. Це дає помилку "Немає обсягу для файлу пристрою / dev / sdf1". Хоча це виглядає близько!
ча

Це працює для мене. Дивно не через /dev/disks/by-labelабо /by-uuid, а лише/dev/sdxx
Redsandro

Повідомлення "Немає обсягу для файлу пристрою / dev / sdf1" буде присутнє, поки ви не видалите пристрій із / etc / fstab. Після цього gvfs-mount працює за
задумом

FYI: gvfs-mount -d /dev/sdaXпрекрасно працював для мене в Linux Mint 17.3 - не потрібен пароль, як і в GUI.
Джонатан Хрест

0

У моїй хроніці з (крутоном) Ubuntu Xenial 16.04 я виявляю, що при видачі:

sudo cryptsetup luksOpen / dev / sda1 my_encrypted_volume

за вищезазначеною публікацією та вводя свою парольну фразу, я отримую "Немає ключа з цією парольною фразою". Однак я випадково знайшов (і це дуже дивно!) Вся справа працює, коли я додаю "--debug" до команди cryptsetup! Тоді я можу встановити гучність і отримати доступ до файлів.

Попросивши менеджера файлів Thunar виконати результати монтажу "Не дозволено виконувати операцію." помилка. Я не в змозі розібратися в цьому шляху, але оскільки я можу виконати кріплення в командному рядку, це дещо прийнятно.


0

Гаразд, у мене є хлопці, що працюють з рішенням, як обговорювалося раніше, причина ви отримуєте mount: unknown filesystem type 'LVM2_member'помилку в тому, що за замовчуванням ваша машина Linux призначає те саме ім'я VG зовнішньому жорсткому диску, отже, всі розділи на зовнішньому жорсткому диску є неактивними.

Ось що вам потрібно зробити:

  1. відключіть зовнішній жорсткий диск і врахуйте свій внутрішній VG UUID за допомогою ( sudo vgdisplay command),
  2. тепер підключіть зовнішній жорсткий диск і перейменуйте групу VG вашого зовнішнього жорсткого диска (не внутрішній, це розбить ваш ящик) ( vgrename UUID_Number [new-group]).
  3. Перевірте, чи оновлено нове ім'я у VGdiplay, тепер активуйте нову VGroup ( vgchange [new_group] -a y), перевірте, чи всі розділи активовані ( lvscan).
  4. Тепер ви повинні побачити всі ваші розділи під ls /dev/mapper/[new_group], все, що вам потрібно зробити, це змонтувати розділ ( mount -t ext4 /dev/mapper/[new_group]-data /zez)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.