在 Windows 7 64 位上重新创建 BCD 时出现问题 - 找不到请求的系统设备

Dom*_*chi 75 windows-7 bcdedit

NVIDIA 驱动程序升级使我的 Windows 7 安装崩溃,所以我正在努力消除损坏。

我能做什么:我可以从 USB 驱动器启动 Windows 安装,我可以启动Hiren's Boot CD。虽然自动 Windows 修复失败,但当我从 USB 驱动器启动 Windows 安装时,我可以进入命令提示符,我可以看到我的驱动器和我的所有数据。

我不能做什么:我无法启动到 Windows - 我收到此消息:

Windows failed to start. A recent hardware or software change might be the cause. To fix the problem:
1. Insert Windows CD and run a repair your computer option.
File: /Boot/BCD
Status: 0xc000000f
Info: an error occurred while attempting to read the boot configuration data.
Run Code Online (Sandbox Code Playgroud)

我的 /Boot/BCD 似乎有问题,所以我试图从头开始重新创建它。我已经尝试了此处详述的所有方法(包括失败的 Windows 修复),而我只剩下最后一个(靠近该页面底部)。当我在教程中输入以下命令时:

bcdedit.exe /import c:\boot\bcd.temp
Run Code Online (Sandbox Code Playgroud)

...它失败并出现以下错误:

The store import operation has failed.
The requested system device cannot be found.
Run Code Online (Sandbox Code Playgroud)

许多 Google 结果都说我必须使用 diskpart 将我的分区设置为活动分区,但它已经设置为活动分区。

另外,当我尝试这样做时:

bcdedit /enum
Run Code Online (Sandbox Code Playgroud)

它失败并显示类似消息:

The boot configuration data store could not be opened.
The requested system device cannot be found.
Run Code Online (Sandbox Code Playgroud)

有谁知道该错误消息是什么意思,以及请求的系统设备是什么?

我想避免重新安装 Windows,因为磁盘上的所有文件似乎都很好。

小智 63

与您解决问题时的问题没有直接关系,而是与您的原始描述(特别是“找不到请求的系统设备。”尽管尝试重新创建/重建,但在 BCD 操作中):

如果您从 U 盘启动,并且您的 BIOS 支持给定的 USB 插槽,则可能会发生此错误,但 Windows PE/修复环境不支持!

我花了两天时间来解决这个问题(BCD 商店总是不可用,因为这个“找不到请求的系统设备。”错误,无论我做什么),才发现问题只是USB 插槽 我正在插入可启动的 USB 记忆棒。通过将其插入不同的(USB 2.0 而不是 USB 3.0)插槽,标准修复操作工作正常。

更糟糕的是,我后来发现是插错了插槽,让救援环境尝试自动修复,我把事情搞砸了!


更新:另一位用户(改进型计算机)联系我确认这也发生在他们身上;由于 Windows 7 PE 无法识别他们的所有 USB 插槽,他们最终不得不拔出驱动器并在另一台计算机上执行修复。


更新:我什至很难在笔记本电脑上重新安装 Windows。从这篇文章中我了解到并意识到 Windows 7 PE 无法识别 USB 驱动器。尽管由于某种原因它从 USB 驱动器映像启动,但它无法启动安装过程。经过一整天的努力,我终于用 DVD 尝试了它,它奏效了。我用的是联想W520

  • 很棒的发现。不幸的是,这不是我的情况的解决方案。尝试从以非 UEFI 模式启动的 USB 驱动器修复 UEFI Windows 安装也可能导致此错误。看我的回答:http://superuser.com/a/959489/178217 (7认同)
  • +1 哇,这里也一样!在重新分区变坏后刚刚救了我的命。 (5认同)
  • 在花了 3 个小时尝试调试该错误消息后,我对您表示感谢。说真的,谢谢!我从未想过使用 USB3 插槽会导致这种情况。 (3认同)

小智 56

其他答案对我的情况没有任何帮助,而且我无法从 DVD 加载 Windows RE。希望这个答案陷入我的眼睛。

我尝试了链接指南中的解决方案,但最终没有使用 BCD(实际上我不知道一开始是否存在)。因此,使我免于重新安装整个系统的事情是:

bcdboot.exe C:\Windows /s C:
Run Code Online (Sandbox Code Playgroud)

希望它会帮助某人。


更新:通过一个小的修改,这终于对我有用了。我的问题是这里列出的许多问题的综合问题(从棒启动,拧紧初始工作启动)。

我的问题是 RE 将我的 Windows 驱动器注册为D:\,而它C:\通常是。跑步bcdboot.exe D:\Windows /s C:成功了!

  • 没有其他工作,但这成功了! (3认同)
  • 你是我的英雄。 (3认同)

Dom*_*chi 19

所以,这就是我最终解决它的方法。

我在问题中提到教程的“核大屠杀”一章中那样重新创建 BCD最终奏效了,但有一个小的修改。我在这个线程中得到了这个想法。我收到的消息似乎是告诉我 bcdedit 找不到 BCD 存储。所以,而不是输入这个:

bcdedit /import c:\boot\bcd.temp
Run Code Online (Sandbox Code Playgroud)

...我只需要手动指向商店:

bcdedit /store c:\Boot\BCD /import c:\boot\bcd.temp
Run Code Online (Sandbox Code Playgroud)

教程中的其余命令也需要这样做:

bcdedit /store c:\Boot\BCD <the rest of the command>
Run Code Online (Sandbox Code Playgroud)

通过该修改,教程中的所有命令都按预期工作。当我重新创建 BCD 时,我能够启动我原来的 Windows。

  • 这很奇怪,因为`bcdedit /? store` 说`此选项不能与 /createstore、/import 或 /export 命令一起使用。` 无论如何尝试使用它会导致`商店导入命令无效。` 很高兴它对你有用。 (10认同)
  • Dave 在他的断言中是正确的,即 `/store` 标志不能与 `/import` 标志一起使用 - 只是自己遇到这个问题。解决方案是不创建临时存储和导入,而只是使用 /store 标志为所有命令创建和处理实际存储。我只是通过这种方式来修复我的系统并且它有效。我已经编辑了上面的答案以更正它。 (2认同)

Jan*_*cke 14

当磁盘上的 Windows 安装配置为 UEFI 启动时,会出现同样的问题,但修复过程是通过存储在以非 UEFI(“传统”)模式启动的 USB 驱动器上的命令尝试进行的。

因此,假设您有一个可启动的 Windows 8 安装 USB 驱动器,它无法在 UEFI 模式下启动,而只能在传统模式下启动。有人可能认为可以简单地将 BIOS 设置从 UEFI 引导更改为传统引导。而且,事实上,在这一更改之后,USB 驱动器可以启动,当然可以访问 Windows 命令提示符。但是,在这种情况下,无法“修复”以前在 UEFI 模式下安装和使用的磁盘上的 Windows 安装。

在这种情况下(启动模式“传统”并从 Windows 8 安装 USB 驱动器启动),执行bootrec /rebuildbcd失败并带有The requested system device cannot be found. 并BCDBoot C:\Windows失败了Failure when attempting to copy boot files.

解决办法是

  1. 创建一个合适的 UEFI 可启动 USB 驱动器(例如使用此处描述的Rufus),然后
  2. 将 BIOS 从“传统”引导模式切换回 UEFI 引导模式,然后
  3. 从 USB 驱动器启动

在我的情况下,从那里开始的修复过程是成功的:BCDBoot C:\Windows然后成功了Boot files successfully created.

原来的问题是“错误代码:0xc0000034 -启动配置数据文件缺少所需的信息”,在Windows 8中,为讨论在这里