双系统启动菜单修复需分步操作:先用bcdedit启用菜单并设超时;再用bootrec扫描重建BCD;若失败则用diskpart定位ESP分区后执行bcdboot重建;Windows中可添加GRUB启动项;Ubuntu中需启用os-prober并update-grub探测Windows。

如果您在双系统环境中重启后无法看到启动菜单、仅进入单一系统或直接报错进入GRUB rescue界面,则极可能是启动配置数据(BCD)损坏、EFI引导项丢失、GRUB未正确识别另一系统,或UEFI固件启动顺序被重置。以下是多种可立即执行的修复命令与对应操作步骤:
一、启用Windows Boot Manager启动菜单显示
该方法通过修改BCD底层参数,强制Windows引导管理器在开机时加载并呈现多系统选择界面,适用于菜单被禁用但BCD结构仍完整的情形。
1、按下Win + R键打开“运行”对话框,输入cmd,右键“命令提示符”选择“以管理员身份运行”。
2、输入以下命令并回车:bcdedit /set {bootmgr} displaybootmenu yes。
3、继续输入命令并回车:bcdedit /timeout 8。
4、关闭窗口,重启电脑验证是否出现启动菜单。
二、扫描并重建Windows双系统BCD条目
当bcdedit /enum firmware仅显示一个启动项、或device/osdevice字段为unknown时,说明BCD已无法识别全部Windows安装,需调用bootrec工具重新发现并注册。
1、以管理员身份运行命令提示符。
2、执行:bootrec /scanos,确认是否列出两个Windows安装路径。
3、若成功识别,执行:bootrec /rebuildbcd,对每个检测到的系统输入Y添加。
4、若仍失败,需配合diskpart挂载EFI分区后使用bcdboot重建(见方法四)。
三、在Windows中直接恢复Ubuntu/GRUB启动项
无需Linux启动介质,只要Ubuntu分区未被格式化且系统采用UEFI模式,即可通过bcdedit将Windows Boot Manager指向GRUB引导文件,使其作为可选启动项加载。
1、以管理员身份运行PowerShell(非CMD)。
2、执行:bcdedit /create /d "Ubuntu" /application bootsector,记录返回的{GUID}标识符。
3、执行:bcdedit /set {GUID} device partition=\EFI\ubuntu\(注意:此处为UEFI路径逻辑,实际需先映射ESP盘符)。
4、更可靠方式是直接设置bootmgr路径:bcdedit /set "{bootmgr}" path \EFI\ubuntu\grubx64.efi。
四、使用bcdboot重建UEFI引导文件(需定位ESP分区)
该操作会重写EFI系统分区中的bootmgfw.efi、BCD数据库及驱动文件,适用于BCD完全空白、EFI分区存在但引导文件损坏的情况,要求从对应版本Windows环境执行。
1、以管理员身份运行命令提示符。
2、输入diskpart,依次执行:list volume,查找标有“System”且文件系统为FAT32、容量100–500MB的卷。
3、记下其卷号(如Volume 3),执行:select volume 3,再执行:assign letter=S:。
4、执行:bcdboot C:\Windows /s S: /f UEFI(C:为待保留的Windows系统盘符)。
5、执行:mountvol S: /d卸载临时盘符。
五、在Ubuntu中修复GRUB并重新探测Windows
当GRUB菜单不显示Windows选项时,通常因os-prober未启用或Windows EFI分区未挂载,需手动触发系统探测并更新配置。
1、启动进入Ubuntu,打开终端。
2、执行:sudo nano /etc/default/grub,确认GRUB_TIMEOUT=10且GRUB_DISABLE_OS_PROBER=false未被注释。
3、保存退出后,执行:sudo os-prober,检查是否输出类似/dev/sda1:@/efi/Microsoft/Boot/bootmgfw.efi的行。
4、若未输出,先挂载Windows ESP分区:sudo mount /dev/sda1 /mnt(请替换为实际设备名),再重试os-prober。
5、执行:sudo update-grub,生成含Windows条目的新配置。

















