web-dev-qa-db-ja.com

暗号化されたボリュームをコマンドラインからマウントしますか?

暗号化された外部ディスク(またはfstabにない内部ディスク)がある場合、Nautilusに「X GB Encrypted Volume」のようなエントリを持つエントリが表示されます。このボリュームをクリックすると、デバイスを復号化してマウントするためのパスワードの入力を求められます。

しかし、コマンドラインからこれをどのように行うのですか?

このwikiページ 、および私が見つけることができる他のドキュメントは、デバイスを復号化するGUIメソッドのみを参照しています。しかし、これはヘッドレスサーバーまたはSSHログインのコンテキストでは実行されません。 GUIの場合と同様に、デバイスを/mediaの自動位置にマウントする簡単な方法はありますか?

(暗号化されたホームディレクトリについては質問していません。ecryptfs-mount-privateを認識しています。この質問は、暗号化された追加のボリュームに関するものです。)

82
cha

@GeorgSchöllyの答えのステップは、当時はうまくいきませんでしたが、今はうまくいくかもしれませんが、Ubuntuのリリースがいくつかあります。当時、Sudo mount /dev/mapper/my_encrypted_volume /media/my_deviceステップの後、エラーが発生しました。

マウント:不明なファイルシステムタイプ 'LVM2_member'

Udiskctlを使用したディスクのロック解除とマウント

代わりに、udisksctlサービスと対話するコマンドラインインターフェイスであるudisksdを使用しました。

動作したものは次のとおりです(/dev/sdb5crypt-luksとマークされたハードディスク上のパーティションです):

udisksctl unlock -b /dev/sdb5
udisksctl mount -b /dev/mapper/ubuntu-root

最初のコマンドを入力すると、暗号化パスフレーズの入力を求められます。暗号化されたパーティションのロックが解除されると、2番目のコマンドでマウントされます。それが成功した場合、次のメッセージになりますsimilar

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

そこからデータにアクセスできました:)

ノート

  • コマンドが実行されますwithoutSudo
  • ubuntu-rootの命名は、Ubuntuの異なるバージョン間で変更される場合があります(たとえば、system-rootと呼ばれることもあります)。名前を見つける簡単な方法は、次のコマンドを実行することですLUKSパーティションのロックを解除した後

    ls -la /dev/mapper

    その後、lsコマンドの出力を見ると、必要な名前は通常、/dev/dm-1にシンボリックリンクされている名前になります。

  • ただし、udisksctlを使用することにはマイナス面があります。ロックが解除されると、パーティションは/dev/mapperのシンボリックリンクとしてマップされます。そのシンボリックリンクの名前がデバイスのUUIDになります。ただし、initramfs-updateなどのツールは、シンボリックリンクが/etc/crypttabの名前と一致することを期待し、シンボリックリンクの名前が変更されない限りエラーを出力します。別の方法として、cryptsetup luksOpenを使用すると、シンボリックリンク名が正しく設定されるようです。
57
David Planella

ボリュームはおそらく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
84
Georg Schölly

このエラーが発生した場合:

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
21
taitelman

私が遭遇した問題の1つは、重複したボリュームグループ:リカバリシステムとリカバリするドライブの両方がLVMを備えたUbuntuシステムでした。これが、2つのubuntu-vgボリュームグループがあった理由です(vgdisplayはそれぞれ独自のUUIDで両方を表示しますが、論理ボリュームにアクセスできませんでした)。

私のソリューションはGeorgの答えに基づいています:

  • Live-linuxから起動します(重複したボリュームグループ名に遭遇しないように)
  • Sudo cryptsetup luksOpen /dev/sdaX my_encrypted_volume
  • プロンプトが表示されたらパスフレーズを入力します
  • Sudo vgscanは、含まれているボリューム/グループを取得するはずです。

  • 将来のドラゴン:ボリュームグループ名を変更しています。 そのドライブを後から起動することはできません!

    Sudo vgrename ubuntu-vg ubuntu-vg2を使用して、ボリュームグループの名前を変更します。

    そのドライブから起動する必要がある場合は、これらの手順を再度実行できますが、ボリュームグループbackの名前をubuntu-vgに変更します。別の可能性は、ブート構成を新しいvg-nameに変更することです。

重複したvg-nameが解決されたので、通常のシステムに戻ってcryptsetup...vgscanをやり直し、/dev/mapper/ubuntu--vg2-rootを好きな場所にマウントできます。

13
amenthes

sdb1ここにデバイス名を入力する必要がある例があります。このコマンドはどれもルート権限を必要としません

暗号化されたディスクのロックを解除

udisksctl unlock -b /dev/sdb1

正しいパスフレーズを挿入すると、次のように出力されます。nlocked/dev/sdb1 as/dev/dm-

それを/ media /にマウントします

udisksctl mount -b /dev/dm-3

次のような出力になるはずです:Mounted/dev/dm-3 at/media/yourUserName/sdb

アンマウントする

udisksctl unmount -b /dev/dm-3

もう一度ロックする

udisksctl lock -b /dev/sdb1
5
D.Snap

上記のすべての答えは、ユーザーがどのパーティションが暗号化されているかを既に知っているという仮定を取りました。コマンドラインがあまり好きではない人から来て、ユーザーフレンドリーな答えを期待していました。

  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 groupsSudo vgscan -vが同じボリュームグループ名を持つ2つのエントリを表示していたため、Sudo vgdisplay問題(@amenthesで説明)に遭遇していることがわかりました。 。しかし、この link で、彼の方法(LiveCDを起動してボリュームグループの名前を変更する必要はありません!)よりも良い対処方法を見つけました(この場合に備えて)リンクが壊れます...):

ls -la /dev/mapper/を実行すると、luks-xxxxxx-xxxxx-xxxxまたはそのようなファイルが表示されます。これは、Ubuntuがダイアログで暗号化パスワードを要求したが、それを開けなかったときに作成されたマッピングです(ダイアログはluksOpenを呼び出し、その/ dev/mapper/luks-xxxファイルにマップするだけでした)。今:

  1. Sudo pvdisplayコマンドを実行して、物理ボリュームが使用可能であることを確認してください。/dev/mapper/luks-xxx-whateverである必要があります。
  2. Sudo pvs -o +vg_uuidを実行して、ボリュームの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. ファイルを操作した後、ボリュームを引き続きブート可能にする場合は、ボリュームグループの名前をubuntu-vgに戻す必要があります。
3
knocte

どのパーティションが暗号化されているかを判断するためにも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
  • デバイスを再度アンマウントします(マウントに使用したのと同じ名前を使用します。コマンドはunmountnotumount :-))

    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を使用して、成功するまでパーティションを1つずつアンマウントできます。 udisksctl power-offはメッセージを返しません。

2
guntbert

私は以前の回答からいくつかのパスに入りましたが、以前の回答の組み合わせだけが私にとってはうまくいきました。彼は私がしたこと、何がうまくいったのか、何がうまくいかなかったのか、そして私の回避策。

LUKS暗号化されたハードディスクがあります--buntu 15.1のためにライブブートUSBからマウントする必要があります。そのためには、次のコマンドから始めました。

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

しかし、2番目のコマンドは機能しませんでした。そのため、次のような回避策を見つける必要があります。

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/
2
aibrahim

2つの手順でマウントでき、スクリプトの例があります。

注: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、そして必要に応じてアクセス許可を設定します)手順1で名前opt1_openedを使用した場合、これはマウントする2番目の手順です。

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
Tim Richardson

(crouton)Ubuntu Xenial 16.04を使用したChromebookでは、次のコマンドを発行すると次のことがわかります。

Sudo cryptsetup luksOpen/dev/sda1 my_encrypted_volume

上記の投稿ごとにパスフレーズを入力すると、「このパスフレーズで使用可能なキーがありません」というメッセージが表示されます。しかし、偶然に、私はcryptsetupコマンドに「--debug」を追加すると、すべてが機能することを発見しました(そして非常に奇妙です!)。これで、ボリュームをマウントしてファイルにアクセスできます。

ファイルマネージャーThunarにマウント結果の実行を依頼する「操作を実行する権限がありません。」エラー。私はそれを回避する方法を理解することはできませんが、コマンドラインでマウントを行うことができるので、それはいくぶん受け入れられます。

0
yawlhoo

正解はgio mount -d /dev/dm-x(Sudoなし)です。

以前の回答では、NautilusまたはNemoのマウント方法との切断が示されています。これは、以前GUIからユーザーキーリングにキャッシュされていたLUKSパスフレーズを入力する必要があるためです。 gioを使用すると、NautilusまたはNemoによって以前に保存されたパスフレーズが自動的に使用されます。

より詳細な回答については、 https://unix.stackexchange.com/questions/394320/what-c​​ommand-does-nemo-use-to-mount-drives/536842#536842 を参照してください

0
Redsandro

わかりました、だから私は前に議論したように、あなたがmount: unknown filesystem type 'LVM2_member'エラーを取得している理由は、Linuxマシンが同じVG名を外部ハードドライブに割り当てるため、外部HDD上のすべてのパーティションが非アクティブ。

これはあなたがする必要があることです:

  1. 外付けハードドライブを取り外し、(Sudo vgdisplay command)を使用して内部VG UUIDをメモします。
  2. 外付けハードドライブを接続し、外付けHDDの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
0