我已经为一个问题苦苦挣扎了好几个小时:
升级 Ubuntu 后,首先从 15.04 升级到 15.10,然后从 15.10 升级到 16.04,我无法使用新内核启动。在第二次升级后,我只剩下内核 4.4.0-36 和 3.16.0-33(没有任何 4.2.x 的痕迹)。这让我觉得我在运行 3.16.0-33 的同时从 15.10 升级到了 16.04。这可能是我的问题的原因。
在启动(4.4.0-36)时,我得到:“ALERT!/dev/mapper/ubuntu--vg-root 不存在。丢弃到 shell!”
使用 3.16.0-33 启动就可以了。
我试过的:
- 重新安装内核(4.4.0-36)。没变。
- 在busybox中,我尝试输入“vgchange -ay”,但没有成功:我的键盘在busybox中不起作用。
- 安装 4.4.0-38。结果相同。
- 尝试按照http://pifuge.com/ubuntu/V0Wn-cant-find-lvm-root-dropped-back-to-initramfs中的说明进行操作,但是文件 /usr/share/initramfs-tools/scripts/local-top /lvm2 不包含任何“modprobe -q”,之后我可以添加任何内容。
任何帮助将不胜感激!
华纳
更多细节:
- 运行 LVM2。它(显然)已安装。
- 没有多重引导。只是Ubuntu。
- 没有加密(据我所知)
- 奇怪的是,Busybox 不响应输入。无论我如何启动,这都是一样的(除非我运行 3.16.0-33,然后系统启动正常)
- 它会尝试挂载根目录大约 20 次,然后再放入 shell(busybox)。这是它给出的输出:
开始:运行根文件系统 ... 开始:运行 /scripts/local-top ... lvmetad 尚未激活,在 sysinit 期间使用直接激活 未能找到已完成的逻辑卷“ubuntu-vg/root”。开始:运行 /scripts/local-premount ...完成 开始:等待根文件系统 ...开始:运行 /scripts/local-block ... lvmetad 尚未激活,在 sysinit 期间使用直接激活 未能找到逻辑卷“ubuntu-vg/root”完成。
(最后一个重复20次)
放弃等待根设备。常见问题: Boot args (cat /proc/cmdline) 检查 rootdelays(系统等待的时间是否足够长?) 检查 root=(系统是否等待错误的设备?) 缺少模块(cat /proc/modules: ls /dev) “警告!/dev/mapper/ubuntu--vg-root 不存在。正在删除到 shell!”
基本上,根本原因是“/dev/mapper/ubuntu--vg-root”在检查根目录时还没有完全准备好。在某种程度上,vgchange 命令可以触发 lvm 更新并显示在 /dev/mapper 中。建议使用“UUID”而不是使用 dev 映射器名称以使其更通用。
我最近在加密的 lvm 上安装了带有 root 的 16.04 Ubuntu 服务器。使用内核 4.4.0-34 可以正常启动,但是使用 4.4.0-36 我遇到了同样的问题。重复有关 lvmetad 的消息,然后放入 shell。作为一种解决方法,我将 4.4.0-34 声明为默认启动选项并关闭自动更新。因此,安装 4.4.0-34 可能会帮助您获得工作的 4.4 内核。我还没有找到一个长期的解决方案。