Ubuntu 24.04 内核 Kernel Panic 问题排查与解决流程(第二次出现该问题后,永久性解决)
问题描述系统更新后重启出现以下错误Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)系统无法正常启动。问题原因分析错误含义内核在启动过程中无法找到并挂载根文件系统。unknown-block(0,0)表示内核完全不知道根文件系统在哪个块设备上。启动流程BIOS/UEFI → GRUB引导 → 加载内核(vmlinuz) initramfs → 挂载根文件系统 → 启动系统initramfs是一个临时的迷你文件系统包含磁盘驱动模块如 NVMe、SATA、virtio 等文件系统驱动模块如 ext4、btrfs挂载根分区所需的脚本和工具根本原因系统更新过程中initramfs 生成被中断Ubuntu 推送了内核更新更新过程中需要运行update-initramfs为新内核生成对应的 initramfs该过程因某种原因中断提前重启、断电、dpkg 配置脚本出错等新内核的vmlinuz文件已安装但对应的initrd.img没有生成GRUB 默认启动最新内核 → 没有 initramfs → Kernel Panic紧急修复方法当遇到 Kernel Panic 无法启动时开机后选择“Advanced options for Ubuntu”选择带有(recovery mode)字样的选项建议选版本号较旧的那个按回车选择networkEnable networking选择dpkgRepair broken packages系统会开始扫描如果提示Do you want to continue?输入Y并回车完成后系统重启即可恢复原理通过旧内核进入 recovery mode运行dpkg --configure -a完成被中断的包配置重新生成缺失的 initramfs。系统排查流程第一步收集系统信息# 查看系统版本lsb_release-a# 查看当前运行的内核uname-r# 查看已安装的内核和对应的 initramfs 是否齐全ls/boot/vmlinuz-* /boot/initrd.img-*# 查看是否有未完成的包配置sudodpkg--audit检查要点每个vmlinuz-*都应该有对应的initrd.img-*dpkg --audit输出应为空无残留问题第二步检查自动更新配置# 查看自动更新服务是否在运行systemctl is-enabled unattended-upgrades apt-daily.timer apt-daily-upgrade.timer# 查看自动更新的配置cat/etc/apt/apt.conf.d/20auto-upgrades第三步查看内核锁定状态sudoapt-mark showhold解决方案锁定内核禁止内核自动更新锁定内核包sudoapt-mark hold linux-image-generic linux-headers-generic linux-generic验证锁定sudoapt-mark showhold应输出linux-generic linux-headers-generic linux-image-generic效果内核自动更新已禁止其他安全补丁更新正常进行不会再因为内核自动更新中断导致 Kernel Panic手动更新内核流程以后需要手动更新内核时执行以下步骤# 1. 解锁内核包sudoapt-mark unhold linux-image-generic linux-headers-generic linux-generic# 2. 手动更新全程盯着不要中途关机或重启sudoaptupdatesudoaptupgrade# 3. 更新完成后重新锁定sudoapt-mark hold linux-image-generic linux-headers-generic linux-generic其他可选防护措施让 GRUB 显示启动菜单出问题时可以在开机时直接选旧内核进系统sudosed-is/^GRUB_TIMEOUT_STYLE.*/GRUB_TIMEOUT_STYLEmenu//etc/default/grubsudosed-is/^GRUB_TIMEOUT.*/GRUB_TIMEOUT5//etc/default/grubsudoupdate-grub添加 apt hook 自动检查 initramfs每次 apt 更新后自动检查内核是否都有对应的 initramfssudotee/etc/apt/apt.conf.d/99-check-initramfsEOF DPkg::Post-Invoke { if ls /boot/vmlinuz-* /dev/null 21; then for k in /boot/vmlinuz-*; do v${k#/boot/vmlinuz-}; if [ ! -f /boot/initrd.img-$v ]; then echo [initramfs-check] 内核 $v 缺少 initramfs正在自动修复...; update-initramfs -c -k $v; fi; done; fi; }; EOF保留足够的旧内核建议至少保留2 个可用内核不要手动清理过度# 查看已安装的内核数量dpkg--list|greplinux-image|grep^ii环境信息系统版本Ubuntu 24.04.1 LTS (noble)当前内核6.17.0-19-generic已安装内核6.14.0-37-generic、6.17.0-19-generic解决日期2026年4月总结项目状态系统当前状态正常无残留问题内核 initramfs全部完好内核自动更新已禁止apt-mark hold其他安全补丁更新正常进行实际案例(new_code)myxmyx-ubuntu:~/桌面$ lsb_release-aNo LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu24.04.1 LTS Release:24.04Codename: noble(new_code)myxmyx-ubuntu:~/桌面$uname-r6.17.0-19-generic(new_code)myxmyx-ubuntu:~/桌面$ls/boot/vmlinuz-* /boot/initrd.img-* /boot/initrd.img-6.14.0-37-generic /boot/vmlinuz-6.14.0-37-generic /boot/initrd.img-6.17.0-19-generic /boot/vmlinuz-6.17.0-19-generic(new_code)myxmyx-ubuntu:~/桌面$sudodpkg--audit[sudo]myx 的密码(new_code)myxmyx-ubuntu:~/桌面$sudodpkg--audit(new_code)myxmyx-ubuntu:~/桌面$sudodpkg--audit(new_code)myxmyx-ubuntu:~/桌面$ systemctl is-enabled unattended-upgrades apt-daily.timer apt-daily-upgrade.timer enabled enabled enabled(new_code)myxmyx-ubuntu:~/桌面$cat/etc/apt/apt.conf.d/20auto-upgrades APT::Periodic::Update-Package-Lists0;APT::Periodic::Download-Upgradeable-Packages0;APT::Periodic::AutocleanInterval0;APT::Periodic::Unattended-Upgrade1;(new_code)myxmyx-ubuntu:~/桌面$sudoapt-mark showhold(new_code)myxmyx-ubuntu:~/桌面$sudoapt-mark showhold(new_code)myxmyx-ubuntu:~/桌面$sudoapt-mark hold linux-image-generic linux-headers-generic linux-generic linux-image-generic 设置为保留。 linux-headers-generic 设置为保留。 linux-generic 设置为保留。(new_code)myxmyx-ubuntu:~/桌面$sudoapt-mark showhold linux-generic linux-headers-generic linux-image-generic(new_code)myxmyx-ubuntu:~/桌面$
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2473809.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!