Windows 启动错误 0xc0000034 在 Azure VM

适用于: Virtual Machine running Windows

症状


Windows 不能启动。相反,系统将生成一个类似于以下内容的错误:

文件: \Boot\BCDError 代码: 0xc0000034Info: 可能需要在安装介质上使用恢复工具。如果您没有任何安装介质,请联系系统管理员或计算机制造商联系。

原因


没有不允许启动分区来查找 \Windows 文件夹所在的 BCD 损坏。

如何解决


若要解决此问题,请按照下列步骤。

步骤 1: 附加虚拟机的操作系统的磁盘到另一个虚拟机作为数据磁盘

  1. 删除虚拟机 (VM)。请确保您选择磁盘保留选项,当您这样做。
  2. 将操作系统磁盘数据磁盘附加到另一个虚拟机 (VM 故障排除)。有关详细信息,请参阅如何将附加到 Windows Azure 门户中虚拟机的数据磁盘
  3. 连接到故障诊断的 VM。打开计算机管理>磁盘管理。确保操作系统磁盘处于联机状态并且其分区已分配的驱动器号。
  4. 启动分区和 Windows 分区标识。如果操作系统磁盘上只有一个分区,该分区是引导分区Windows 分区。如果 OS 磁盘包含多个分区,您可以通过在分区中查看文件夹识别它们: Windows 分区包含一个名为"窗口,"并且该分区大于其他人。启动分区包含一个名为"启动"。默认情况下,此文件夹是隐藏的。若要查看此文件夹,必须显示隐藏的文件和文件夹,并禁用隐藏受保护的操作系统文件 (推荐)选项。启动分区通常是 300 MB ~ 500 MB。  

步骤 2: 修复引导配置数据

  1. 作为管理员,运行下面的命令行,然后记录 Windows 启动加载程序不 Windows 启动管理器的标识符。该标识符是 32 个字符的代码,如下所示: xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。下一步中,您将使用此标识符。
    bcdedit /store <Boot partition>:\boot\bcd /enum
     
  2. 通过运行以下命令行来修复引导配置数据。您必须按实际值替换这些占位符:< Windows 分区 >是分区,包含一个名为"窗口"。< 引导分区 >是分区包含一个隐藏的系统文件夹,名为"启动"。< 标识符 >是您在上一步中找到的 Windows 引导加载程序的标识符。
    bcdedit /store <Boot partition>:\boot\bcd /create {bootmgr}bcdedit /store <Boot partition>:\boot\bcd /set {bootmgr} description "Windows Boot Manager"bcdedit /store <Boot partition>:\boot\bcd /set {bootmgr} locale en-usbcdedit /store <Boot partition>:\boot\bcd /set {bootmgr} inherit {globalsettings}bcdedit /store <Boot partition>:\boot\bcd /set {bootmgr} displayorder <Identifier>bcdedit /store <Boot partition>:\boot\bcd /set {bootmgr} timeout 30
  3. 分离从故障排除虚拟机修复后的操作系统磁盘。然后, 创建新的虚拟机从 OS 磁盘