Ubuntu 17.10 kernel 4.13.0-32无法启动的调试方法咨询
遇到这种内核升级后卡在启动画面、且出现Failed to connect to lvmetad. Falling back to internal scanning提示的问题,我建议你按以下步骤逐步排查:
在正常启动的4.13.0-31内核中检查lvmetad状态
先确认lvmetad服务本身是否正常运行,执行命令:systemctl status lvmetad如果服务处于异常状态,先修复它;如果正常,再聚焦新内核下的配置兼容性问题。
调整LVM配置并更新initramfs
编辑LVM配置文件/etc/lvm/lvm.conf,找到use_lvmetad选项,将其值从1改为0(禁用lvmetad,改用内部扫描模式)。然后重新生成新内核的initramfs:update-initramfs -u -k 4.13.0-32完成后重启系统,尝试启动4.13.0-32内核。
查看新内核的启动日志
在4.13.0-31内核中,查看上一次(失败的)4.13.0-32启动日志:journalctl -k -b -1重点查找LVM卷组识别、磁盘挂载相关的错误信息,这些细节能帮你定位具体是哪一步出了问题。
对比新旧内核的initramfs内容
检查新内核的initramfs是否缺少LVM相关模块,执行:lsinitramfs /boot/initrd.img-4.13.0-32 | grep lvm同时对比4.13.0-31的结果:
lsinitramfs /boot/initrd.img-4.13.0-31 | grep lvm如果新内核的initramfs缺少关键模块,需要修改
/etc/initramfs-tools/modules添加对应模块,再重新生成initramfs。临时添加内核启动参数
在GRUB启动菜单中选择4.13.0-32内核,按e进入编辑模式,在linux开头的行末尾添加:rd.lvm.vg=你的卷组名称替换成你实际的LVM卷组名,然后按
Ctrl+X启动,看看能否绕过lvmetad的连接问题。验证磁盘挂载配置
检查/etc/fstab中的挂载配置,确认使用UUID挂载的磁盘UUID是否正确,或者是否有新内核不支持的挂载选项。可以用blkid命令查看当前磁盘的UUID,和fstab中的内容逐一对比。
如果以上步骤都没能解决问题,建议你收集启动时的完整错误输出,或者dmesg中与LVM、磁盘相关的日志片段,这样能更精准地定位问题根源。
内容的提问来源于stack exchange,提问作者Jim Carey

