Centos

Cryptsetup luks - 檢查核心是否支持 aes-xts-plain64 密碼

  • February 5, 2016

我在 CentOS 5 上使用 cryptsetup luks 加密加密了一堆硬碟。一切都很好,直到我將系統升級到 CentOS 6。現在我無法再安裝磁碟了。

使用我的關鍵詞安裝:

sudo cryptsetup luksOpen /dev/sdc1 d2

我收到此錯誤:

device-mapper: reload ioctl on  failed: Invalid argument
Failed to setup dm-crypt key mapping for device /dev/sdc1.
Check that kernel supports aes-xts-plain64 cipher (check syslog for more info).
Failed to read from key storage.

在 /var/log/messages 中:

Feb  3 23:43:23 data kernel: device-mapper: table: 253:0: crypt: Device lookup failed
Feb  3 23:43:23 data kernel: device-mapper: ioctl: error adding target to table

關於如何安裝的任何想法?

找到解決方案。

問題是驅動器是用大約 512 個字元長的互動式關鍵字加密的(從密鑰文件複製/粘貼)。由於某種原因,CentOS 6 中的新核心模組在舊版本創建時無法正確讀取 512 個字元的加密密鑰。似乎只影響不同版本的核心或 cryptsetup,因為在同一系統上創建和打開 512 個字元的密鑰時將起作用。

總之…

核心 -> 創建 512 個字元的 luks 密鑰 -> 可以在同一個核心中打開

舊核心 -> 創建 512 個字元的 luks 密鑰 -> 無法在新核心中打開

512 個字元太長了。不確定門檻值是多少,但我決定將密鑰更改為 50 個字元,並且成功了。

為了解決這個問題,我重新安裝了我之前使用的舊 CentOS 5 作業系統,使用 cryptsetup luksAddKey,輸入原始(長)512 個字元的密鑰,並創建了一個 50 個字元長的新密鑰。

然後我重新安裝了 CentOS 6,並使用 cryptsetup luksOpen 使用 50 個字元的密鑰(不是原始密鑰)成功安裝了每個磁碟。

因此,請注意遇到類似錯誤的人。如果您使用超長密鑰加密驅動器,更改為新核心或 cryptsetup,並且在嘗試 luksOpen 加密卷時出現核心模組錯誤,您可能必須返回舊核心版本才能使用 luksAddKey 和在新核心中使用之前添加較短的密鑰。這可能是一個錯誤,或者是 LUKS 使用的核心模型中允許的最大互動鍵不匹配。

引用自:https://serverfault.com/questions/753918