当前位置: 首页 > news >正文

Ubuntu 服务器 KERNEL PANIC 修复实录

在一次服务器启动过程中,我遇到了一个严重问题:系统无法正常启动,并报错

KERNEL PANIC! Please reboot your computer.
UFS: Unable to mount root fs on unknown-block(0,0)

这个错误通常意味着内核在启动时无法找到或挂载根文件系统。经过排查,最终通过 重新安装 GRUB重新生成 initramfs 解决了问题。下面记录完整的操作步骤,供大家参考。


前提条件

  • 一台无法正常启动的 Ubuntu 服务器

  • 一个 Ubuntu 启动盘(U盘启动盘)

  • 基本的 Linux 命令操作知识


1. 从 U 盘启动

  1. 插入制作好的 Ubuntu 启动 U 盘

  2. 重启服务器并持续按 F7(部分主板可能是 F12/ESC)进入启动菜单

  3. 选择从 U 盘启动

  4. 在 Ubuntu 启动菜单中选择 “Try Ubuntu” 进入临时系统(不安装)


2. 查看磁盘与分区

首先确认目标系统的磁盘和分区:

sudo fdisk -l

比如我系统的磁盘是 /dev/nvme0n1,继续查看其分区:

sudo fdisk -l /dev/nvme0n1

我得到的结果是:

  • /dev/nvme0n1p2 —— 根分区 (/)

  • /dev/nvme0n1p1 —— EFI 分区 (UEFI 系统必需)


3. 挂载系统分区

将原系统分区挂载到 /mnt 目录:

# 挂载 root 分区
sudo mount /dev/nvme0n1p2 /mnt# 挂载 EFI 分区(仅 UEFI 系统需要)
sudo mount /dev/nvme0n1p1 /mnt/boot/efi

4. 挂载必要的虚拟文件系统

进入 chroot 前需要挂载这些系统目录:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /run /mnt/run

5. 进入 chroot 环境

切换到原系统环境:

sudo chroot /mnt

此时我们相当于进入了原服务器的系统内部,可以进行修复操作。


6. 修复引导

重新安装 GRUB

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu

⚠️ 如果遇到 EFI variables cannot be set 警告,可以忽略,后面 update-grub 会处理。

重新生成 GRUB 配置

update-grub

重新生成 initramfs

update-initramfs -c -k all

7. 退出并重启

exit
sudo reboot

拔掉 U 盘,服务器应当能正常进入 Ubuntu 系统了。


总结

通过以上操作,我成功解决了 KERNEL PANIC! UFS: Unable to mount root fs 的问题。

核心思路:

  1. 从 LiveCD/U盘启动

  2. 挂载原系统分区

  3. 进入 chroot 环境

  4. 重新安装引导程序和修复 initramfs

这种方法适用于大多数由于引导配置损坏或 initramfs 丢失引起的启动失败问题。

http://www.dtcms.com/a/356602.html

相关文章:

  • Java-面试八股文-Mysql篇
  • 【前端教程】从性别统计类推年龄功能——表单交互与数据处理进阶
  • IDEA之GO语言开发
  • cssword属性
  • 深度拆解 OpenHarmony 位置服务子系统:从 GNSS 到分布式协同定位的全链路实战
  • 20250829_SQLserver数据库_Server ip10.5.7.44在客户端用Navicat创建一个WATDB_ANDON数据库下的只读用户
  • 【小白笔记】Visual Studio 在 2025年7月更新的功能说明(英文单词记忆)
  • 软考 系统架构设计师系列知识点之杂项集萃(135)
  • TF-IDF:文本分析的“火眼金睛”
  • 绿幕电商直播为什么要用专业抠图软件.
  • 新手向:从零开始理解百度语音识别API的Python实现
  • CLion 中配置运行 Qt 项目指南
  • C++ 高阶错误解析:MSVC 与 Qt 全景指南
  • 如何设置阿里云轻量应用服务器镜像?
  • Maya绑定:连接编辑器的简单使用
  • 卷积理解-excel数据图表演示
  • 开源大语言模型(Qwen3)
  • 基于Velero + 阿里云 OSS的Kubernetes 集群的备份与恢复
  • Kubernetes 与 GitOps 的深度融合实践指南
  • 国产数据库转型指南:DBA技能重构与职业发展
  • 面试问题详解十一:Qt中的线程池与 QRunnable
  • 阿里云百炼智能体连接云数据库实践(DMS MCP)
  • Qt事件_xiaozuo
  • Baseline|基线
  • Linux: proc: pid: coredump_filter
  • Redis搭建哨兵模式一主两从三哨兵
  • GO入门(一)——安装和了解
  • MySQL底层数据结构与算法浅析
  • “设计深圳”亚洲权威消费科技与室内设计盛会
  • CVPR 强化学习模块深度分析:连多项式不等式+自驾规划