前段时间,我在电脑上安装了 Ubuntu 16.04。一切顺利,到目前为止没有问题。当第一个内核更新发布时,我无法启动它并出现以下错误:
Lvmetad is not active yet, using direct activation during sysinit
Volume group "ubuntu-vg" not found
Cannot process volume group ubuntu-vg
当我从 GRUB 菜单中选择旧内核时,一切正常,没有任何问题。之后又发布了另一个内核更新,但同样没有成功。基本上,单击较新的内核版本后,我得到了错误,并在屏幕上反复重复(没有尽头,至少没有测试过)。
我尝试了以下操作,但没有任何效果:
lvmetad 尚未激活;在 sysinit 期间使用直接激活(尝试了该问题的唯一答案)
都不起作用。我的磁盘已加密,因为这是安装过程中的一个选项,我想为什么不呢?我认为这里一定有什么事情发生过,尽管这更像是一种直觉,而不是确凿的证据。我搜索了是否可以停用加密,这是一项相当繁琐的工作,所以我停止了寻找,但如果这似乎是解决方案,我仍然可以尝试。
因此安装的内核版本是4.4.0-21-generic
(如 GRUB 中所示)。运行正常,没有问题。之后安装的内核是4.4.0-22-generic
、4.4.0-24-generic
和4.4.0-28-generic
(如 GRUB 中所示)。这三个都不起作用,并给出与之前完全相同的错误。
为什么我会收到此错误?如何解决?
答案1
我在 chroot 中将 Ubuntu 14.04 LTS 发布升级到 16.04 LTS 后也遇到了同样的错误消息(chroot 详见这篇德语文章) 来自实时系统。
错误发生在密码提示之前。由于 LVM 卷组通常之内加密卷,它一定是 dm_crypt/LUKS 配置问题。
我找到了解决方案这里并将在下面进行解释。
就我而言,加密卷的映射器名称与 /etc/crypttab 中给出的名称不同。
我从 的输出中选择了 luks 映射器的名称ls -l /dev/mapper
,使用图形文件管理器打开加密设备后在我的例子中,输出为:
control
luks-87fc4c8e-017b-8482-cd09-7332fe351628
vgubuntu-root
vgubuntu-swap
然后,以 root 身份,我将 /etc/crypttab(请注意行的开头)从:
sda5_crypt UUID=87fc4c8e-017b-8482-cd09-7332fe351628 none luks,discard
到:
luks-87fc4c8e-017b-8482-cd09-7332fe351628 UUID=87fc4c8e-017b-8482-cd09-7332fe351628 none luks,discard
最后我更新了我的 initramfs:
update-initramfs -u -k all
这两个名称不同,这有点令人困惑。有人会认为,创建映射器时,其名称是从 crypttab 中获取的。无论如何,它起作用了。
我在 chroot 中完成了所有操作,运行了一个实时系统。在启动系统后放入 busybox shell 中,它也可能有效,但我还没有尝试过。
答案2
新答案:
我意识到仅仅编辑该文件至少对我来说是行不通的,因为某种原因更改已被恢复。
如果你愿意,你可以这样做:在旧内核上启动 Ubuntu(通过 grub 启动选择菜单)并下载Grub 定制器,进入“常规设置”选项卡,在“默认条目”下选择较旧的内核启动“预定义:”。保存。这样你就会始终默认选择较旧的内核。
原始错误答案:
为什么不直接使用旧内核?我也遇到了和你一样的问题,感谢你发现使用旧内核后,我将 /boot/grub/grub.cfg 第一个菜单项的内核从 4.4.0-28-generic 更改为 4.4.0-21-generic,我的电脑终于能够完全启动了。