启动失败,并显示“cryptsetup:找到 lvm fs,但未配置 lvm”

启动失败,并显示“cryptsetup:找到 lvm fs,但未配置 lvm”

我有一个带有 dm-crypt+luks 的双引导(xubuntu/#!)设置 LVM,如下所示

/dev/sda1 = /boot (xubuntu)
/dev/sda2 = /boot (#!)
/dev/sda3 = encrypted LVM
  /dev/mapper/volgroup-xroot = / (xubuntu)
  /dev/mapper/volgroup-yroot = / (#!)
  /dev/mapper/volgroup-home  = /home (/home/xubuntu & /home/crunchbang)
  /dev/mapper/volgroup-swap  = swap

我仅从 MBR 上的 xubuntu 安装了 Grub

我能够成功地设置它并使其最初工作。最近,在 xubuntu 操作系统上安装 Libre Office 时,我无意中让网络管理器被卸载了。我尝试通过启动到 crunchbang 然后 chroot 到 xubuntu 文件系统来重新安装它。它有效,但不知何故弄乱了 crunchbang 启动过程。

首先,Grub 放弃了 crunchbang 操作系统列表。我更新了它,它又找到了。现在,当我尝试启动 crunchbang 时,它似乎可以很好地处理所有事情,直到请求密码为止。输入我的密码后,它很快就会失败并报告消息“cryptsetup:找到lvm fs,但没有配置lvm”,并再次重新提示输入密码。

调查一下,我发现此错误消息来自 /usr/share/initramfs-tools/scripts/local-top/cryptroot 脚本,并且发生在

 if [ "$FSTYPE" = "LVM_member" ] || [ "$FSTYPE" = "LVM2_member" ]; then
   if [ -z "$cryptlvm" ]; then
     message "cryptsetup: lvm fs found but no lvm configured"
     return 1

$FSTYPE 只是 dmname 的类型,解密的 lvm 容器设置为 $cryptroot,然后设置为 $crypttarget - 显然成功地达到了此错误。

看起来脚本正在检查 $cryptlvm 是否为空字符串,如果是则失败并出现我的错误。我只发现了一个对 $cryptlvm 的引用,在 cryptroot 脚本中较早地设置了 cryptlvm="",除此之外没有任何引用。

我一直在根据我的 xubuntu 安装进行检查,到目前为止所有相关文件都是等效的,包括在脚本开头设置 cryptlvm="" 。

这就是我被困住的地方。

有人能在这里指出正确的方向吗?

答案1

GRUB_CMDLINE_LINUX_DEFAULT您可以通过将变量设置/etc/default/grub为来使此消息消失crypt_opts=<whatever#1>,lvm=<whatever#2>

您提到的脚本/usr/share将变量 cryptlvm 设置为 .

为了进一步参考,我自己的GRUB_CMDLINE_LINUX_DEFAULT包含:

crypt_opts=target=system,source=/dev/sda5,lvm=/dev/mapper/system

system这里是我的加密lvm分区。

相关内容