我正在使用带有加密 luks 根分区(未加密启动)的 arch linux,还带有密码。现在我有一个密钥文件(3072 字节),它以这种方式写入 USB 棒:
sudo dd if=tempKeyFile.bin of=/dev/sdd bs=512 seek=1 count=6
并设置为附加通行证
sudo cryptsetup luksAddKey /dev/sdb6 tempKeyFile.bin
当我手动打开磁盘分区:
sudo cryptsetup --key-file tempKeyFile.bin open /dev/sdb6 luks_root
一切正常,分区已映射并可挂载。现在我的内核参数行grub.cfg看起来像这样:
linux /vmlinuz-linux root=UUID=$UUID_OF_luks_root$ rw cryptdevice=UUID=$UUID_OF_sdb6$:luks_root cryptkey=/dev/sdd:1:6
但启动时,我得到这个错误:
No key available with this passphrase.
Invalid Keyfile. Reverting to passphrase.
我已经尝试过偏移 2 而不是 1,但结果相同。我注意到它没有说无法找到/读取密钥文件,但不正确。
关于这种存储 luks 密钥文件的方式似乎很少有文档。Arch-wiki 提到了它,但非常简短,我似乎很符合,所以我认为应该是可能的。
在我的mkinitcpio.conf模块中,二进制文件和文件是空的,我设置:
HOOKS=(base udev autodetect keyboard modconf block encrypt filesystems fsck)
所以块加密之前。
这里有什么问题?