Azure VM 上的 Windows 启动错误0xc0000034

适用于:✔️ Windows VM

原始 KB 数: 4010140

本文提供了 Windows VM 无法从错误代码0xc0000034开始的问题的解决方案。

现象

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

文件:\Boot\BCD
错误代码:0xc0000034
信息:需要在安装介质上使用恢复工具。 如果没有安装媒体,请与系统管理员或电脑制造商联系。

原因

BCD 损坏不允许启动分区查找 \Windows 文件夹的位置。

解决方法

提示

如果 VM 有最近的备份,可以尝试 从备份 还原 VM 以修复启动问题。

步骤 1:创建修复/救援 VM

强烈建议在 Microsoft Azure 中创建嵌套虚拟化环境,并在 Hyper-V 主机(修复 VM)上装载有故障 VM 的磁盘,以解决此问题。 有关详细信息,请参阅 在 Azure 中使用嵌套虚拟化排查 Azure VM 故障。

(可选)还可以通过将故障 VM 的 OS 磁盘作为数据磁盘附加到新 VM 来创建救援 VM。 为此,请按照以下步骤操作:

  1. 删除有故障的 VM。 执行此操作时,请确保选择“ 保留磁盘 ”选项。

  2. 将 OS 磁盘作为数据磁盘附加到新的 VM。 有关详细信息,请参阅如何在 Azure 门户中将数据磁盘附加到 Windows VM

  3. 连接到 VM。 转到“计算机管理”>“磁盘管理”。 确保 OS 磁盘处于联机状态,并且其分区已分配驱动器号。

  4. 标识启动分区和 Windows 分区。 如果 OS 磁盘只包含一个分区,此分区即为启动分区和 Windows 分区。

    如果 OS 磁盘包含多个分区,可以通过查看分区中的文件夹来标识它们:

    • Windows 分区包含一个名为“Windows”的文件夹,此分区大于其他分区。
    • 启动分区包含名为“Boot”的文件夹。默认情况下,此文件夹处于隐藏状态。 若要查看该文件夹,必须显示已隐藏的文件和文件夹,并禁用“隐藏受保护的操作系统文件(推荐)”选项。 启动分区通常为 300 MB~500 MB。

步骤 2:修复启动配置数据

  1. 在修复/救援 VM 上,以管理员身份运行以下命令行,然后记录 Windows 启动加载程序(而不是 Windows 启动管理器)的标识符。 标识符是由 32 个字符构成的代码,类似于:xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。 下一步骤要用到此标识符。

    bcdedit /store <Boot partition>:\boot\bcd /enum /v
    
  2. 运行以下命令行修复启动配置数据。 必须将以下占位符替换为实际值:

    • <Windows 分区> 是包含名为“Windows”的文件夹的分区。
    • <启动分区> 是包含名为“Boot”的隐藏系统文件夹的分区。
    • <标识符> 是上一步中找到的 Windows 启动加载程序标识符。 例如:{9f25ee7a-e7b7-11db-94b5-f7e662935912}
    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-us
    
    bcdedit /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. 从修复/救援 VM 中分离修复的 OS 磁盘。 然后,从 OS 磁盘创建新的 VM。

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区