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

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

NVIDIA 驱动程序升级导致我的 Windows 7 安装崩溃,因此我正在努力消除损害。

我可以做什么:我可以从 USB 驱动器启动 Windows 安装,也可以启动Hiren 的启动 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.

我的 /Boot/BCD 似乎出了问题,所以我想从头开始重新创建它。我试过了所有详细介绍的方法这里(包括失败的 Windows 修复),我只剩下最后一个(靠近该页面的底部)。当我按照教程输入以下命令时:

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

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

The store import operation has failed.
The requested system device cannot be found.

许多 Google 搜索结果都显示我必须使用 diskpart 将我的分区设置为活动分区,但是它已被设置为活动分区。

另外,当我尝试这个时:

bcdedit /enum

它失败并显示类似消息:

The boot configuration data store could not be opened.
The requested system device cannot be found.

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

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

答案1

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

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

我花了两天的时间绞尽脑汁解决这个问题(无论我做什么,BCD 存储总是不可用,并出现“无法找到请求的系统设备”错误),最后才发现问题只是我插入可启动 USB 棒的 USB 插槽。通过将其插入不同的插槽(USB 2.0 而不是 USB 3.0),标准修复操作可以正常工作。

更糟糕的是,我后来发现,正是由于插入了错误的插槽并允许救援环境尝试自动修复,我才把事情搞砸了!


更新:另一位用户(improvedcomputers)联系我,确认他们也遇到了同样的问题;由于Windows 7 PE无法识别他们所有的USB插槽,所以他们最终不得不拔出驱动器并在另一台计算机上进行修复。


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

答案2

其他答案对我的情况没有帮助,我无法从 DVD 加载 Windows RE。希望这个答案困在我的眼里。

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

bcdboot.exe C:\Windows /s C:

希望它能够对某人有所帮助。


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

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

答案3

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

按照“核浩劫”一章重新创建 BCD我的问题中提到的教程最后成功了,但有一个小修改。我的想法是此主题。我收到的消息似乎告诉我 bcdedit 无法找到 BCD 存储。因此,不要输入以下内容:

bcdedit /import c:\boot\bcd.temp

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

bcdedit /store c:\Boot\BCD /import c:\boot\bcd.temp

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

bcdedit /store c:\Boot\BCD <the rest of the command>

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

答案4

我对这个问题有不同的原因和解决方案。就我而言,问题是我使用 Windows 7 Enterprise ISO 通过 Unetbootin 创建了可启动的 USB 闪存驱动器,具体说明如下:http://www.webupd8.org/2010/10/create-bootable-windows-7-usb-drive.html。基本上,说明书上说要用 ntfs 格式化 USB 驱动器,并使用 Unetbootin v494(已过时),它仍然具有允许您使用 ntfs 格式化的驱动器的功能(该功能在后来的版本中消失了)。

我脑后有些刺痛的感觉告诉我非标准程序会引起头痛,但我忽略了它。

经过一个小时的论坛搜索后,有人在某处提到“不要使用可启动的 USB 驱动器,因为恢复环境将看到该分区表,而不是硬盘上的真实分区表。”或类似的东西。

找到我的 USB CD-ROM 驱动器,将真正的磁盘放入其中,然后运行bootrec /fixmbr、,bootrec /fixboot没有bootrec /rebuildbcd任何问题。然后 Windows 启动正常,无论是从 grub 启动还是从 bios 启动列表中选择辅助硬盘驱动器时。

相关内容