Windows 无法启动:EFI 启动文件损坏的排查与修复实践
适用系统:Windows 10 / 11,GPT 分区 + UEFI 启动模式
故障现象:开机后直接进入 Windows 恢复环境(WinRE),无法正常启动系统
一、问题现象
开机后没有进入正常的 Windows 登录界面,而是直接跳转到蓝色的"Choose an option"恢复界面,提供以下三个选项:
- Use a device(使用设备)
- Troubleshoot(疑难解答)
- Turn off your PC(关闭电脑)
系统完全无法自动修复并进入桌面。
二、排查过程
第一步:尝试标准 bootrec 修复命令
进入路径:Troubleshoot → Advanced options → Command Prompt
依次执行以下命令:
bootrec /fixmbr
bootrec /fixboot
bootrec /scanos
bootrec /rebuildbcd
执行结果与分析:
| 命令 | 结果 | 说明 |
|---|---|---|
bootrec /fixmbr |
✅ 成功 | 主引导记录写入成功 |
bootrec /fixboot |
❌ Access is denied | 关键线索:EFI分区无法直接访问 |
bootrec /scanos |
✅ 找到 C:\Windows |
Windows 安装存在,数据完好 |
bootrec /rebuildbcd |
❌ 提示路径找不到 | BCD 重建失败,EFI 分区异常 |
bootrec /fixboot报 Access is denied 是重要信号,说明这台电脑使用的是 UEFI + GPT 启动模式,而非传统 BIOS + MBR 模式。UEFI 系统的启动引导存放在独立的 EFI 系统分区(ESP)中,bootrec /fixboot无权直接写入,因此报错。
第二步:使用 diskpart 找到 EFI 分区
diskpart
list disk
select disk 0
list partition
分区结构如下:
Partition 1 System 259 MB ← EFI 系统分区(ESP)
Partition 2 Reserved 16 MB ← MSR 微软保留分区
Partition 3 Primary 137 GB ← Windows 系统主分区(C:\)
Partition 4 Recovery 531 MB ← 恢复分区
Partition 5~7 Unknown ... ← 其他分区
Disk 0 的 Gpt 列有星号(*),确认为 GPT 磁盘。
第三步:挂载 EFI 分区并重建启动文件
由于 EFI 分区默认没有盘符,系统工具无法直接访问,需要手动分配一个临时盘符:
select partition 1
assign letter=Z
exit
然后使用 bcdboot 命令重建 UEFI 启动配置:
bcdboot C:\Windows /s Z: /f UEFI
输出结果:
Boot files successfully created.
✅ 修复成功!重启后系统正常进入 Windows。
三、根本原因分析
UEFI 启动原理
现代电脑使用 UEFI(统一可扩展固件接口) 替代传统 BIOS 来引导操作系统。其启动流程如下:
上电 → UEFI 固件 → 读取 EFI 系统分区(ESP)→ 加载 bootmgfw.efi → 读取 BCD → 启动 Windows
EFI 系统分区(ESP)中存放着启动所必需的关键文件:
Z:\EFI\Microsoft\Boot\
├── bootmgfw.efi ← UEFI 启动管理器
├── BCD ← 启动配置数据库
└── ...
为什么会损坏?
EFI 启动文件损坏的常见原因包括:
- 系统更新中断:更新过程中断电或强制关机
- 误操作分区:使用磁盘工具时误格式化了 EFI 分区
- 多系统安装冲突:安装 Linux 等其他系统时覆盖了 EFI 引导项
- 磁盘文件系统错误:坏道或文件系统损坏导致引导文件不可读
为什么 bootrec /fixboot 会 Access is denied?
bootrec /fixboot 是为传统 MBR 磁盘设计的命令,它尝试向磁盘的 Volume Boot Record 写入引导代码。在 GPT + UEFI 系统中,EFI 分区采用 FAT32 格式且默认无盘符挂载,该命令没有写入权限,因此返回 Access is denied。
四、完整修复步骤(速查)
适用场景:Windows 无法启动,进入 WinRE,确认为 UEFI + GPT 系统
进入命令提示符
Troubleshoot → Advanced options → Command Prompt
执行修复命令
:: 第一步:进入 diskpart,给 EFI 分区分配盘符
diskpart
list disk
select disk 0
list partition
:: 找到 Type 为 System 的分区(通常是 Partition 1,约 100~260 MB)
select partition 1
assign letter=Z
exit
:: 第二步:重建 UEFI 启动文件
bcdboot C:\Windows /s Z: /f UEFI
:: 第三步:退出并重启
exit
重启后应能正常进入 Windows。
五、关键命令解释
bcdboot 参数说明
bcdboot C:\Windows /s Z: /f UEFI
│ │ │
│ │ └── 指定固件类型为 UEFI
│ └───────── 指定启动分区为 Z:(EFI 分区)
└────────────────────── Windows 系统文件来源路径
bcdboot 会做两件事:
- 将启动管理器文件(
bootmgfw.efi等)复制到 EFI 分区 - 在 EFI 分区创建新的 BCD(启动配置数据库)
MBR vs UEFI 修复方式对比
| 项目 | 传统 BIOS + MBR | 现代 UEFI + GPT |
|---|---|---|
| 启动文件位置 | MBR 扇区 + VBR | EFI 系统分区(FAT32) |
| 修复命令 | bootrec /fixmbr + /fixboot |
bcdboot /f UEFI |
| 需要挂载分区 | 否 | 是(需 assign letter) |
六、预防建议
- 避免暴力断电,尤其是系统更新期间
- 定期备份 EFI 分区:可用
bcdboot或第三方工具备份引导文件 - 安装双系统前做好快照或镜像备份
- 遇到黑屏/蓝屏不要反复强制重启,可能加剧文件系统损坏
七、总结
| 步骤 | 操作 | 作用 |
|---|---|---|
| 1 | bootrec /fixmbr |
修复主引导记录(MBR) |
| 2 | bootrec /fixboot 失败 |
确认为 UEFI 系统 |
| 3 | diskpart 查看分区 |
找到 EFI 系统分区 |
| 4 | assign letter=Z |
挂载 EFI 分区 |
| 5 | bcdboot /f UEFI |
重建 UEFI 启动文件(核心修复) |
整个问题的本质是:EFI 系统分区中的启动引导文件损坏或丢失,导致 UEFI 固件找不到 Windows 启动入口。通过手动挂载 EFI 分区并用
bcdboot重新生成启动文件,问题得以彻底解决。
记录于 2026年3月 | 系统环境:Windows 10 Version 10.0.19041.1 | GPT + UEFI

浙公网安备 33010602011771号