Windows 修复引导
适用场景:Windows 开机直接进入恢复模式、黑屏或提示找不到引导文件(多出现在双系统 EFI 分区被覆盖、ESP 分区被格式化之后)。你会学到在 WinPE 环境下用 bcdboot 重建 UEFI 启动项的方法,以及 BCDBoot 命令的工作原理。
PE 环境下使用 cmd 命令修复
- 选择优盘的 WinPE 启动盘启动系统。
- 使用 DG 分区软件,可看到 Esp 分区,然后右键菜单选择分配盘符。这样可以挂载引导分区。
- 格式化已经分配盘符的 esp 分区。
- 以管理员身份打开 cmd 执行以下命令:
bcdboot C:\Windows /s F: /f uefi /l zh-cn
各参数的具体含义:
c:\windows 系统安装目录,打开我的电脑,查看你的系统是安装在那个盘,就输入相应的盘符和目录。
/s S: 指定esp分区所在磁盘,小编指定ESP分区为t盘。
/f uefi 指定启动方式为uefi,注意之间的空格一定要输入。
/l zh-cn 指定uefi启动界面语言为简体中
Bcdboot 命令的原理及作用
在 win8/10 系统中有一条 BCDboot.exe 命令,它是一种快速设置系统启动分区或修复系统启动环境的命令行工具。BCDboot.exe 命令是通过从已安装的 Windows 系统文件夹中复制一小部分启动环境文件来设置/修复系统的。BCDboot 还会在系统分区上创建引导配置 BCD 文件,该文件存储了启动引导项,可让您选择引导已安装的 Windows。
当系统无法启动时,用 U 盘或光盘启动 Windows PE 环境、或者使用 win8/10 的高级修复模式启动到命令符环境(推荐),然后运行 BCDboot 命令来修复损坏的系统。BCDboot 命令通常在 %WINDIR%\System32 文件夹内,它运行后从计算机上已有的 Windows 映像复制一套启动环境文件到启动分区(GPT)/目录(MBR)中。
这些启动环境文件包括:从已安装的系统 %WINDIR%\boot\efi 文件夹和 %WINDIR%\System32\boot 文件夹复制到系统启动分区中。在 UEFI+GPT 环境下,BCDboot 将文件复制到固件所标识的默认系统启动分区(ESP)。另外,BCDboot 还使用 %WINDIR%\System32\Config\BCD-Template 文件为模板,在系统启动分区上创建新的 BCD(启动菜单)文件,并初始化 BCD 启动环境文件。可以在 BCD-Template 文件中定义特定的 BCD 设置(需要 BCD 文件编辑器)。
在基于 BIOS 的系统上,系统分区是使用主引导记录 (MBR) 磁盘格式的磁盘上的活动分区。BCDboot 会在系统分区上创建 \Boot 目录,并将所有需要的引导环境文件都复制到此目录中。
在基于 UEFI(统一可扩展固件接口) 的系统上,EFI 系统分区是使用 GUID 分区表 (GPT) 磁盘格式的磁盘上的系统启动分区(ESP)。BCDboot 会创建 \Efi\Microsoft\Boot 目录,并将所有需要的引导环境文件都复制到此目录中。
BCDboot 命令行格式:
BCDBOOT source [/llocale] [/svolume-letter] [/v] [/m [{OS Loader GUID}]]
验证与自查
- 重启后出现 Windows Boot Manager 引导项,能正常进入 Windows
- ESP 分区中存在
\EFI\Microsoft\Boot\bootmgfw.efi文件 - 进入系统后运行
bcdedit /enum能看到{bootmgr}与系统引导项 - 双系统用户修复后确认
efibootmgr中 Windows Boot Manager 与 Linux 引导项并存