LUKS パーティションの自動マウントが起動時に失敗する

LUKS パーティションの自動マウントが起動時に失敗する

暗号化された Ubuntu 14.04 デスクトップ セットアップがあります。暗号化されたルート パーティションは、Ubuntu インストーラーのデフォルト パラメータ (「ディスクを消去して Ubuntu をインストールする」および「新しい Ubuntu インストールを暗号化する」の選択肢) を使用して作成されます。この部分は正常に動作します (起動時にパスワードを要求し、ルート パーティションとスワップ パーティションを開きます)。

その後、ルート パーティションに保存されたキーファイルで個別に暗号化された 2 番目のドライブを追加しました。ルート パーティションが開くとすぐに自動的に開くようにすることが目的でした。そのために、2 番目のドライブを crypttab (UUID で) に追加し、その暗号化されたファイル システムを fstab (ラベル、マウント ポイントで/stg) に追加しました。

起動時にメインの復号化パスワードを入力すると、次のメッセージが表示されます。/stg のマウント中にエラーが発生しました。マウントをスキップするには S を押すか、手動で回復するには M を押してください。

不思議なことに、私がを実行するだけでmount -a、正常にマウントされます。 には何も疑わしい点は見当たりません/var/log/syslog

それはどうしたのですか? 問題を診断するには何をチェックすればよいですか?


[UPD - 詳細を追加しました]ドライブにはsdb1 つのパーティションを持つ MBR パーティション テーブルがあります。暗号化されたファイル システムは、次のコマンドを使用して初期化されました。

cryptsetup luksFormat /dev/sdb1 /root/stg.key
cryptsetup luksOpen /dev/sdb1 stg_crypt -d/root/stg.key
mkfs.ext4 /dev/mapper/stg_crypt -Lstg-tmp

/etc/crypttab(簡潔にするために、実際の uuid はテキスト「uuid-of-...」に置き換えられます):

# this entry was created by Ubuntu installer
sda5_crypt UUID=uuid-of-sda5 none luks,discard

# this entry was added by me
stg_crypt  UUID=uuid-of-sdb1 /root/stg.key luks,discard

/etc/fstab:

# these entries were created by Ubuntu installer
/dev/mapper/ubuntu--vg-root   /      ext4 errors=remount-ro 0 1
UUID=uuid-of-sda1             /boot  ext2 defaults          0 2
/dev/mapper/ubuntu--vg-swap_1 none   swap sw                0 0

# this entry was added by me
LABEL=stg-tmp                 /stg   ext4 errors=remount-ro 1 2

答え1

面白いことに、 のラベル参照をfstabデバイス パスに置き換えると、問題が解決します。つまり、LABEL=stg-tmpに変更されます/dev/mapper/stg_crypt

UUID 参照も試しましたが、機能しませんでした。つまり、起動中の LABEL および UUID 参照は物理パーティションでは機能しますが、暗号化されたパーティションでは機能しないようです。ただし、mount -aどのパーティションでも機能します。

これは解決策としてはあまり満足のいくものではありません (例: 説明が不足しています) が、当面の問題は解決しているので、今のところは問題ないと思います。

答え2

最初に考えられるのは、intramfs がキーファイルを認識しない (通常の動作) ことです。

いくつかの修正点は次のとおりです:

ここで述べたように、/stg のフォールバックパスフレーズを追加/作成する

Luks へのフォールバックの追加 (フォールバックパスフレーズの追加セクションまでスクロールしてください)

dd を追加 if=/dev/usbkey bs=512 skip=4 count=8 | cryptsetup luksOpen /dev/md0 luksVolume --key-file=- && mount /dev/mapper/luksVolume /mnt/

作成時またはcryptsetup-reencryptを使用する(リポジトリ内だがデフォルトではインストールされていない)

関連情報