适用于:✔️ 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。 为此,请按照以下步骤操作:
删除有故障的 VM。 执行此操作时,请确保选择“ 保留磁盘 ”选项。
将 OS 磁盘作为数据磁盘附加到新的 VM。 有关详细信息,请参阅如何在 Azure 门户中将数据磁盘附加到 Windows VM。
连接到 VM。 转到“计算机管理”>“磁盘管理”。 确保 OS 磁盘处于联机状态,并且其分区已分配驱动器号。
标识启动分区和 Windows 分区。 如果 OS 磁盘只包含一个分区,此分区即为启动分区和 Windows 分区。
如果 OS 磁盘包含多个分区,可以通过查看分区中的文件夹来标识它们:
- Windows 分区包含一个名为“Windows”的文件夹,此分区大于其他分区。
- 启动分区包含名为“Boot”的文件夹。默认情况下,此文件夹处于隐藏状态。 若要查看该文件夹,必须显示已隐藏的文件和文件夹,并禁用“隐藏受保护的操作系统文件(推荐)”选项。 启动分区通常为 300 MB~500 MB。
步骤 2:修复启动配置数据
在修复/救援 VM 上,以管理员身份运行以下命令行,然后记录 Windows 启动加载程序(而不是 Windows 启动管理器)的标识符。 标识符是由 32 个字符构成的代码,类似于:xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。 下一步骤要用到此标识符。
bcdedit /store <Boot partition>:\boot\bcd /enum /v
运行以下命令行修复启动配置数据。 必须将以下占位符替换为实际值:
- <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
从修复/救援 VM 中分离修复的 OS 磁盘。 然后,从 OS 磁盘创建新的 VM。
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。