与这个问题相关,似乎我可以从另一个加密引导驱动器访问一个加密引导驱动器(在安装 Ubuntu 时都使用默认加密选项)的唯一方法是两个驱动器具有不同的卷组 (VG) 名称。默认情况下,Ubuntu 使用卷组名称“ubuntu-vg”,如果你有两个同名的卷组,lvm2 就有问题。
一个更大的问题是当我读到这篇文章并决定将我的活动引导驱动器的 VG 重命名为不同的东西时。然后我重新启动,cryptsetup 将不再识别我的密码。它给了我错误
未知的 fstype、错误的密码或选项?
使用 LiveUSB,我将该引导驱动器上的 VG 重命名为 ubuntu-vg 并再次引导(缓解)。
现在,如果 VG 名称必须是唯一的,但它们也不能更改,那么就有问题了。当我安装 Ubuntu 来设置 VG 名称时,我没有看到选项。我猜它要么是硬编码的,要么是在某个配置文件中。我检查了驱动器上较小的(未加密的)引导区域,我看到了
/grub/grub.cfg
有一些对这个“ubuntu-vg”的引用让我觉得我可以改变它。
然而,我对 Ubuntu 还是很陌生,所以在我成为一个有另一个不可启动驱动器的创意人之前,我希望这里的专家能提供一些意见。
我可以使用 vgrename 重命名 VG,然后通过查找并将所有旧 VG 名称替换为新 VG 名称来更改 /grub/grug.cfg 并且神奇地一切都会正常工作吗?
在阅读了乔治的链接(以及其他几个链接)之后,我想在这里发布这个作为答案。
如果您需要重命名加密引导驱动器的卷组,这些是您应该采取的步骤。至少它们似乎在 16.04 上运行良好。
现在,当 grub 加载时,它将看到它期望的卷组名称,您将能够加载加密的引导驱动器。
我实际上设法从这样的实时系统中做到了这一点:
/proc/mounts 被 update-initramfs 和 update-grub 用来设置根设备。不幸的是,/proc/mounts 在更改 vg 名称时不会更新。
因此,我们需要伪造 /proc/mounts 文件。做 mount --bind mounts /proc/mounts 不起作用。我们需要伪造整个 /proc 目录。