Debian Linux サーバーの起動に問題があります。システム更新後、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).
答え1
カーネルが をサポートしていませんaes-cbc-essiv:sha256
。「暗号 tfm の割り当てエラー」はカーネルの暗号化サブシステムを指し、必要な暗号化データ構造の一部を初期化できませんでした。暗号化アルゴリズムのサポートはモジュールで提供されており、AES アルゴリズムのモジュールと SHA-256 アルゴリズムのモジュールはありますが、CBC モードのモジュールはありません。これがないと暗号化されたデバイスをマウントできません。
独自のカーネルをコンパイルした場合は、必要な暗号化アルゴリズムがすべて有効になっていることを確認してください。カーネルがディストリビューションから取得されている場合、これは報告する必要があるバグである可能性があります。いずれの場合も、モジュールが存在する必要があります/lib/modules/2.6.32-5-amd64/kernel/crypto/cbc.ko
。モジュールが存在する場合、問題は initramfs 生成スクリプトにあります。
モジュールに加えてcbc
、暗号を結びつける他のカーネルコンポーネントが必要です。カーネル構成で、、が設定されていることを確認してください。DebianCRYPTO_MANAGER
のinitramfs構築スクリプトCRYPTO_RNG2
CRYPTO_BLKCIPHER2
これらに注意すべきたとえモジュールとしてコンパイルされていても、暗号サブシステムはかなり複雑なので、initramfsスクリプトに欠けている重要なコンポーネントが他にもあるかもしれません。さらにヘルプが必要な場合は、バグ #541835正確なカーネル バージョンと、自分でコンパイルした場合はカーネル構成を投稿してください。
これを修復するには、必要な暗号化サポートを備えたレスキュー システムから起動する必要があります。ルート ファイル システムをマウントし、chroot
そこに mount して/boot
、実行してdpkg-reconfigure linux-image-…
initramfs を再生成します。