通过 UUID 作为 grub.cfg 中的内核参数来寻址 USB-Stick

通过 UUID 作为 grub.cfg 中的内核参数来寻址 USB-Stick

我正在使用 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.dudev更改 USB 棒的 ID(和符号链接)的创建方式?

答案1

如果您要访问的设备路径包含该字符:,则必须使用反斜杠对其进行转义\。在这种情况下,cryptkey参数如下:cryptkey=/dev/disk/by-id/usb-123456-0\:0:0:512对于带有 id 的 USB 密钥usb-123456-0:0

相关内容