Linux

系統更新後啟動加密的根分區失敗

  • May 1, 2013

我在啟動 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).

圖片

您的核心不支持aes-cbc-essiv:sha256. “Error allocating crypto tfm”是指核心的密碼子系統:一些必要的密碼資料結構無法初始化。您對加密算法的支持來自模組,並且您有一個用於 AES 算法的模組和一個用於 SHA-256 算法的模組,但沒有用於 CBC 模式的模組。沒有它,您將無法安裝加密設備。

如果您編譯了自己的核心,請確保啟用所有必要的加密算法。如果您的核心來自您的發行版,這可能是您需要報告的錯誤。無論哪種情況,都必須有一個模組/lib/modules/2.6.32-5-amd64/kernel/crypto/cbc.ko。如果該模組存在,那麼您的問題在於 initramfs 生成腳本。

除了cbc模組之外,您還需要其他核心組件來將密碼綁定在一起。檢查CRYPTO_MANAGER,CRYPTO_RNG2CRYPTO_BLKCIPHER2在您的核心配置中設置。Debian 的 initramfs 建構腳本應該處理這些,即使它們被編譯為模組。由於加密子系統相當複雜,因此 initramfs 腳本中可能缺少其他重要組件。如果您需要進一步的幫助,請閱讀錯誤 #541835的討論,並發布您的確切核心版本,以及您自己編譯的核心配置。

您將需要從具有必要加密支持的救援系統啟動以修復此問題。將根文件系統掛載chroot到其中,掛載/boot並執行dpkg-reconfigure linux-image-…以重新生成 initramfs。

引用自:https://unix.stackexchange.com/questions/74069