安装内核 4.6 后,我们使用 Debian 8.5 Jessie 启动开发服务器。它不会出现错误消息“设置 LVM 卷组”。
VM 具有 Debian 8,带有向后移植存储库,使用 sysV 而不是 systemd 启动,并使用 LVM。
我可以使用 knoppix live 映像启动它,并使卷组中的 6 个 LVM 分区显示为:
vgchange -ay
我还能够挂载 LVM 分区并编辑它们,因此看起来不存在任何类型的 LVM 问题。
我还利用这一点以自然顺序挂载所有分区,包括挂载绑定 proc、sys 和 dev,从而运行 chroot 来更自然地运行其他调试/修复命令。
已经尝试将启动算法更改为CONCURRENCY=none
/legacy,但没有取得太大成功。
还重新生成了该initrd
文件,在升级内核时服务器的磁盘空间是否已满,使用以下命令:
sudo dpkg-reconfigure linux-image-4.6.0-0.bpo.1-amd64
这也没有任何区别。
我还重新安装了 grub,使用:
sudo update-grub
sudo grub-install /dev/sda
它也不起作用。
我还在 中的内核选项中添加了调试选项grub
,但是系统在启动时既不打印相关错误,也不在错误后打印任何其他消息。
也没有任何日志或dmesg
日志可供检查,因为此时启动时,系统日志仍然无法工作。
答案1
我最终找到了有问题的脚本,/etc/rcS.d/S05lvm2
并且在该脚本中停止了虚拟机的命令为/sbin/lvm vgchange -aay --sysinit >/dev/null
从源文件中可以看出,其依赖关系S05lvm2
为:
# Should-Start: udev mdadm-raid cryptdisks-early multipath-tools-boot
最终我意识到有人或某事udev
在启动时禁用了守护进程(就在上次成功启动后不久)。我还确定这不是内核安装后例程禁用udev
。
未满足服务依赖性的初始化脚本udev
要么等待从未满足的依赖性,要么等待从未出现的设备(或两者)。
在上述 chroot 中运行时,该问题已得到修复:
sudo chkconfig udev on
(我们已经安装了吗chkconfig
)。按照 Debian 的方式,它将是:
sudo update-rc.d udev defaults
接下来重新制作 initrd 文件(Debian 技巧,轻松重新生成 initrd 文件):
sudo dpkg-reconfigure linux-image-4.6.0-0.bpo.1-amd64