启动错误 - 这不是可启动磁盘
本文提供了解决磁盘无法在 Azure 虚拟机 (VM) 中启动的问题的步骤。
症状
使用启动诊断查看 VM 的屏幕截图时,会看到屏幕截图显示一条提示,并显示消息“这不是可启动磁盘。 请插入可启动软盘,然后按任意键重试...。
图 1
原因
此错误消息表示 OS 启动进程找不到活动系统分区。 此错误还可能意味着启动配置数据 (BCD) 存储中缺少引用,从而阻止它找到 Windows 分区。
解决方案
进程概述
提示
如果最近备份了 VM,可以尝试 从备份还原 VM 以修复启动问题。
创建和访问修复 VM。
将“分区状态”设置为“活动”。
修复磁盘分区。
建议:在重新生成 VM 之前,请启用串行控制台和内存转储收集。
重新生成原始 VM。
注意
遇到此启动错误时,来宾 OS 无法正常运行。 你将在脱机模式下进行故障排除以解决此问题。
创建和访问修复 VM
- 使用 VM 修复命令 的步骤 1-3 准备修复 VM。
- 使用远程桌面连接连接到修复 VM。
将“分区状态”设置为“活动”
第 1 代 VM 应首先验证保存 BCD 存储的 OS 分区是否标记为 活动。 如果有第 2 代 VM,请跳到 修复磁盘分区,因为 状态 标志在以后的一代中已弃用。
(cmd.exe) 打开提升的命令提示符。
输入 diskpart 以启动 DISKPART 工具。
输入 列表磁盘 以列出系统上的磁盘并标识附加的 OS VHD。
找到附加的 OS VHD 后,输入 sel disk # 以选择磁盘。 请参阅图 2,其中磁盘 1 是附加的 OS VHD。
图 2
选择磁盘后,输入 列表分区 以列出所选磁盘的分区。
标识启动分区后,输入 sel partition # 以选择分区。 通常,启动分区的大小约为 350 MB。 请参阅图 3,其中分区 1 是启动分区。
图 3
输入“详细信息分区”以检查分区的状态。 请参阅图 4,其中分区为 “活动:否”,或图 5,其中分区为“活动:是”。
图 4
图 5
如果分区为 “非活动”,请输入 “活动 ”以更改 “活动” 标志。
通过键入 详细信息分区检查状态更改是否已正确完成。
图 6
输入 exit 以关闭 DISKPART 工具并保存配置更改。
修复磁盘分区
(cmd.exe) 打开提升的命令提示符。
使用以下命令在磁盘上运行 CHKDSK () 并修复错误:
chkdsk <DRIVE LETTER>: /f
添加“/f”命令选项将修复磁盘上的所有错误。 请确保将驱动器号>替换为<附加的 OS VHD 的字母。
建议:在重新生成 VM 之前,请启用串行控制台和内存转储收集
若要启用内存转储收集和串行控制台,请运行以下脚本:
打开提升的命令提示符会话 (以管理员身份运行) 。
运行以下命令:
启用串行控制台
bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /ems {<BOOT LOADER IDENTIFIER>} ON
bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /emssettings EMSPORT:1 EMSBAUDRATE:115200
验证 OS 磁盘上的可用空间是否与 VM 上的内存大小 (RAM) 相同。
如果 OS 磁盘上没有足够的空间,则应更改将创建内存转储文件的位置,并将其引用为附加到 VM 且具有足够可用空间的任何数据磁盘。 若要更改位置,请将“%SystemRoot%”替换为驱动器号 (例如以下命令中数据磁盘的“F:”) 。
启用 OS 转储的建议配置
加载损坏的 OS 磁盘:
REG LOAD HKLM\BROKENSYSTEM <VOLUME LETTER OF BROKEN OS DISK>:\windows\system32\config\SYSTEM
在 ControlSet001 上启用:
REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f
REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f
REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
在 ControlSet002 上启用:
REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f
REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f
REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
卸载损坏的 OS 磁盘:
REG UNLOAD HKLM\BROKENSYSTEM
重新生成原始 VM
使用 VM 修复命令的步骤 5 重新组合 VM。
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 还可以向 Azure 反馈社区提交产品反馈。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈