Ubuntu 服务器 KERNEL PANIC 修复实录

发布于:2025-08-30 ⋅ 阅读:(18) ⋅ 点赞:(0)

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

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 丢失引起的启动失败问题。


网站公告

今日签到

点亮在社区的每一天
去签到