加密的根分区无法正常启动

加密的根分区无法正常启动

我有一个 Debian 8 VPS,带有加密的根分区。几个月前更新内核后(软件包版本 3.2.73-2+deb7u3),它在启动时无法正确解密。据我所知,initramfs 没有加载加密库,所以不知道该怎么办。

我找到了这个答案,但无论我们尝试什么 UUID,都无法解决问题。 https://unix.stackexchange.com/questions/107810/why-my-encrypted-lvm-volume-luks-device-wont-mount-at-boot-time

我们目前的解决办法是,在 /etc/initramfs-tools/conf.d/cryptroot 中创建一个 cryptroot 文件,内容如下:

CRYPTOPTS=target=root,source=/dev/vda5,lvm=cloud--vg-root

以及内容如下的 /etc/crypttab

# <target name> <source device>     <key file>  <option>
crypt-vda5  /dev/vda5   none    luks

在启动过程中,它会要求输入密码并挂载 vg-root,然后它再次要求我们输入密码并抱怨分区已经挂载,并抛出一堆错误,我不得不esc反复点击才能通过。如果我们删除其中一个文件或更改它们,它在启动时不会提示输入密码,因此挂载 root 会失败。

有什么想法可以消除这种困境并彻底解决这个问题吗?

谢谢!

答案1

如果你将以下内容添加到/etc/initramfs-tools/initramfs.conf并移动/etc/initramfs-tools/conf.d/cryptroot让开。

CRYPTSETUP=Y

然后重建 initramfs,使用 -k 和 -v 选项运行它,这将向您显示它在做什么以及它是否添加了 crypt 支持。-k 选项将保留 mkinitramfs 使用的临时目录,这有助于调查正在发生的事情。当然,请保留旧 initramfs 的副本,以便在必要时启动它。

在/etc/crypttab中应包含逻辑卷名称,如果是 vg-root 而不是 crypt-vda5,请确保替换它。该名称是以下使用的字符串 example-name:

cryptsetup -v luksOpen /dev/vda5 example-name

可以通过以下方式访问:

/dev/mapper/example-name

相关内容