我有一个带有 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分区。