我在 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 使用的内核模型中允许的最大交互键不匹配。