我配置了一些使用 GRUB 作为引导加载程序的系统,其中有一个未加密的引导分区,其余一切都使用 LVM-on-LUKS。目前,解锁系统的唯一方法是亲自去键盘输入密码。我希望能够将密钥文件存储在 USB 驱动器上,并让系统在 USB 驱动器存在时自动启动。
这篇博文(档案),这篇文章和此论坛帖子(档案)每个都解释了如何做到这一点,但在每种情况下都有一个步骤基本上说“编辑你的/etc/crypttab
配置”,但是当我打开时/etc/crypttab
,顶部的评论说:
# NOTE: Do not list your root (/) partition here, it must be set up
beforehand by the initramfs (/etc/mkinitcpio.conf)
我的系统确实如此不是这里有一个 root 条目。相反,这是在 grub 配置中设置的,其中有以下行:
GRUB_CMDLINE_LINUX="... root=/dev/mapper/vg-root cryptdevice=UUID={uuid}:cryptlvm"
这条通知是否/etc/crypttab
不正确?或者,那些认为这些涉及编辑的方法的人/etc/crypttab
可能有不同的启动配置?如果这条通知是正确的,那么让 GRUB 在 USB 驱动器中查找密钥文件的正确方法是什么?
笔记:这个问题也赞成该/etc/crypttab
方法。
答案1
我不知道这些/etc/crypttab
东西是否真的能用,但我确实设法只使用grub
配置就让它工作了。事实证明,这实际上是有相当好的记录的在 ArchLinux Wiki 上(通常都是这样)。就我而言,我有一个ext4
- 格式的 USB 驱动器,因此我进入/etc/mkinitcpio.conf
并添加ext4
了MODULES
:
MODULES=(ext4)
然后在中/etc/default/grub
,我改为GRUB_CMDLINE_LINUX
添加cryptkey
参数,如下所示:
GRUB_CMDLINE_LINUX="quiet ... cryptkey=LABEL=my_usb_label:ext4:/path/to/keyfile
/path/to/keyfile
USB 驱动器上的密钥文件的路径在哪里,/
以 root 身份USB 驱动器。您可以找到有关使用encrypt
钩子的更多信息这里。