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


86

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

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

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

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


ファイルシステム全体の暗号化と暗号化されたホームディレクトリの区別を描くための+1
XavierStuvw

続きます。askubuntu.com/q/1030572/446253によれば、Ubuntu 18.04はフルディスク暗号化を支持して単一ディレクトリ暗号化のサポートを降格したため、区別は話題になりました。私を含む一部の人にとって、これは18.04シームレス
XavierStuvw

回答:


61

@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--vg-root

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

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

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

udiskctlを使用してディスクをロックする

デバイスをアンマウントします。

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

ubuntu-vg最初にボリュームグループ内のすべての論理ボリュームを非アクティブ化する必要があります。そうしないと、ロックしようとすると「Device busy」の行に沿ってエラーが表示されます(詳細)。

sudo lvchange -an ubuntu-vg

その後、暗号化されたパーティションをロックバックできます

udisksctl lock -b /dev/sdb5

ノート

  • udisksctlコマンドが実行されずに sudo
  • デバイスマッパーの名前ubuntu--vg-rootUbuntuのリリースごとに名前が変わる場合があります(たとえば、私はそれを呼び出したことがsystem-rootありubuntu-rootます)。名前を見つける簡単な方法は、LUKSパーティションのロックを解除した後に次のコマンドを実行することです。

    ls -la /dev/mapper

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

  • デバイスマッパー名、代替:前のコマンドの代替は次を実行することです:

    lsblk -e7

    ここで、デバイス名のマッピングをツリービューとして表示できます。この-e 7オプションは、インストールされたスナップによって作成されたループデバイス(ID 7)を出力から除外するために使用されます。単純にすっきりさせるため。

  • 論理ボリューム名sudo lvsコマンドを実行して、ボリュームグループと論理ボリュームの名前を調べることができます
  • ディスクアプリ:GNOMEディスクアプリは、パーティションをロックする前に論理ボリュームを自動的に非アクティブ化しません。GUIを使用してパーティションを正常にロック解除した場合でもsudo lvchange -an ubuntu-vg、GUIからロックするには、コマンドラインに移動してコマンドを実行する必要があります。

1
私はこれが多かれ少なかれnautilusがlibudisks2を使用して行うことだと思うので、これが最良の答えだと思います。また、私はこれをテストして、非特権ユーザーとしてうまく機能するようにしました。
ヤープVersteegh

9
残念ながらエラーObject /org/freedesktop/UDisks2/block_devices/dm_2d3 is not a mountable filesystem.についてのアドバイスはありますか?
ワワ

1
@wawa私は同じ問題を抱えていて、この回答で解決しましたaskubuntu.com/a/895508/334823
ラファエル

2
5年前、私は暗号化されたパーティションを再び救出する必要がありました。Ubuntu 18.04のライブUSBスティックを使用し、当時説明したのと同じ手順を実行しました。前と同じように、それらはうまく機能し、私は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場所に配置するには、udisksツールを使用します

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でリストされているドライブの1つをマウントします/dev/mapper/my_encrypted_volume
-Weasemunk

これはうまくいきませんでした。同じエラーマウント:不明なファイルシステムタイプ 'LVM2_member'。おそらく、フラッシュドライブから起動しているからでしょうか?
セラ

@SeanScottどうもありがとう...インストーラーを使ってドライブを暗号化したので、今はデータを復元しようとしており、これらのことを新たに学習しなければなりません... d'oh
CameronNemo

13

私が遭遇した問題の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ボリュームグループの名前を変更するために使用します。

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

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


2
sudo vgdispayUUIDを見つけて、重複する名前の代わりにUUIDを使用して、1つのボリュームのみの名前を変更することもできるようです。つまり、UUIDを取得してから、sudo vgrename <uuid> old私のために機能しました。
mpontillo

マイクの提案を今すぐテストすることはできませんが、うまくいけば、ボリュームグループの名前を変更するよりはましです。
16年

5

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

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

udisksctl unlock -b /dev/sdb1

正しいパスフレーズを挿入すると、次のような出力が表示されます:Unlocked / dev / sdb1 as / dev / dm-3

それを/ 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

2
disksctl mount -b / dev / dm-4 Object / org / freedesktop / UDisks2 / block_devices / dm_2d4はマウント可能なファイルシステムではありません。
DevilCode

この問題を解決しましたか?(マウント不可のFSで...私が同じようになっているように)
オレグタラセンコ

1
同じ問題、私のために働いた何かのためにこの答えを参照してくださいaskubuntu.com/a/895508/334823
ラファエル

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

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

  1. sudo pvdisplayコマンドを実行して、物理ボリュームが使用可能であることを確認してください。/ dev / mapper / luks-xxx-whateverである必要があります。
  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. ファイルを操作した後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、成功するまでパーティションを1つずつアンマウントするために使用できます。ザ・はudisksctl power-offすべてのメッセージを返しません。


2

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

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

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/

1

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

正解は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

同じものを探していました...

mkdir手順はまた、私が変更した、さらに見て私の理由だったpolicykit私のユーザーが暗号化ボリュームのパスワードの最初のルートpasswdのために、次に求めずにマウントできるようにするために、そうsudoキルの上にもありました。

私が見つけた私の解決策gvfs-mountは、gvfs-binパッケージからの使用でした。今ではgvfs-mount -d /dev/sda7、暗号化されたパスワードのみを求められ、それはの下にマウントされてい/media/VOLUME_LABELます。


これで運が取れない。私が取ったステップ:最初にcat /proc/partitions、ドライブの/ devラベルを識別する。第二に、gvfs-mount -d /dev/sdf1。これにより、「デバイスファイル/ dev / sdf1のボリュームがありません」というエラーが発生します。しかし、これは近いようです!
チャ

わたしにはできる。不思議なことに、/dev/disks/by-labelまたはを介して/by-uuidではなく、のみによって/dev/sdxx
レッドサンドロ

/ etc / fstabからデバイスを削除するまで、「デバイスファイル/ dev / sdf1のボリュームがありません」というメッセージが表示されます。その後、gvfs-mountは設計どおりに動作します
-dbzix

参考までにgvfs-mount -d /dev/sdaX、Linux Mint 17.3で完璧に機能しました-GUIのようにパスワードは不要です。
ジョナサンクロス

0

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

sudo cryptsetup luksOpen / dev / sda1 my_encrypted_volume

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

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


0

さて、私は前に説明したように、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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.