每隔一段时间就有朋友们发消息或者留言「分区/扩容 C 盘之后开不了机咋办啊?」

根据大家「动过分区」的这个描述,第一反应就知道,大概率是引导问题

而引导问题几乎是每个人都会遇到的问题,时间早晚而已。


01
    问题产生   


引导是一个非常「脆弱」的东西,系统、分区的操作都有可能导致其出现问题。

比如分区操作不当、不小心格式化某个分区、误删看不懂的文件,这与你用什么软件操作无关。

而引导只要出现问题,你的电脑就无法进入系统,就是这么直接。
但这个问题解决起来又非常简单,很多人觉得这个名词头疼,只是源于未知的恐惧。
 
02
   引导原理和类型   


系统引导指的是将操作系统内核装入内存并启动系统的过程。
直白地来说,就是需要有程序告诉电脑怎样一步步将系统启动,引导这个名字也很贴切。

不需要完全理解,只要大概知道这是从你按下开机键到系统启动完成中不可或缺的环节即可。

通过上图,你应该也了解到了,引导其实有两种类型:UEFI 引导和 Legacy 引导(传统引导)。
Legacy 也就是传统引导,是 Windows 8 之前常见的引导模式,通常搭配 MBR 磁盘分区表使用。
UEFI 引导则是新的引导模式,Windows 8 及以后推荐使用这种方式,通常搭配 GPT 磁盘分区表使用。

03
 引导文件工作流程  


便于理解,系统引导有这重要的三部分:分区、引导文件、winload 程序
UEFI + GPT 模式下,磁盘将单独划分一个 FAT32 格式的 EFI (ESP)分区,系统启动需要的引导文件都在 EFI 文件夹中。

不同厂商命名的文件夹下有对应的系统引导,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