
这是一个非常经典的 Linux 启动错误。根据截图中的关键信息:
核心错误信息: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
分析原因: 这个错误表明 Linux 内核已经成功加载,但是它无法挂载根文件系统(Root Filesystem)。简单来说,内核启动了,但找不到真正的操作系统文件在哪里。
unknown-block(0,0) 这个特定的代码通常指向以下几个最常见的原因:
- initramfs/initrd 损坏或丢失(最常见)
- Linux 启动需要一个临时的文件系统(initramfs)来加载加载根分区所需的驱动程序。
- 如果在上次系统更新(例如
apt upgrade)过程中,initrd.img文件生成失败(可能因为/boot分区满了,或者中途断电),内核就无法识别硬盘或文件系统,从而报错。
- GRUB 配置错误
- 引导加载程序(GRUB)传递给内核的
root=参数指向了一个不存在的设备,或者 UUID 发生了变化。
- 引导加载程序(GRUB)传递给内核的
- VMware 虚拟化特定的驱动问题
- 截图显示你在使用
VMware Virtual Platform。 - 如果你最近更改了虚拟机的硬盘控制器类型(例如从 LSI Logic 改为 PVSCSI),而 initramfs 里没有包含新的驱动,也会导致内核找不到硬盘。
- 截图显示你在使用
- 内核版本不匹配
- 你正在尝试启动的内核版本
5.15.0-164-generic可能有问题,或者与其配套的 initrd 文件不匹配。
- 你正在尝试启动的内核版本
如何修复(建议步骤):
方法 1:尝试启动旧内核(最简单)
- 重启虚拟机。
- 在启动过程中,按住
Shift键(或Esc键)进入 GRUB 菜单。 - 选择 “Advanced options for Ubuntu”(Ubuntu 高级选项)。
- 列表中会有多个内核版本。选择一个带有版本号较旧的内核(不要选带有
recovery mode的,除非普通模式也不行)。 - 如果旧内核能成功进入系统,说明是新内核的 initramfs 坏了。
- 进入系统后,运行以下命令修复:
sudo dpkg --configure -asudo update-initramfs -u -k allsudo update-grub
- 注意:如果你的
/boot分区满了,你需要先清理旧内核释放空间。
方法 2:使用 Live CD/ISO 修复 如果方法 1 无效,你需要:
- 加载 Ubuntu 安装镜像(ISO)启动虚拟机,选择 “Try Ubuntu”。
- 挂载原来的系统磁盘,并使用
chroot进入环境重新生成 initramfs(这个过程比较复杂,建议先试方法 1)。
总结: 这大概率是一次系统更新导致 initramfs 生成不完整引起的。尝试通过 GRUB 菜单引导旧内核通常能解决问题。