如何在Windows 10中重建BCD文件和主启动记录(MBR)?
现代Windows版本中的启动管理器使用BCD(启动配置数据)文件来启动计算机上安装的操作系统。该文件包含有关已安装的操作系统和引导参数的信息。如果BCD文件被删除或者损坏,则Windows无法正常启动。另外,如果硬盘上的Mater引导记录(MBR)损坏,我们将无法引导Windows。在本文中,我们将展示如何在Windows 10上手动重建启动配置(BCD)文件和修复MBR。
如果BCD文件丢失或者损坏,如果我们删除/格式化了带有系统保留标签(大小为500 MB)的单独磁盘分区或者特殊的OEM恢复分区,则用户在尝试引导时很可能会看到以下消息Windows 10:
电脑需要修复。启动配置数据文件缺少一些必需的信息
文件:\Boot\BCD
错误代码:0xc0000034
此外,该错误可能看起来像这样:
PC的启动配置数据丢失或者包含错误。
File:\boot\bcd 错误代码:0xc000000f
如果MBR损坏,则可能存在"找不到操作系统"错误。
如果错误文本指向winload.efi
文件,请转到Windows 10中缺少Winload.efi的文章。
如何在Windows 10中自动修复Bootloader?
如果出现此错误,首先,尝试使用可从Windows恢复环境(Windows RE)启动的"启动修复模式"启动操作系统,以解决该问题。
提示。
建议定期检查WinRE环境的运行状况,如果它不起作用,请使用如何在Windows 10中恢复WinRE一文中描述的方法进行恢复。
如果使用启动修复的自动修复没有帮助,请从Windows启动/安装磁盘或者在WinRE环境中启动计算机(修复计算机->故障排除->高级选项->命令提示符
)。启动命令提示符并尝试创建一个新的BCD文件并从头开始更新MBR记录。
在此示例中,我将使用Windows 10安装盘。在BIOS设置中,将主启动设备更改为DVD驱动器或者USB闪存驱动器(取决于要从其启动计算机的设备)。从Windows安装镜像启动计算机,然后在语言选择屏幕上按Shift + F10
。我们将看到一个命令提示符。
尝试使用以下命令自动还原BCD文件:
bootrec /RebuildBCD
重新启动计算机,然后检查Windows是否启动(不要忘记在BIOS中更改启动优先级设置)。如果不是,请再次从安装磁盘引导,然后启动命令提示符。
识别磁盘分区样式和驱动器号
非常重要。下面给出的所有说明适用于带有MBR分区表的标准BIOS计算机。对于基于UEFI的计算机,我们需要使用以下指南在带有EFI的Windows 10/8或者Windows 7中修复引导程序。重要。请记住分配的驱动器号,因为它们将在以后的命令中使用。
如何了解计算机是否具有BIOS或者UEFI?最简单的方法是检查安装Windows的磁盘分区表:GPT或者MBR。为此,请运行以下命令:
diskpart
然后列出可用磁盘:
list disk
如果磁盘上带有星号(
*
),然后在该磁盘上使用GPT分区表(这意味着我们有一台装有UEFI的计算机,我们需要使用上面链接中的文章来还原Windows Bootloader)。如果GPT列中没有星号,则说明磁盘上有MBR分区表,我们可以继续按照此说明进行操作。
接下来,我们需要确定计算机上的本地驱动器和卷(分配给它们的卷号很可能与我们在Windows中工作时看到的卷号不同)。使用diskpart可以更容易地做到这一点。运行以下命令:
diskpart list vol
我们将看到分区列表,分配给它们的驱动器号及其大小。在我们的例子中,计算机上有一个硬盘驱动器,上面有两个卷:
- 具有500 MB大小的"系统保留"分区,并为其分配了驱动器号" C:"。默认情况下,BCD文件位于此小服务分区中(了解更多);
- 大小为39 GB的" NTFS分区",并分配了字母" D:"。该分区包含已安装的Windows,程序和用户数据。
在Windows 10中修复主启动记录(MBR)
使用以下命令,很好地覆盖硬盘驱动器引导扇区上的"主引导记录",并添加到Windows 10引导加载程序的必要链接。
bootrec.exe /fixmbr bootsect.exe /nt60 all /force
如果找不到bootsect.exe命令,请尝试指定它的完整路径:
X:\boot\bootsect.exe /nt60 all /force
在继续之前,请尝试使用以下命令自动重新创建BCD引导程序配置(这是初学者最简单的方法):
bootrec /FixBoot
该命令在系统分区上重新创建引导扇区;
bootrec /ScanOs
bootrec /RebuildBcd
扫描所有磁盘并搜索已安装的Windows,然后将找到的副本添加到BCD引导加载程序配置中。
之后,重新启动计算机并检查Windows启动。如果操作系统无法启动,请按照以下说明进行操作。
如何在Windows 10上手动重建启动配置文件?
然后使用" BCDedit"命令,创建一个新的启动配置数据文件(假定我们没有BCD文件备份)。
在"系统保留"分区中删除旧的(损坏的)BCD文件,然后创建一个新的BCD文件:
del c:\boot\bcd
如果未将驱动器号分配给"系统保留"分区(默认情况下),则可以使用diskpart自己进行分配。运行:
diskpart
选择本地磁盘(在我的情况下,计算机上仅安装了一个硬盘,但是我们可以使用list disk命令列出本地磁盘):
select disk 0
上面的屏幕截图显示,系统保留分区称为卷1. 选择它:
select volume 1
分配一个驱动器号(我分配了一个字母C :,但是我们可以使用任何其他字母,在这种情况下,请通过以下命令更改路径):
assign letter C:
exit
创建一个空的临时文件bcd.tmp:
bcdedit /createstore c:\boot\bcd.tmp
为启动管理器(bootmgr)创建一个条目:
bcdedit.exe /store c:\boot\bcd.tmp /create {bootmgr} /d "Windows Boot Manager"
将设置从bcd.tmp导入到BCD:
bcdedit.exe /import c:\boot\bcd.tmp
指定引导管理器位于系统保留分区上(将字母C:分配给它):
bcdedit.exe /set {bootmgr} device partition=c:
配置超时以选择操作系统:
bcdedit.exe /timeout 10
删除临时文件:
del c:\boot\bcd.tmp
因此,我们有一个带有bootloader参数的文件。现在,我们必须添加有关已安装Windows的条目。
在BCD配置中为Windows 10创建一个新条目:
bcdedit.exe /create /d "Windows 10" /application osloader
该命令将返回此引导加载程序条目的唯一标识符(GUID)。
The entry {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs} was successfully created.
指定默认情况下,bootmgr必须使用此条目(在超时后,该条目用于引导):
bcdedit /default {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs}
现在,我们必须在新的引导加载程序条目中指定已安装的Windows 10副本的路径。我们已经在WinPE中看到字母" D:"已分配给Windows分区。在以下命令中使用该驱动器号:
bcdedit.exe /set {default}device partition=d: bcdedit.exe /set {default} osdevice partition=d: bcdedit.exe /set {default} path \Windows\system32\winload.exe bcdedit.exe /set {default} systemroot \Windows
使该引导记录在BCD中可见,因为默认情况下它是隐藏的:
bcdedit.exe /displayorder {default} /addlast
因此,我们重新创建了Windows 10引导程序和BCD文件,并将引导扇区固定在MBR上。现在,我们可以重新启动计算机,并确保Windows 10正常启动。