![加密的根分区无法正常启动](https://linux22.com/image/683095/%E5%8A%A0%E5%AF%86%E7%9A%84%E6%A0%B9%E5%88%86%E5%8C%BA%E6%97%A0%E6%B3%95%E6%AD%A3%E5%B8%B8%E5%90%AF%E5%8A%A8.png)
我有一个 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