当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何修复 Windows 启动管理器、BCD 和主启动记录 (MBR)

作者:精品下载站 日期:2024-12-14 23:18:50 浏览:14 分类:玩电脑

如何修复 Windows 启动管理器、BCD 和主启动记录 (MBR)


现代 Windows 版本中的启动管理器使用BCD(启动配置数据)文件来启动计算机上安装的操作系统。该文件包含有关已安装操作系统和启动参数的信息。如果 BCD 文件被删除或损坏,Windows 将无法正常启动。此外,如果硬盘上的主启动记录 (MBR) 损坏,您将无法启动 Windows。在本文中,我们将展示如何在 Windows 10 和 11 上正确重建 Windows 启动管理器、BCD 配置文件以及修复 MBR。

Windows 10 或 11 中缺少启动配置数据文件

如果 BCD 文件丢失或损坏,如果您删除/格式化了带有系统保留标签(大小为 500 MB)的单独磁盘分区或特殊 OEM 恢复分区,则用户在尝试启动 Windows 时可能会看到以下消息:

Your PC needs to be repaired
The Boot Configuration Data file is missing some required information
File: \Boot\BCD
Error code: 0xc0000034

[玩转系统] 如何修复 Windows 启动管理器、BCD 和主启动记录 (MBR)

另外,错误可能如下所示:

The Boot Configuration Data for your PC is missing or contains errors.
File: \boot\bcd
Error Code: 0xc000000f

如果 MBR 损坏,可能会出现“找不到操作系统”错误。

[玩转系统] 如何修复 Windows 启动管理器、BCD 和主启动记录 (MBR)

如果错误文本引用 winload.efi 文件,请参阅文章 Windows 10 中缺少 Winload.efi。

如何自动修复Windows Bootloader?

如果出现此错误,首先,尝试使用可从 Windows 恢复环境 (Windows RE) 启动的启动修复模式启动操作系统来解决问题。

提示。 建议定期检查WinRE环境的运行状况,如果不起作用,请使用“如何在Windows中恢复WinRE”一文中描述的方法进行修复。

如果使用启动修复的自动修复没有帮助,请从 Windows 启动/安装磁盘或在 WinRE 环境中启动计算机(修复计算机 -> 疑难解答 -> 高级选项 -> 命令提示符)。启动命令提示符,尝试创建新的 BCD 文件,并从头开始更新 MBR 记录。

[玩转系统] 如何修复 Windows 启动管理器、BCD 和主启动记录 (MBR)

在本例中,我将使用 Windows 10 安装盘。在 BIOS 设置中使用 Windows 设置文件将主引导设备更改为 DVD 驱动器或 USB 闪存驱动器(取决于您要从哪个设备引导计算机)。从 Windows 安装映像启动计算机,然后在语言选择屏幕上按 Shift + F10 。您将看到命令提示符。

尝试使用以下命令自动修复 BCD 文件:

bootrec /RebuildBCD

重新启动计算机并检查 Windows 是否启动(不要忘记在 BIOS 设置中更改启动设备优先级)。如果 Windows 无法启动,请再次从安装介质启动并打开命令提示符。

识别磁盘分区布局和驱动器盘符

非常重要。 下面给出的所有说明均适用于具有 MBR 分区表的标准 BIOS 计算机(或以 UEFI 传统模式启动)。在具有 UEFI 固件的计算机上,您需要使用以下指南来修复 Windows 10 上的 EFI 引导加载程序或恢复已删除的 EFI 分区。

如何了解您的计算机是否带有BIOS或UEFI?最简单的方法是检查安装Windows的磁盘分区表:GPT或MBR。为此,请运行命令:

diskpart

然后列出可用磁盘:

list disk
  • 如果磁盘有星号 (

    *

    )在Gpt列中,则该磁盘上使用GPT分区表。这意味着您拥有一台带有 UEFI 的计算机,并且要恢复 Windows 引导加载程序,您需要使用上面链接中的文章;

  • 如果 GPT 列中没有星号,则磁盘上有 MBR 分区表,您可以继续按照本指南进行操作。

[玩转系统] 如何修复 Windows 启动管理器、BCD 和主启动记录 (MBR)

接下来,您需要识别计算机上的本地驱动器和卷(分配给它们的驱动器号很可能与您在 Windows 中工作时看到的驱动器号不同)。使用diskpart 更容易做到这一点。运行这些命令:

diskpart
list vol

[玩转系统] 如何修复 Windows 启动管理器、BCD 和主启动记录 (MBR)

您将看到分区列表、分配给它们的驱动器号及其大小。在我们的例子中,计算机上有一个硬盘驱动器,上面有两个卷:

  • 系统保留分区,大小为 500 MB,驱动器号为C:。默认情况下,Windows 启动管理器和 BCD 文件位于这个小服务分区上(了解更多);

  • NTFS 分区,大小为 39 GB,分配字母D:。该分区包含已安装的 Windows、程序和用户数据。

重要。请记住分配的驱动器号,因为稍后将在命令中使用它们。

修复 Windows 10/11 上的主引导记录 (MBR)

您可以使用 bootrec.exe 工具覆盖 MBR 和引导扇区中的数据,并将必要的路径添加到 Windows 引导管理器。

尝试覆盖系统分区的主引导记录(MBR)以与Windows引导加载程序兼容(现有分区表不会被覆盖)。

bootrec.exe /fixmbr

将代码添加到磁盘的引导扇区以加载 bootmgr(Windows 引导管理器)文件:

bootsect.exe /nt60 all /force

如果未找到 bootsect.exe 命令,请尝试指定它的完整路径:

X:\boot\bootsect.exe /nt60 all /force

在继续之前,尝试使用以下命令自动重建 BCD 引导加载程序配置(这对于初学者来说是最简单的方法):

bootrec /FixBoot

- 该命令在系统分区上创建一个新的引导扇区并覆盖 PBR 分区的引导记录。

bootrec /ScanOs

- 扫描所有驱动器并查找启动配置存储中未安装的 Windows 副本
如果扫描成功,系统将提示您将有关找到的 Windows 实例的条目添加到 BCD 配置中:

Scanning all disks for Windows installations.  
Please wait, since this may take a while...  
Successfully scanned Windows installations. 
Total identified Windows installations: 1 [1] D:\Windows 
Add installation to boot list? Yes/No/All:
bootrec /RebuildBcd 

- 重新创建引导加载程序配置存储,将计算机上找到的 Windows 副本添加到 BCD 引导加载程序。

之后,重新启动计算机并检查 Windows 是否正常启动。如果操作系统无法启动,请按照以下说明操作。

[玩转系统] 如何修复 Windows 启动管理器、BCD 和主启动记录 (MBR)

如何从头开始重新创建 Windows 启动配置 (BCD)?

接下来,使用 BCDedit 命令创建一个新的引导配置数据文件(假设您没有 BCD 备份文件)。

接下来的步骤取决于磁盘是否有单独的系统保留分区。运行命令:

diskpart
list vol

检查硬盘上是否有系统保留分区。它可以通过卷标来识别,或者更精确地通过其大小来识别(Windows 10+ 为 500 MB,Windows 8.1 为 350 MB,Windows 7 为 100 MB)。

[玩转系统] 如何修复 Windows 启动管理器、BCD 和主启动记录 (MBR)

  • 如果没有系统保留分区(可能是您不小心删除了它),您可以将Boot Manager文件存储在Windows目录所在的系统驱动器上。要在指定驱动器上创建 Bootmgr 和 BCD 引导加载程序配置文件,请运行以下命令:

    bcdboot C:\Windows /S C:

    应出现一条消息:

    Boot files successfully created.
  • 如果您有系统保留分区,请删除旧的(损坏的)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

为 Windows 启动管理器 (bootmgr) 创建一个条目:

bcdedit.exe /store c:\boot\bcd.tmp /create {bootmgr} /d "Windows Boot Manager"

将设置从 bcd.tmp 导入到您的 BCD:

bcdedit.exe /import c:\boot\bcd.tmp

如果 bcdedit 命令在访问 BCD 文件时返回错误 (

access denied

,

the store import operation has failed

,

the required system device cannot be found, the volume does not contain a recognized file system. please make sure that all required file system drivers are loaded and that the volume is not corrupted

),尝试从中删除隐藏、只读和系统属性:

attrib C:\Boot\BCD -s -h -r

指定 Windows 启动管理器位于系统保留分区(为其分配驱动器号 C:):

bcdedit.exe /set {bootmgr} device partition=c:

配置选择操作系统的超时:

bcdedit.exe /timeout 10

删除临时文件:

del c:\boot\bcd.tmp

[玩转系统] 如何修复 Windows 启动管理器、BCD 和主启动记录 (MBR)

因此,您已经使用引导加载程序设置创建了一个空的 BCD 文件。现在您必须添加有关已安装 Windows 的条目。

在 Windows 10 的 BCD 配置中创建一个新条目:

bcdedit.exe /create /d "Windows 10" /application osloader

该命令将返回此引导加载程序条目的唯一标识符 (GUID)。

The entry {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs} was successfully created.

[玩转系统] 如何修复 Windows 启动管理器、BCD 和主启动记录 (MBR)

指定 bootmgr 默认情况下应使用此条目(超时后,此条目将用于启动 Windows):

bcdedit /default {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs}

现在,您必须在新的引导加载程序条目中指定已安装的 Windows 10 副本的路径。我们之前发现驱动器号D:被分配给WinPE中的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 启动管理器、BCD 和主启动记录 (MBR)

因此,我们完全重新创建了 Windows 10 引导加载程序 (bootmgr) 和 BCD 文件,并覆盖了 MBR 引导扇区。

现在,您需要激活带有 Windows 引导加载程序配置的 bootmgr 和 BCD 文件所在的分区(BIOS 将控制权转移到活动 MBR 分区上的操作系统引导加载程序)。例如,您的计算机上有以下可用分区

  • 卷 0 - 用于启动计算机的安装闪存驱动器(ISO 映像);

  • 第 1 卷 - 系统保留分区(500 MB 大小),包含 Windows bootmgr 和 BCD 文件;

  • 卷 2 - 包含 Windows 系统文件夹的分区(%Windir%、Program Files、Users 等)

[玩转系统] 如何修复 Windows 启动管理器、BCD 和主启动记录 (MBR)

在此示例中,您需要将卷 1 设置为活动分区(在您的情况下,您需要找出分区号)。您可以使用 diskpart 激活分区:

diskpart
list disk
sel disk 0
list vol
select volume 1 

(bootmgr 和 \Boot\BCD 必须在此分区上)

active
exit

检查卷 1 现在是否处于活动状态:

select vol 1
detail partition
(Active: Yes )

[玩转系统] 如何修复 Windows 启动管理器、BCD 和主启动记录 (MBR)

现在您可以重新启动计算机并确保 Windows 正常启动。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯