我正在使用 Arch Linux 并设置 USB 棒作为我的 luks 加密根分区的解密密钥(引导未加密)。我已经在中描述过这个问题。
现在,用于 dm-crypt 的密钥实际上已存储前棒上的第一个分区是这样创建的:
sudo dd if=tempKey.bin of=/dev/sdd bs=512 seek=1 count=6
因此,3072 被写入扇区 1..6(零索引)。当我在其中使用以下内核参数时,grub.cfg
它会起作用:
cryptkey=/dev/sdd:512:3072
但我不能依赖那根棒总是映射到 sdd,这就是为什么 Arch-Wiki 也建议使用磁盘 ID,即:
cryptkey=/dev/disk/by-id/$ID_OF_USB_STICK$:512:3072
但是:USB 棒正在获取包含冒号的 ID,因此即使我尝试使用反斜杠转义冒号,在启动时也找不到该设备。系统似乎总是在冒号之前查找 ID。
仅当我使用空间/扇区时,使用cryptkey=UUID=...
才有效里面一个分区,而不是之前或之间。
所以,我真的被困在这里了。有人有什么建议,如何解决这个问题而不依赖 sdX 以及通过将其放入分区中意外覆盖/删除密钥的可能性?是否可以通过操作rules.d
来udev
更改 USB 棒的 ID(和符号链接)的创建方式?
答案1
如果您要访问的设备路径包含该字符:
,则必须使用反斜杠对其进行转义\
。在这种情况下,cryptkey
参数如下:cryptkey=/dev/disk/by-id/usb-123456-0\:0:0:512
对于带有 id 的 USB 密钥usb-123456-0:0
。