服务器系统安装后引导项丢失,核心是固件找不到引导程序;需据现象分四类修复:进bios界面→查硬盘识别与启动项;grub rescue→修复grub配置或重装;“os not found”→重建mbr/esp;initramfs卡住→重生成initramfs镜像。

服务器系统安装后引导项丢失,无法启动,核心问题是启动链断裂——固件(BIOS/UEFI)找不到可执行的引导程序。这不是系统重装才能解决的严重故障,多数情况可在不丢失数据的前提下快速恢复。
先确认当前卡在哪一环
不同现象对应不同修复路径,别急着敲命令:
- 开机直接进 BIOS/UEFI 界面,无任何提示 → 硬盘未被识别或启动项未注册
- 显示 grub rescue> 或 grub> 提示符 → GRUB 配置文件(
/boot/grub2/grub.cfg)或模块缺失,常见于/boot分区被清空、误格式化或空间不足 - 报错 “Operating System not found” 或 “No bootable device” → MBR/GPT 引导代码损坏,或 EFI 系统分区(ESP)未正确写入引导文件
- 卡在 initramfs 命令行 → 内核镜像(
vmlinuz)或初始化内存盘(initramfs-*.img)丢失/损坏,根文件系统无法挂载
用安装介质进入救援环境
这是所有修复的前提。使用原系统安装 ISO(如 CentOS/RHEL/麒麟/Ubuntu 安装 U 盘)启动:
- 选择 Troubleshooting → Rescue a [System] system
- 按提示挂载原有系统到
/mnt/sysimage(选1继续) - 执行
chroot /mnt/sysimage,确保后续命令作用于原系统而非救援环境 - 运行
lsblk -f或df -h确认/boot和/boot/efi(如有)已正确挂载
按故障类型执行针对性修复
● 若是 UEFI 系统且 ESP 分区存在但无引导文件:
执行:bcdboot C:\Windows /s S: /f UEFI(Windows)或 grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=centos(Linux)
● 若是 Legacy BIOS 模式且 MBR 损坏:
执行:grub2-install /dev/sda(注意设备名,如 sda 而非 sda1)
● 若 /boot 中内核或 initramfs 缺失(如麒麟、CentOS):
先检查 ls /boot/vmlinuz*,若无输出,需重装内核包;若有但 initramfs 缺失,运行:dracut --force /boot/initramfs-$(uname -r).img $(uname -r)
● 若 grub.cfg 丢失(常见于手动清理 /boot 后):
执行:grub2-mkconfig -o /boot/grub2/grub.cfg
最后验证与收尾
退出 chroot,重启前做两件事:
- 对 UEFI 系统:进 BIOS 确认启动项中已出现新注册的条目(如 “centos” 或 “Windows Boot Manager”)
- 对 BIOS 系统:用
fdisk -l /dev/sda确认系统分区标记为 bootable(星号 *) - 重启并移除安装介质,观察是否正常进入 GRUB 菜单或直接加载系统











