web-dev-qa-db-ja.com

システムアップデート後、暗号化されたルートパーティションの起動に失敗する

DebianLinuxサーバーの起動に問題があります。システムの更新後、GRUBはinitrdをロードし、システムはパスワードを要求する必要がありますが、そうではありません。代わりに、BusyBoxにドロップされます。暗号化されたボリュームを手動でマウントしようとした後cryptsetup luksOpen、このエラーが発生します:

device-mapper: table: 254:0: crypt: Error allocating crypto tfm
device-mapper: reload ioctl failed: Invalid argument
Failed to setup dm-crypt key mapping for device /dev/sda3
Check that the kernel supports aes-cbc-essiv:sha256 cipher (check syslog for more info).

画像

5
TobiasPC

カーネルにはaes-cbc-essiv:sha256のサポートがありません。 「cryptotfmの割り当てエラー」とは、カーネルの暗号化サブシステムを指します。必要な暗号化データ構造の一部を初期化できませんでした。暗号化アルゴリズムのサポートはモジュールで提供され、AESアルゴリズム用のモジュールとSHA-256アルゴリズム用のモジュールがありますが、CBCモード用のモジュールはありません。それなしでは暗号化されたデバイスをマウントすることはできません。

独自のカーネルをコンパイルした場合は、必要なすべての暗号化アルゴリズムを有効にしてください。カーネルがディストリビューションに由来する場合、これは報告する必要のあるバグである可能性があります。いずれの場合も、モジュール/lib/modules/2.6.32-5-AMD64/kernel/crypto/cbc.koが必要です。モジュールが存在する場合、問題は代わりにinitramfs生成スクリプトにあります。

cbcモジュールに加えて、暗号を結び付けるために他のカーネルコンポーネントが必要です。カーネル構成にCRYPTO_MANAGERCRYPTO_RNG2、およびCRYPTO_BLKCIPHER2が設定されていることを確認してください。 Debianのinitramfs構築スクリプト これらを処理する必要があります モジュールとしてコンパイルされている場合でも。暗号サブシステムはかなり複雑であるため、initramfsスクリプトから欠落している他の重要なコンポーネントが存在する可能性があります。さらにヘルプが必要な場合は、 bug#541835 の説明を読み、正確なカーネルバージョンと、自分でコンパイルした場合はカーネル構成を投稿してください。

これを修復するには、必要な暗号サポートを備えたレスキューシステムから起動する必要があります。ルートファイルシステムchrootをマウントし、/bootをマウントし、dpkg-reconfigure linux-image-…を実行してinitramfsを再生成します。