我希望将加密的根分区映射到设备映射器名称system
,即它最终应该出现在/dev/mapper/system
.我的操作系统是 Fedora 24 Workstation Linux,它在启用 UEFI 的计算机上使用 Grub2 启动。
Fedora 在安装过程中使用内核参数配置了内核,因此内核已经通过 UUID 正确识别了加密的根分区rd.luks.uuid=luks-144255e7-7a9a-4957-ad6e-d4a2a71c861a
。
rd.luks.uuid
使用上述配置的内核参数,加密的根分区将通过与内核参数值相同的设备映射器名称进行映射,即出现在/dev/mapper/luks-144255e7-7a9a-4957-ad6e-d4a2a71c861a
.
阅读了联机帮助页后,systemd-cryptsetup-generator
我认为它的内核参数rd.luks.name
是选择另一个设备映射器名称的合适参数;除了单独配置的内容之外rd.luks.uuid
。
不幸的是,Grub2 似乎既没有考虑rd.luks.name=luks-144255e7-7a9a-4957-ad6e-d4a2a71c861a=system
也没有rd.luks.name=144255e7-7a9a-4957-ad6e-d4a2a71c861a=system
(没有luks-
前缀)。
您知道如何映射下的加密根分区吗/dev/mapper/system
?
答案1
从man systemd-cryptsetup-generator
:
rd.luks.name=
仅由初始 RAM 磁盘 (initrd) 遵循,而luks.name=
主系统和 initrd 均遵循。
因此,也许使用luks.name=144255e7-7a9a-4957-ad6e-d4a2a71c861a=system
而不是在启动后也rd.luks.name=...
会让您出名。system
如果这不起作用(我不明白文档的那一行到底想说什么或是否rd.
会产生影响),您可以尝试将名称放入/etc/crypttab。再次来自man systemd-cryptsetup-generator
:
如果 /etc/crypttab 包含具有相同 UUID 的条目,则将使用其中指定的名称、密钥文件和选项。否则,设备的名称将是“
luks-UUID
”。
例如,有一行
system UUID=144255e7-7a9a-4957-ad6e-d4a2a71c861a
可能需要为文件命名/etc/crypttab.initramfs
,而不仅仅是/etc/crypttab
确保它足够早可见(在打开分区之前)。
进行任何这些更改时,请务必将root=
内核参数从更改/dev/mapper/luks-144255e7-7a9a-4957-ad6e-d4a2a71c861a
为/dev/mapper/system
。