1.故障现象:

按Enter重试不管用;

按F1后进入选择“疑难解答”>“高级选项”>“启动修复”,仍然无法修复;

按F8后选择进入安全模式,可以进入系统,做了些数据备份。但可能是没有驱动的原因,U盘的数据复制非常慢。

2.故障原因:操作失误

用一块新硬盘在机器上装新Win10系统的时候忘记了主板上还有一块NVMe盘,只拆下了SAS硬盘。在安装过程选系统安装分区的时候也看到了,脑抽了一下,居然也没在意。结果就是新系统安装好了,改回原有系统(同样是Win10)也很正常的启动不了了。

NVMe盘上有很多的应用,不想重装。于是开始查找资料和进行恢复,花了不少时间,还好最后成功救回来了。按我的理解应该有不少人会遇到类似的问题,很多人可能会因此而重装系统、甚至丢失数据。顾总结了修复的过程,希望能对其他同学有所帮助。

3.系统环境(限制)说明

我的机器配置很常见:AMD 5600x,32GB RAM,1TB NVMe SSD + 1TB HD。

嗯,其实这些硬件都无所谓。关键是:采用了UEFI + GPT分区表的启动方式,而不是传统的BIOS + CSM。感觉近期使用了SSD硬盘的机器,装Windows10/11系统的时候通常会选择UEFI+GPT的启动方式。

什么是UEFI,GPT、BIOS,CSM,这里就不做介绍了。想仔细了解的去网上查吧。但本文之后的故障处理过程只适合于UEFI+GPT的启动方式!

4.故障原因分析

在Windows10/11系统中,以UEFI启动并且具备GUID分区表(GPT)的计算机,它的启动硬盘的默认分区,至少包括以下3个:

1) EFI System Partition:大概有 100 MB (partition type — EFI);

2) Microsoft Reserved partition:大小为 16 MB (在Windows 8.1时有128MB ) (partition type — MSR);

3) Primary Windows partition (Windows 主分区).

通常在安装Windows10系统到一个未被分区的硬盘时,这些分区是Windows安装程序自动创建的,并且EFI分区和MSR分区都是隐含的。只有在DiskGenius等磁盘工具软件中才能发现它们。

EFI分区存储着系统启动配置文件(BCD)以及启动 Windows所需的许多其他文件。当计算机启动时,UEFI环境从EFI分区加载引导加载程序文件 (EFIMicrosoftBootbootmgfw.efi) 并将控制权转移给该文件。bootmgfw.efi 启动 Windows Boot Manager,Windows Boot Manager从 BCD 加载配置数据。加载 BCD 后,Windows 开始通过 winload.efi 启动。

从故障现象来看,无法启动的原因很有可能是EFI分区中的配置文件(例如BCD)损坏,甚至有可能是EFI分区意外丢失了,从而让Windows无法找到winload.efi。

5.系统修复过程:只需要一个Windows 10 UEFI启动U盘

1)制作一个Windows 10系统UEFI启动U盘

参考:How to Create a UEFI Bootable USB Drive to Install Windows 10 or 7? | Windows OS Hub

2) 将制作好的Windows 10系统UEFI启动U盘插入主机USB端口,而后启动主机

3) 在显示主板界面时,按下del(不同品牌主板键位不同,看界面提示。但大多数都是del) 进入主板系统设置。在boot/startup选项中选择U盘为第一启动,NVMe硬盘为第二启动

4) 按F10保存重启后,由U盘启动进入以下安装界面

 5) 按下shift+F10 组合键,进入命令行界面

6) 在命令行界面,输入diskpart 命令以启动disk management tool

在DISKPART>提示符后输入 list disk 命令,列出所有硬盘

从硬盘的大小可以看出:

a. 硬盘0是我的NVMe盘,存放着Windows系统。硬盘1则是用于启动的U盘。

b. 硬盘0的Gpt列有一个*号。这说明硬盘0采用的是Gpt的分区表。

如果没有*号,则表示这个硬盘使用的是MBR的分区表,那么以下故障恢复步骤将不适用。

7) 选中Windows系统安装的硬盘,在这里就是磁盘 0

select disk 0

8) 显示磁盘0的分区和卷信息

list partition

list volume

 在这里,可以看到EFI启动分区的分区编号是1,卷编号也是1,大小是100MB,FAT32文件系统并且是隐藏状态。

9) 为隐藏的EFI卷指定一个驱动器符号k(可以任意选)

select volume 1
assign letter K:

10) 退出diskpart

exit

11) 进入EFI隐藏卷的bootloader目录

cd /d K:\efi\microsoft\boot\

12) 去除BCD文件的隐藏,只读和系统属性

attrib BCD -s -h -r

13) 备份BCD文件

ren BCD BCD.bak

14) 重新创建BCD bootloader config文件

bcdboot C:\Windows /l zh-CN /s k: /f ALL

具体参数说明:

-- C:\Windows – 指向windows的安装目录。

-- f ALL –表示需要拷贝所有Windows Boot Environment 文件, 包括UEFIBIOS系统的。如果希望只拷贝用于EFI bootloader的文件, /f UEFI 命令参数替代。

-- /l zh-CN —指定系统语言.由于我安装的是中文版,那么就是zh-CN。缺省是英文en-us – English (USA) ; 

具体可参考以下链接: 

Available Language Packs for Windows | Microsoft LearnAvailable Language Packs for Windowsicon-default.png?t=N7T8https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/available-language-packs-for-windows?view=windows-11

-- /s K: — 拷贝bootloader EFI 文件到驱动器k指定的分区(这里就是FEI分区);

命令执行成功后,输入exit 命令退出命令行界面。

重启系统并拔掉U盘。

系统恢复正常启动。

后面几步忘记了拍照 / 拷屏,只能说抱歉了。但过程和命令都是清晰有效的。

总结起来,其实挽救这种故障的过程并不复杂,但由于在某度上真的搜不到什么有效的资料,花了很多的时间都在走弯路。幸好还有个国际版的必应,查到了两个帖子:

Managing System Reserved Partition in Windows 10 | Windows OS Hubicon-default.png?t=N7T8https://woshub.com/fix-cant-boot-after-accidentally-deleted-system-reserved-partition/

How to Repair EFI/GPT Bootloader on Windows 10 or 11? | Windows OS Hubicon-default.png?t=N7T8https://woshub.com/how-to-repair-uefi-bootloader-in-windows-8/

修复过程也来源于上面的帖子,感谢外国盆友们的帮助。希望能为今后遇到同样情况的同学们提供一些帮助。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐