不同厂商命名的文件夹下有对应的系统引导,Windows 的在 \EFI\Microsoft 下。


\Boot 下的 bootx64.efi 为通用引导文件,实际上就是其它操作系统的引导文件复制改名。

UEFI 模式引导启动时直接到EFI 分区执行引导文件,再加载 C:\windows\system32 下的 winload.efi 启动程序,三者缺一不可,即便前面都正常,只是丢失 winload.efi 也无法启动。

Legacy + MBR 模式下,需要标记一个已有的分区为活动分区

活动分区内有如下引导文件:

引导启动时将依次检查磁盘分区,找到活动分区,再检查执行其中的引导文件。
接着加载  C:\windows\system32 下的 winload.exe 程序。
总的流程就是这么简单。
 
04
    引导修复   


一般情况下,我们只需要简单使用一条 BCDBoot 命令即可解决,但我们起码也要能打开 Windows 的命令行工具才行。
以下三种方式均可:

1、Windows 自带的修复模式 WindowsRE  -- 不需要额外设备
2、U盘 PE  -- 功能强大,简单
3、制作好的微软官方系统安装U盘 -- 不如以上两种实用,进入后 Shift+F10 启动命令行工具


恢复模式
只需要在开机显示 Windows 图标时切断电源、连续三次即可进入。

左右滑动查看更多(点击图片放大)

通常直接输入以下命令即可修复( Legacy 与 UEFI 通用):

bcdboot C:\windows
会自动复制所需引导文件到 EFI 分区(UEFI)/ 活动分区 (Legacy)

输完命令瞬间完成,你就可以重启开机了。

但如果遇到复杂的情况,光靠 BCDBoot 命令还是不够的,因为它无法修复引导分区错误导致的问题

可以用 Diskpart 工具来创建所需要的分区,命令行输入 diskpart 即可进入。

具体命令如下:








diskpart    #进入diskpart工具list disk   #列出现有磁盘 select disk *  # 选择磁盘*(*代表要创建的EFI分区所在磁盘,我这里是0)list partition  #(可选)列出磁盘中的现有分区create partition efi size= *   #创建大小为*的EFI分区(*代表EFI分区大小,单位MB)format quick fs =fat32    #格式化EF  I分区为fat32格式exit    #退出diskpart工具
Legacy 有所不同,不需要创建分区,只需要在 select disk 选择磁盘 后打个活动分区的标记即可。


select patrition 1   #选择第一个分区,分区号从1开始而是不是0active   #设置活动
再使用 BCDBoot 命令修复即可,你也可以使用更详细的命令来确保正确修复,比如:

bcdboot C:\Windows/s H: /f uefi
C盘为 Windows 所在分区、H 盘为 EFI 分区盘符、uefi 代表使用 uefi 引导
更详细的 BCDBoot 命令参见微软手册。

https://docs.microsoft.com/zh-cn/windows-hardware/manufacture/desktop/bcdboot-command-line-options-techref-di

PE 修复
如果你不喜欢敲命令,那使用 PE 来进行修复就更加友好,并且如果你甚至将WindowsRE 分区都给误删了,恢复模式是打不开的。
你可以先使用分区助手来检查分区情况,UEFI 引导缺少 EFI 分区的话手动创建一个 FAT32 分区即可,Legacy 引导则需要有一个活动分区。

同样也可以使用上面的 BCDBoot 命令来进行修复,还可以使用 PE 里的引导修复工具来进行操作。

但需要注意分区盘符一定要选对哦。

 
05
     总   结    


方法是其次,只要你能理解引导的工作流程和所需条件,解决问题就非常简单
不然就算你这次会了,下次又遇到其他情况。
分区有问题的先解决分区问题,没问题 BCDBoot 命令或者 PE 里的引导修复工具修复就完事了。

转自:https://mp.weixin.qq.com/s/iDLIkNvanCsJP9vFqrPSww