7.2. 暗号化ボリュームのマウント

インストール中に暗号化ボリュームを作成し、マウントポイントに割り当てると、 そのボリュームに対して、起動中にパスフレーズを入力するように訊いてきます。 実際の手順は、dm-crypt と loop-AES では若干異なります。

7.2.1. dm-crypt

dm-crypt で暗号化したパーティションでは、 起動中に以下のようなプロンプトが表示されます。

Starting early crypto disks... part_crypt(starting)
Enter LUKS passphrase:

プロンプトの最初の行の part は、 たとえば sda2 や md0 のような、基本的なパーティション名です。 おそらく、ボリュームごとに パスフレーズを入力することに、 違和感を覚えるのではないでしょうか。 これは /home/var それぞれで パスフレーズを入力させられるのでしょうか? もちろんそうです。 暗号化したボリュームが一つだけなら、話は簡単で、 セットアップのときに入力したパスフレーズを入力するだけです。 インストール時に、暗号化ボリュームを少なくとも一つは設定しているなら、 項6.3.2.4. 「暗号化ボリュームの設定」 の最後のステップに書き留めたメモが役に立つでしょう。 以前の part_crypt とマウントポイントの間のマッピングを記録しない場合、 新しいシステムの /etc/crypttab/etc/fstab にあります。

暗号化されたルートファイルシステムがマウントされる時は、 プロンプトは少し違って見えるかもしれません。 それは、システムの起動に使用される initrd を生成するために、 どの initramfs ジェネレータが使われたかによります。 以下の例は、initramfs-tools で生成された initrd の場合です。

Begin: Mounting root file system... ...
Begin: Running /scripts/local-top ...
Enter LUKS passphrase:

パスフレーズの入力時には、入力した文字 (やアスタリスク) は表示されません。 パスフレーズを間違えた場合、訂正するために 2 回までは試行できます。 入力を 3 回間違えると、そのボリュームをスキップして、 次のファイルシステムをマウントしようとします。 詳細は、項7.2.3. 「トラブルシュート」 をご覧ください。

パスフレーズをすべて入力すると、通常と同様に起動を継続します。

7.2.2. loop-AES

loop-AES で暗号化したパーティションでは、 起動中に以下のようなプロンプトが表示されます。

Checking loop-encrypted file systems.
Setting up /dev/loopX (/mountpoint)
Password:

パスフレーズの入力時には、入力した文字 (やアスタリスク) は表示されません。 パスフレーズを間違えた場合、訂正するために 2 回までは試行できます。 入力を 3 回間違えると、そのボリュームをスキップして、 次のファイルシステムをマウントしようとします。 詳細は、項7.2.3. 「トラブルシュート」 をご覧ください。

パスフレーズをすべて入力すると、通常と同様に起動を継続します。

7.2.3. トラブルシュート

パスフレーズを間違えて、暗号化ボリュームをマウントできなかった場合、 ブート後に手動でマウントする必要があります。以下の状況が考えられます。

  • まずはじめの状況は、ルートパーティションに関することです。 正しくマウントできないとブートプロセスが停止し、 再起動してもう一度行わなければなりません。

  • 最も簡単な状況は、/home/srv といったデータを保持している暗号化ボリュームの場合です。 この場合は、ブート後に手動でマウントしてあげるだけです。 loop-AES では、以下のように 1 ステップです。

    # mount /mount_point
    Password:
    

    /mount_point は、 特定のディレクトリに置き換えてください。(例 /home) 通常のマウントと違うのは、 そのボリューム用にパスフレーズを入力するよう促される、ということだけです。

    dm-crypt の場合は少しトリッキーです。 まず device mapper を実行して、 ボリュームを登録する必要があります。

    # /etc/init.d/cryptdisks start
    

    /etc/crypttab に記述されたボリュームすべてを検査し、 正しいパスフレーズを入力すると、 /dev ディレクトリ以下に、適切なデバイスを作成します。 (既に登録されたボリュームはスキップするので、何度実行しても警告がでません) 登録に成功すると、以下のように通常の方法でマウントできます。

    # mount /mount_point
    

  • クリティカルでないシステムファイルを扱うボリューム (/usr/var) がマウントできなかった場合、それでもシステムが起動し、 前述の状況のように手動でボリュームをマウントできるでしょう。 しかし、デフォルトのランレベルで通常動作しているサービスを、 起動していない可能性があるので、(再) 起動する必要があります。 最も簡単なのは、最初のランレベルに以下のように切り替えることです。

    # init 1
    

    rootのパスワードを訊かれたら Control-D を押し、 シェルのプロンプトで上記を入力してください。