我解决了这个问题,并认为我会分享我的解决方案:
通过将扇区与工作 VM 进行比较,我发现需要进行以下更改:
扇区 63 偏移量 0x1A 为 0xF0,需要将此字节更改为 0xFF。
去做这个:
- 将非启动驱动器映像附加为工作 VM 上的第二个驱动器
- 启动正在工作的虚拟机,并安装一个低级扇区编辑器(谷歌!)
- 运行此编辑器,并查看非工作驱动器映像上的扇区 63。请注意,根据您选择磁盘的方式,这是扇区 0 或扇区 63 它是磁盘上的同一物理扇区
- 确认字节 0xF0 位于偏移量 0x1A (26),并将其更改为 0xFF 并写入扇区
- 关闭 VM,然后在设置中,从步骤 1 中分离驱动器映像
- 磁盘映像在一定程度上得到了修复。它现在可以在恢复控制台模式下启动
- 注意:不要运行 fixboot 或 fixmbr
- 现在从系统 CD 启动 VM(在我的情况下为 Win XP),然后进行安装修复
- 安装任何服务包或系统更新
- 虚拟机现在已启动 - 我的旧 WInXP PC 的(几乎)完全相同的副本!
我知道这看起来很奇怪,但这对我有用。
出于兴趣,我是如何发现这一点的?我在损坏的 VM 磁盘映像的副本上创建了全新安装,然后当它工作时,我对 MBR 和引导扇区进行了十六进制转储。我将这些与坏的虚拟机进行了比较,并一一解决了差异,直到找到了这个神奇的字节。为了验证,我从原始图像再次执行了整个过程,并再次验证了 fixmbr 和 fixboot 使问题变得更糟,并且不是修复所必需的。
如果您遇到同样的问题,希望这将为您节省一些时间。