web-dev-qa-db-ja.com

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

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

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

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

奇妙なことに、[〜#〜] m [〜#〜]を押してmount -aを実行すると、正常にマウントされます。 /var/log/syslogには疑わしいものは何もありません。

どうしたの?問題を診断するために何を確認できますか?


[UPD-詳細を追加]ドライブsdbには、1つのパーティションを持つ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
3
atzz

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

UUID参照も試しましたが、機能しませんでした。したがって、明らかに、物理パーティションの起動作業中のLABELおよびUUID参照は、暗号化されたパーティションでは機能しません。ただし、どのパーティションでもmount -aで機能します。

これは解決策が進むにつれてあまり満足のいくものではありませんが(たとえば、説明が不足しています)、目前の問題を解決するので、今のところは問題ないと思います。

1
atzz

最初に考えたのは、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の使用時(リポジトリ内にありますが、デフォルトではインストールされていません)

0
linuxdev2013