核心问题是BCD配置错误或缺失,修复需先用bcdedit/diskpart确认状态,再启用菜单、重建BCD(bcdboot)、或通过EasyBCD/GRUB接管引导。
双系统引导菜单不显示、进错系统或只列一个选项,核心问题不是系统坏了,而是启动配置数据(bcd)记录错误、缺失,或固件启动顺序被覆盖。修复关键在于:先确认当前状态,再针对性重建或调整,而不是盲目重装。
一、先检查当前引导配置和分区情况
在正常运行的 Windows 中,以管理员身份打开命令提示符或 Windows Terminal,执行以下两步:
- bcdedit /enum firmware —— 查看固件(UEFI)里注册了哪些启动项,比如是否有 “Windows Boot Manager” 和 “ubuntu” 两个条目;谁排第一就先启动谁
- diskpart → list volume —— 进入 diskpart 后列出所有卷,重点关注:标有 “System” 的小容量 FAT32 分区(通常是 EFI 系统分区),以及你两个系统的 Windows 安装所在盘符(如 C: 和 D:)
若 bcdedit /enum 显示只有 {current} 一个条目,或 device/osdevice 显示 unknown,说明 BCD 已损坏或未识别另一系统。
二、启用并强制显示启动菜单
有时菜单没丢,只是被隐藏了。用命令直接开启:
- bcdedit /set {bootmgr} displaybootmenu yes
- bcdedit /timeout 8(设为 8 秒,避免跳过)
重启后若出现菜单但缺 Linux 项,说明 Windows 自带 bootmgr 不会自动加载 GRUB,需后续手动添加或改用固件级切换。
三、重建 BCD 引导文件(推荐用于 UEFI 模式)
当自动修复失败或 BCD 完全空白时,需手动重写启动文件。务必从对应版本的 Windows 安装介质启动(如 Win11 系统就用 Win11 安装U盘):
- 进 WinRE → 命令提示符
- 运行 diskpart → list volume,找到 EFI 分区(FAT32,通常 100–500MB,无盘符)
- 对它执行:select volume X → assign letter=S:(X 是实际卷号)
- 再运行:bcdboot C:\Windows /s S: /f UEFI(C: 是你要保留的 Windows 系统盘)
- 完成后执行:mountvol S: /d 卸载盘符
该操作会重建 bootmgfw.efi 和完整 BCD,但默认仍只登记 Windows 系统。
四、让 Windows 启动菜单能进 Linux(需额外操作)
Windows bootmgr 本身不支持直接启动 Linux 内核。想让它“显示并启动 Ubuntu”,本质是加一条指向 GRUB 的 EFI 应用:
- 方法一:用 EasyBCD,在“Linux/BSD”页选择 GRUB2,指定路径为 \EFI\ubuntu\grubx64.efi,名称自定义,保存即可
- 方法二:命令行添加(高级):bcdedit /create /d "Ubuntu" /application bootsector,再用 bcdedit /set {ID} device partition=S: 和 /set {ID} path \EFI\ubuntu\grubx64.efi 关联
- 更稳妥的做法是:进 Ubuntu Live USB,运行 sudo update-grub 或 boot-repair,让 GRUB 接管引导,并通过 efibootmgr -o 0001,0000 把 Ubuntu 设为第一启动项
注意:修改 bcdedit /default 只影响 Windows 内部 BCD 默认项,不影响固件启动顺序;真正决定开机第一眼看到谁的,是 UEFI NVRAM 中的启动项顺序。


















