GRUB菜单消失是UEFI启动项被覆盖而非系统损坏,需先确认BIOS中无CentOS条目,再通过Windows的bcdedit注册或CentOS Live环境重装grub2并更新配置。

Windows 11 和 CentOS 双系统装完却只能进 Windows,重启后 GRUB 菜单彻底消失,说明 EFI 引导项被覆盖或未正确注册——这不是系统坏了,而是 UEFI 固件没记住 CentOS 的启动入口。
确认当前引导状态
开机时反复按 F2(或 Del、F10,依主板而定)进入 BIOS/UEFI 设置界面 → 找到 “Boot” 或 “Startup” 选项卡 → 查看 “Boot Order” 或 “Boot Priority” 列表。如果里面只有 Windows Boot Manager,没有 centos、grub、fedora 或类似条目,就证实 GRUB 启动项丢失。
此时不要慌着重装系统,【EFI 分区仍在,只是固件没调用它】。只要 /boot/efi/EFI/centos/grubx64.efi 文件存在,就能恢复。
从 Windows 11 侧手动重建 GRUB 启动项
以管理员身份运行 PowerShell(Win+X → Windows Terminal (Admin)):
第一步:挂载 EFI 分区为一个驱动器号(如 S:)
diskpart → list volume → 找到文件系统为 FAT32、标有“System”或“EFI”的卷 → select volume X → assign letter=S → exit
第二步:检查 GRUB EFI 文件是否存在
dir S:\EFI\centos\grubx64.efi
若返回“找不到文件”,说明 CentOS 安装时未正确写入 EFI,需跳至第三种方法;若存在,继续执行下一步。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
第三步:用 bcdedit 注册新启动项
bcdedit /create /d "CentOS 9" /application bootsector
记下返回的 {GUID}(一长串带花括号的字符)→ 然后执行:
bcdedit /set {GUID} device partition=S:
bcdedit /set {GUID} path \EFI\centos\grubx64.efi
bcdedit /set {GUID} description "CentOS 9"
bcdedit /displayorder {GUID} /addlast
这一步必须严格按顺序执行,【{GUID} 必须替换为你上一步实际得到的值,不能照抄示例】。输错会导致启动项损坏,需用 diskpart 清除错误项再重试。
从 CentOS Live 环境修复 GRUB(终极方案)
方法一:使用 CentOS 9 Live USB 启动 → 进入“Troubleshooting” → “Rescue a CentOS system” → 按提示进入 shell。
执行以下命令(假设你的根分区是 /dev/nvme0n1p3,EFI 分区是 /dev/nvme0n1p1;请先用 lsblk 确认):
mount /dev/nvme0n1p3 /mnt
mount /dev/nvme0n1p1 /mnt/boot/efi
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt
方法二:在 chroot 环境中重装 GRUB:
dnf reinstall grub2-efi-x64 shim-x64 -y
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=centos --recheck
退出 chroot → reboot → 进入 UEFI 启动菜单(通常为 F10 或 F12),选择 “centos” 启动项即可直接进入 GRUB 菜单。

















