暗号化されたボリュームをセットアップしようとしています このガイド
すべてが設定されていますが、暗号化されたボリュームのマウントは、ブート時に次のエラーで失敗します。
fsck.ext4:/ dev/mapper/safe_vaultを開こうとしたときに、そのようなファイルやディレクトリはありませんでした。デバイスが存在しない可能性がありますか?
$ Sudo cat /etc/crypttab
safe_vault /dev/disk/by-uuid/d266ae14-955e-4ee4-9612-326dd09a463b none luks
注:
uuid
の由来は次のとおりです。
$ Sudo blkid /dev/mapper/<my_logical_group>-safe_vault
/dev/mapper/<my_logical_group>-safe_vault: UUID="d266ae14-955e-4ee4-9612-326dd09a463b" TYPE="crypto_LUKS"
$ Sudo cat /etc/fstab | grep safe_vault
/dev/mapper/safe_vault /safe-vault ext4 defaults 0 2
だから私は開発者のウェブサイトに行きました 一般的な問題FAQ で彼らは言う:
カーネルにデバイスマッパーとcryptターゲットがあることを確認します。 「dmsetupターゲット」の出力には、「crypt」ターゲットがリストされているはずです。そこにない場合、またはコマンドが失敗した場合は、デバイスマッパーと暗号ターゲットをカーネルに追加します。
そのため、crypt
ターゲットがないことがわかりました。
$ Sudo dmsetup targets
striped v1.4.1
linear v1.1.1
error v1.0.1
問題は、そのようなターゲットを追加する方法がわからないことです。
これは(crypt
ターゲットがないため)ブート時にcrypttab
構成が無視され、fstab
にエントリをマウントしようとすると、cryptsetup
は暗号化されたボリュームを/dev/mapper/safe_vault
にマッピングしていません。
注:
暗号化されたボリュームは、手動で正常にマッピング、マウント、および書き込むことができます。
$ Sudo cryptsetup luksOpen /dev/mapper/<my_logical_group>-safe_vault safe_vault
Enter passphrase for /dev/mapper/<my_logical_group>-safe_vault:
$ Sudo mount /dev/mapper/safe_vault /safe_vault
これは、マッピングしてマウントした後の外観です。
$ Sudo lsblk -o name,uuid,mountpoint
NAME UUID MOUNTPOINT
sda
├─sda1 28920b00-58d3-4941-889f-6249357c56ee
├─sda2
└─sda5 uhBLE7-Kcfe-RMi6-wrlX-xgVh-JfAc-PiXmBe
├─<my_logical_group>-root (dm-0) 1bed9027-3cf7-4f8d-abdb-28cf448fb426 /
├─<my_logical_group>-swap_1 (dm-1) a40c16c4-7d0c-46d7-afc8-99ab173c20bb [SWAP]
├─<my_logical_group>-home (dm-2) e458abb7-b263-452d-8670-814fa737f464 /home
├─<my_logical_group>-other (dm-3) 0a1eec42-6534-46e1-8eab-793d6f8e1003 /other
└─<my_logical_group>-safe_vault (dm-4) d266ae14-955e-4ee4-9612-326dd09a463b
└─safe_vault (dm-5) 9bbf9f47-8ad8-43d5-9c4c-dca033ba5925 /safe-vault
sr0
[〜#〜]更新[〜#〜]
crypt
ターゲットを持っていることがわかりましたが、それがdmsetup targets
で表示されるためには、最初にcryptsetup luksOpen <my-device>
を実行する必要がありましたUUID
sを使用してみましたが、それでも起動時に失敗します。まだ暗号化されたボリュームがブート時にマップされていない(cryptsetup luksOpen
で開かれている)ため、/dev/mapper/<safe_vault or UUID>
が存在せず、マウント(fstab)に失敗することが問題だとまだ思います。
更新2
起動時にマウントするために必要なスクリプトがないことがわかりました。 @MikhailMorfikovの回答のメモを参照してください。
UUIDに注意する必要があります。たとえば、これは私の設定です:
# lsblk -o name,uuid,mountpoint
├─sda2 727fa348-8804-4773-ae3d-f3e176d12dac
│ └─sda2_crypt (dm-0) P1kvJI-5iqv-s9gJ-8V2H-2EEO-q4aK-sx4aDi
│ ├─debian_crypt-swap (dm-1) 3f9f24d7-86d1-4e21-93e9-f3c181d05cf0 [SWAP]
│ ├─debian_crypt-tmp (dm-2) 93fc8219-f985-45fb-bd5c-2c7940a7512d /tmp
│ ├─debian_crypt-home (dm-3) 12e8566c-8f0f-45ec-8524-6d9d9ee91eae /home
│ └─debian_crypt-root (dm-4) 9685570b-4c9e-43ea-815e-49d10dc7a1bf /
4つのボリューム(LVM)を持つ1つの暗号化パーティション(sda2)があります。適切なファイルに2つのUUIDを設定する必要があります。 sda2 UUIDは/etc/crypttab
に移動し、ボリュームUUID(たとえば、debian_crypt-root)は/etc/fstab
に移動します。
したがって、次のようになります。
# cat /etc/crypttab
sda2_crypt UUID=727fa348-8804-4773-ae3d-f3e176d12dac none luks
# cat /etc/fstab
UUID=9685570b-4c9e-43ea-815e-49d10dc7a1bf / ext4 defaults,errors=remount-ro 0 1
/etc/crypttab
ファイルを変更した後、initramfsを再構築する必要があります。
# update-initramfs -u -k all
[〜#〜]ノート[〜#〜]
cryptsetup
パッケージは、起動時に暗号化されたボリュームの自動マウントをサポートする起動スクリプトを備えているため、インストールする必要があります。
なぜこれについて言及するのが面倒なのですか?まあ、インストール中にLVMをセットアップした場合、Debian Wheezyはパッケージ cryptsetup-bin 、libcryptsetup4
とlvm2
をインストールしますが、cryptsetup
はインストールしないため、次のツールがあります。 LVMおよびLUKSデバイスをセットアップしますが、起動時にLUKSデバイスをマウントするために必要なスクリプトはセットアップしません。これらはパッケージ cryptsetup に含まれています。
@Mikhail Morfikovの answer はinitramfsステージでのマウントをカバーしているようです。代替手段(ルートファイルシステムでない場合)は、linuzカーネルがロードされた後に、パーティションを自動的に復号化してマウントしますsystemd。もちろん、これはsystemdを実行している場合にのみ可能です。ここで方法を説明します。
/etc/crypttab
エントリ:
crypt2 UUID=e412-blahblah /path/to/crypt2.key luks,noauto
ここでnoauto
はnotinitramfsステージ中にディスクの復号化を試みる命令です。
上記のe412-blahblah
は、luksシステムを含むパーティションのUUIDです。私の場合は、パーティション/dev/sdb2
です。
# blkid | grep sdb2
/dev/sdb2: UUID="e41274d8-fd83-4632-b560-ad0ba113ae75" TYPE="crypto_LUKS" PARTUUID="5673a908-02"
Linuzカーネルの起動時に、systemdは/etc/crypttab
ファイルを読み取り、ランタイムサービスファイル/run/systemd/generator/[email protected]
を作成します。ただし、そのサービスは自動的には実行されません。手動で実行できます
systemctl start [email protected]
ただし、暗号化を解除して、起動時にマウントするには、次のように/etc/fstab
がrequireする必要があります。
/dev/mapper/crypt2--vg-data /media/crypt-data ext4 defaults,noauto,user,x-systemd.automount,[email protected] 0 2
ここで、x-systemd.automount
はsystemdへの命令であり、/media/crypt-data
をマウントします。また、[email protected]
はsystemdへの命令であり、crypt2
が可能になる前に必要です。
systemdでは、ディレクトリに初めてアクセスするまで、実際にはディレクトリはマウントされません。 ls /media/crypt-data
の場合、ジャストインタイムでマウントされ、その後/proc/mounts
に表示されます。
関連
「*なぜルートファイルシステムにキーを持つ暗号化されたデータディスクがあるのですか?」と質問するかもしれません。ルートファイルシステムも暗号化されているため、キーは安全です。ルートファイルシステムは、ブートのinitramfsステージで復号化されます。これはミハイルの答えです。 /etc/crypttab
ファイルに別のエントリがあります。
crypt1 UUID=8cda-blahbalh none luks,discard,lvm=crypt1--vg-root
そして私はそれとブートUSBの設定について説明します ここ