Linux系统启动故障救援修复实操步骤

当你的Linux系统卡在启动界面、
出现黑屏或Kernel Panic,
请不要慌张。Linux系统启动故障救援修复的核心思路是:
通过外部介质(如U盘、
光盘)启动一个小型Linux环境,
挂载原本的根分区,
然后进入该环境进行修复。
本文面向零基础用户,
以CentOS 7/8和Ubuntu 20.04为例,
手把手带你完成救援修复,
即使你之前没接触过命令行也能跟着操作。

什么时候需要系统急救?

通常遇到以下情况你就需要进入救援模式:

  • 启动时显示 GRUB rescue> 提示符或 Filesystem not recognized
  • 卡在开机画面无法进入登录界面
  • 系统提示 Kernel panic - not syncingUnable to mount root filesystem
  • 修改了 /etc/fstab/etc/default/grub 后无法启动

如果你的云服务器(如泽御云提供的Linux实例)遇到启动故障且无法通过控制台VNC修复,也可以通过救援模式挂载系统盘处理。

用U盘启动进入救援模式

  1. 准备启动介质:下载对应系统的ISO镜像(CentOS 7/8 或 Ubuntu 20.04 Live),用Rufus或Ventoy制作可启动U盘。
  2. 从U盘启动:重启服务器,在BIOS/UEFI中设置U盘为第一启动项(按F2、F10、Del等键进入BIOS),保存退出。
  3. 选择救援模式
  • 对于CentOS:在启动菜单选择 TroubleshootingRescue a CentOS system
  • 对于Ubuntu:选择 Try Ubuntu 进入Live桌面环境
  1. 进入命令行:CentOS救援模式会自动提示选择语言和键盘布局,最后进入一个带有 sh-4.2# 提示符的Shell。Ubuntu Live可以直接打开终端。
# CentOS救援模式示例(自动挂载提示)
1) Continue
2) Read-only mount
3) Skip to shell
选择 1,系统会尝试自动找到目前的"/"分区并挂载到 /mnt/sysimage

挂载并chroot进入损坏系统

救援模式下根目录通常是 /mnt/sysimage(CentOS)或通过手动挂载。务必先确认分区挂载情况

# 查看磁盘分区
lsblk
# 或 fdisk -l

# 手动挂载根分区(假设/dev/sda2是根分区)
mount /dev/sda2 /mnt/sysimage

# 如果存在独立的/boot分区,也需要挂载
mount /dev/sda1 /mnt/sysimage/boot

# 挂载必要的虚拟文件系统
mount --bind /dev /mnt/sysimage/dev
mount --bind /proc /mnt/sysimage/proc
mount --bind /sys /mnt/sysimage/sys

# 切换根目录到损坏系统
chroot /mnt/sysimage

Chroot成功后,你的命令行提示符会变成 bash-4.2# 并且所有命令都指向原本系统的环境。

修复grub引导与文件系统

根据故障类型选择修复操作:

场景一:GRUB损坏(启动出现 grub rescue>)

# 重新安装grub到第一块硬盘(/dev/sda)
grub2-install /dev/sda
# 或对于较老系统:grub-install /dev/sda

# 重新生成grub配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
# 或对于 Ubuntu: update-grub

场景二:文件系统损坏导致无法挂载

# 先退出chroot(输入exit),然后对根分区执行文件系统检查
fsck -y /dev/sda2
# -y 表示自动回答yes,适合新手

场景三:内核或initramfs缺失

# 重新安装内核
# CentOS: yum reinstall kernel -y
# Ubuntu: apt install --reinstall linux-image-generic
# 或者直接从备份恢复/boot目录

修复完成后,依次输入 exit 退出chroot,然后 umount -R /mnt/sysimage 卸载所有挂载,最后 reboot 重启(记得拔掉U盘)。

修复过程中容易踩的坑

  • ⚠️ 不要直接在U盘系统里运行 fsck:必须先卸载目标分区,否则会损坏数据。
  • ⚠️ 忘记挂载 /boot 分区:如果/boot独立分区未挂载,grub-install 会写入错误位置。
  • ⚠️ chroot后未挂载 /dev /proc /sys:会导致一些设备文件读写错误。
  • ⚠️ 修改了fstab后未验证:修复后检查 /etc/fstab 中的UUID或设备名是否正确,可用 blkid 获取。
  • ⚠️ 云服务器特殊注意事项:部分云平台(如泽御云)的救援模式需通过控制台挂载ISQ,而非U盘;请提前查看服务商帮助文档。

怎样确认启动恢复正常

重启后观察启动过程:

  • 正常出现GRUB菜单,选择默认内核
  • 进度条正常走完,没有长时间卡住
  • 出现登录提示符(图形界面或命令行)
  • 输入用户名密码后能正常进入系统

如果仍然异常,按 Ctrl + Alt + Del 重启并记录屏幕最后几行错误信息,通常会提示是内核、驱动还是磁盘问题。

常见问题解答 (FAQ)

Q1:修复后重启仍然进入 grub rescue 怎么办?
A:很可能你安装grub的设备不对,确认使用 grub2-install /dev/sda(不带分区号)。如果无法补救,重新进入救援模式,检查是否有多个硬盘。

Q2:没有U盘制作安装介质怎么办?
A:如果你在购买云服务器,很多厂商(如泽御云)提供救援模式功能,可以直接从控制台挂载ISO启动。如果你有另一台同版本Linux,也可以通过PXE网络启动。

Q3:输入 fsck 后提示 “fsck.ext4: Device or resource busy” 怎么办?
A:这说明分区仍被占用。确保已经卸载分区(umount /dev/sda2),并且没有任何进程在访问该分区(可以 lsof /dev/sda2 查看)。

Q4:我的系统是Ubuntu 20.04,但教程中的命令是CentOS的,怎么办?
A:Ubuntu使用 grub-installupdate-grub;包管理器用 apt;救援模式的挂载点通常是 /mnt 而不是 /mnt/sysimage。原则相同,命令略有差异,建议按发行版文档操作。

分享到:
上一篇
无网络住宅主机离线导入Docker镜像包完整步骤(新手适用)
下一篇
定时清理MySQL慢查询日志优化数据库性能
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意