Windows引导失败时,需先通过diskpart识别UEFI/Legacy模式及EFI分区,再挂载ESP、重建BCD(bcdboot命令),或手动修复BCD条目及启动顺序。

如果您在Windows系统启动时遇到“操作系统未找到”或“BOOTMGR is missing”等错误,可能是BCD(Boot Configuration Data)损坏导致引导失效。以下是在PE环境中使用BCDedit命令修复系统引导的具体操作步骤:
一、确认系统分区与EFI/MBR模式
修复前必须准确识别系统所在分区及当前磁盘的引导模式(UEFI或Legacy),否则BCD重建将失败。需通过diskpart判断系统盘符、EFI系统分区(ESP)是否存在,以及Windows安装分区是否被正确识别。
1、在PE中以管理员身份打开命令提示符。
2、输入 diskpart 并回车,进入磁盘管理工具。
3、依次执行 list disk、select disk 0、list partition,观察是否存在FAT32格式的小分区(通常100–500MB),该分区即为EFI系统分区。
4、若存在EFI分区,记下其盘符(如S:);若不存在,则系统为Legacy BIOS模式,无需挂载ESP。
二、挂载EFI系统分区(仅UEFI模式适用)
在UEFI启动模式下,BCD存储于EFI系统分区的\EFI\Microsoft\Boot\BCD路径,该分区默认不可见,需手动分配盘符后才能访问和修改。
1、在diskpart中执行 select partition X(X为上一步识别出的EFI分区编号)。
2、执行 assign letter=S:(可替换为其他未占用字母,如W:、Z:)。
3、输入 exit 退出diskpart。
4、执行 S: 切换至该分区,验证路径 S:\EFI\Microsoft\Boot\BCD 是否存在。
三、重建BCD存储(通用方法)
当BCD文件丢失或严重损坏时,需清空原有BCD并新建标准配置。此操作会覆盖原BCD内容,但不删除Windows系统文件。
1、执行 bcdedit /export C:\BCD_Backup(可选,备份当前BCD,若已损坏则跳过)。
2、执行 ren S:\EFI\Microsoft\Boot\BCD BCD.bak(重命名原BCD为备份,适用于UEFI)。
3、执行 bcdboot C:\Windows /s S: /f UEFI(UEFI模式,C:为系统盘,S:为EFI分区盘符)。
4、若为Legacy BIOS模式,执行 bcdboot C:\Windows /s C: /f BIOS。
四、手动修复BCD条目(针对部分缺失项)
当系统能识别Windows安装但无法启动(如出现“winload.efi is missing”),说明BCD中加载器路径或设备标识错误,需逐项校正。
1、执行 bcdedit /store S:\EFI\Microsoft\Boot\BCD /enum all(UEFI)或 bcdedit /enum all(Legacy),查看当前所有启动项。
2、记录Windows Boot Loader对应的identifier(如 {current} 或 {default})。
3、执行 bcdedit /store S:\EFI\Microsoft\Boot\BCD /set {default} device partition=C:(UEFI)。
4、执行 bcdedit /store S:\EFI\Microsoft\Boot\BCD /set {default} osdevice partition=C:。
5、执行 bcdedit /store S:\EFI\Microsoft\Boot\BCD /set {default} path \Windows\system32\winload.efi(UEFI)或 \Windows\system32\winload.exe(Legacy)。
五、修复启动设备顺序与超时设置
BCD虽已存在,但可能因启动设备顺序错误或超时时间为0导致跳过Windows启动项,需强制指定默认项并启用菜单显示。
1、执行 bcdedit /store S:\EFI\Microsoft\Boot\BCD /default {default}(确保{default}指向正确的Windows启动项)。
2、执行 bcdedit /store S:\EFI\Microsoft\Boot\BCD /timeout 10(设置启动菜单显示10秒)。
3、执行 bcdedit /store S:\EFI\Microsoft\Boot\BCD /displayorder {default} /addfirst(将Windows项置顶)。
4、执行 bcdedit /store S:\EFI\Microsoft\Boot\BCD /bootsequence {default}(明确启动序列)。










