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

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.xdnf.cn/news/19002.html

相关文章:

  • 开源vs商用美颜sdk:美白滤镜功能在直播中的优劣对比
  • gdb打印长字符产变量信息
  • CST混合求解任务的场路联合仿真(下)
  • ACID分别如何实现
  • 【C/C++】柔性数组
  • 科学融智学引领人机协同教育新范式
  • C# 生成器模式(一个投资跟踪程序)
  • 高效接入:Suno API 与主流编程语言的结合
  • html入门教程
  • Matlab函数转C语言供Keil使用
  • 【论文阅读】Sparse4D v2:Recurrent Temporal Fusion with Sparse Model
  • PDF,HTML,md格式文件在线查看工具
  • TensorFlow 深度学习 | 使用子类 API 实现 Wide Deep 模型
  • 动态规划01背包
  • 当不想安装telnet或nc时,可使用 Linux 系统默认自带的bash原生网络功能或ping(辅助判断)测试连通性
  • 法律审查prompt收集
  • java19学习笔记
  • 【机器学习入门】3.2 ALS算法——从评分矩阵到精准推荐的核心技术
  • Java泛型使用常见报错
  • hive udf函数实现在sql查询网站价格
  • 网站加载慢,linux服务器接口请求响应变慢,怎么排查,一般是什么原因
  • 工业相机的类型及不同类型的应用
  • 一文说清楚ABAP中的‘显示提交(Explicit Commit)’和‘隐式提交(Implicit Commit)’
  • word去空格去空行_word辅助工具 word批量处理
  • Python采集小红书笔记详情,json数据返回
  • 深度解密SWAT模型:遥感快速建模、DEM/LU/气象数据不确定性、子流域/坡度划分、未来土地利用与气候变化情景模拟及措施效益评估
  • 生产环境Spark Structured Streaming实时数据处理应用实践分享
  • ZArchiver解压器:强大的安卓解压缩工具
  • 数据结构 第三轮
  • 使用 Dify 和 LangBot 搭建飞书通信机器人