Windows 7 启动问题 - 可能涉及 BCD

win*_*ter 8 boot windows-7 bcd

首先,感谢阅读本文的人。我感到非常沮丧并担心我的桌面现在绝对无法启动到 Windows 7,这在我成为白痴并使用Boot-Repair(Linux 工具,试图让 Ubuntu 正常工作)之前非常好.) 所以这是发生了什么:

我启动计算机,只要光盘驱动器中没有任何内容,启动顺序无关紧要,然后我得到

Windows 无法启动,哒哒哒,

File: \EFI\Microsoft\Boot\BCD
Status: 0xc000000f
Info: An error occured while attempting to read the boot configuration data.
Run Code Online (Sandbox Code Playgroud)

所以很明显这是一个BCD问题。我拿到了安装光盘并进入命令行尝试查找安装和/或 BCD 文件的任何问题。我发现了一些有趣和令人沮丧的东西......

在系统恢复中,当 Windows 尝试自行修复时,它会说它将修复bootmgr并且fwbootmgr. 然后,它说:

The following startup options will be added:
Name: Win 7 home premium (recovered)
Path: Windows
Run Code Online (Sandbox Code Playgroud)

(这里我们有我以前从未见过的东西......)

Windows device: Partition=\\\?\GLOBALROOT\Device\HarddiskVolume5
Run Code Online (Sandbox Code Playgroud)

此外,它会将当前的 BCD 复制到 \\\?\GLOBALROOT\Device\HarddiskVolume1\EFI\Microsoft\Boot\BCD.Backup.0003

然后我尝试让它做它的事情,它说无法保存启动选项。接下来,它在尝试查找备份时找不到系统映像。

所以我已经进入 cmd 行并开始diskpart,在那里我列出了卷并发现:

  • 第 1 卷是 DELLUTILITY,FAT32,名称为 C:
  • 第二卷是RECOVERY,名字D:
  • 3 是我用来尝试安装 Ubuntu 的一个新分区,称为 E:
  • 4 没有字母命名为ESP,也是FAT32。
  • 然后是第 5 卷,它被标记为 OS 并且还有...没有信???这可能是个问题吗?我可以将它分配给 C:,但是当我重新启动时它不会保留。

我尝试运行bootrec /rebuildbcd,它检测到 Windows 安装\\\?\GLOBALROOT\Device\Windows在那里。它询问我是否要将它添加到启动设备,然后我按y... 然后它说:

The requested system device cannot be identified due to multiple indistinguishable devices potentially matching the identification criteria
Run Code Online (Sandbox Code Playgroud)

在 cmd 行中处理与引导和 BCD 相关的各种不同内容时,会出现此错误。

附加信息:里面C:\Windows\Boot\EFI\没有 BCD。潜在的问题,我想,但我不知道如何到达那里或在哪里找到它......

跑步时bcdboot,我得到

BFSVC: FAiled to create a new system store. Status = [c000003a]
Run Code Online (Sandbox Code Playgroud)

这是我在 Ubuntu 中启动修复的记录。

请,任何帮助将不胜感激。我真的不想擦除我的驱动器。

Ben*_*igt 14

由于多个无法区分的设备可能与识别标准匹配,因此无法识别请求的系统设备

您可能有多个 EFI 系统分区,无论是在同一个驱动器上还是在两个驱动器中的每一个上。与 EFI 本身相比,这让 Windows 修复工具更加困惑。

您可以diskpart在 WinRE 环境中确认这一点(可通过安装或恢复媒体获得),并使用diskpart'sset id=命令更改其中一种类型并使其不再是 EFI 系统分区。之后,修复工具将愉快地处理剩余的 EFI 系统分区。(我建议只更改 EFI 类型的一位十六进制数字,以便以后在需要时轻松放回)

BCD 不应位于 Windows 分区上。它应该存在于 Microsoft 目录下的 EFI 系统分区中,并且某些数据甚至被 EFI 存储在 NVRAM 中。

这是一个来自我的笔记本电脑的实际示例,它是一个混淆 Windows 修复工具的分区方案。出现这种情况是因为笔记本电脑带有一个旋转硬盘,我安装了一个足够大的 mSATA SSD 用作系统分区,然后使用标准的 SSD 分区布局。这样做之后,现在有两个 EFI 系统分区。

Microsoft DiskPart version 6.3.9600

Copyright (C) 1999-2013 Microsoft Corporation.

DISKPART> list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online          465 GB    60 MB        *
  Disk 1    Online          202 GB      0 B        *

DISKPART> select disk 0

Disk 0 is now the selected disk.

DISKPART> list part

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    Recovery           400 MB  1024 KB
  Partition 2    System             200 MB   401 MB
  Partition 3    Reserved           128 MB   661 MB
  Partition 4    Primary            452 GB   789 MB
  Partition 5    Primary             12 GB   453 GB

DISKPART> select part 2

Partition 2 is now the selected partition.

DISKPART> detail part

Partition 2
Type    : c12a7328-f81f-11d2-ba4b-00a0c93ec93b
Hidden  : Yes
Required: No
Attrib  : 0X8000000000000000
Offset in Bytes: 420478976

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
* Volume 3                      FAT32  Partition    200 MB  Healthy    Hidden

DISKPART> select disk 1

Disk 1 is now the selected disk.

DISKPART> list part

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    OEM               6000 MB  1024 KB
  Partition 2    Recovery           300 MB  6001 MB
  Partition 3    System             100 MB  6301 MB
  Partition 4    Reserved           128 MB  6401 MB
  Partition 5    Primary            196 GB  6529 MB

DISKPART> select part 3

Partition 3 is now the selected partition.

DISKPART> detail part

Partition 3
Type    : c12a7328-f81f-11d2-ba4b-00a0c93ec93b
Hidden  : Yes
Required: No
Attrib  : 0000000000000000
Offset in Bytes: 6607077376

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
* Volume 6                      FAT32  Partition    100 MB  Healthy    System
Run Code Online (Sandbox Code Playgroud)

该字符串c12a7328-f81f-11d2-ba4b-00a0c93ec93b肯定地标识了一个 EFI 系统分区。当我想隐藏一个从维修工具,我用select diskselect partition,然后

set id=c12a7328-f81f-11d2-ba4b-00a0c93ec930
Run Code Online (Sandbox Code Playgroud)

请注意,我已将 ID 更改为足以使其有所不同,但对于技术人员来说仍然很明显这是一个 EFI 系统分区。