问题
在 GRUB 中可以使用命令cryptomount
来挂载 LUKS 分区。
有没有办法将这个解密分区传递给 Linux,使其显示为设备映射器(/dev/mapper/xxx
)条目,而无需运行cryptsetup luksOpen
?
如果 GRUB 无法实现,是否有其他引导加载程序支持此功能?
笔记
一些发行版支持cryptdevice
/cryptkey
参数,但是这似乎不是一个标准的 Linux 内核参数(并且不受我使用的发行版支持)。
还有dm-mod.create
内核参数,但它似乎只支持明文密码(可从查看/proc/cmdline
)或使用 Linux 密钥环条目。
这两种方法都需要再次解密分区,以便 Linux 可以挂载它,对吗?否则他们为什么需要密钥?
您所说的“解锁上下文”就是解密密钥。
或者换句话说,分区不会像拨动开关那样被“解密”——它不是某种外部硬件或固件会话,不可能通过启动过程进行,“只要 GRUB 没有重新锁定它”(就像智能卡或 OPAL 自加密 HDD 的情况一样)。
相反,解锁 LUKS 设备的唯一作用是从 LUKS 密钥槽解封卷的“主”密钥,用于在每次读取或写入操作过程中进行的连续解密。/dev/mapper 设备充当过滤器,它依赖于主密钥来动态解密数据。
因此,GRUB 将解锁状态传递给操作系统的唯一方法是让其将 LUKS“主”密钥存储在某个地方,以便 Linux 可以找到它并使用该密钥设置 /dev/mapper dm-crypt 设备。据我所知,GRUB 的 cryptodisk 模块不支持任何类似的东西。