硬盘增大后,运行 Windows XP 的虚拟机无法启动

硬盘增大后,运行 Windows XP 的虚拟机无法启动

我最初认为这是一个常见问题。我每天都使用 Windows XP Professional VM 进行工作。空间不足,我选择使用 vmware-vdiskmanager 将磁盘从 40GB 扩展到 100GB。我遵循了一些普遍接受的做法,将 vmdk 连接到另一个 VM,以便使用 diskpart 对其进行扩展。扩展成功,我正确关闭了 VM,断开了 vmdk 的连接,并将其重新连接到正确的位置。

启动虚拟机后,我在 POST 后看到了臭名昭著的闪烁光标。按 F8 没有任何反应。我以前见过这种情况,所以我弹出 Windows XP CD,进入恢复模式,运行 bootcfg /rebuild、fixboot 和 fixmbr。但现在问题已经发生了变化:光标仍然在空白屏幕上闪烁,但现在它在整个屏幕上喷出空白字符(导致光标到处乱跳。)

我尝试使用 XP CD 修复安装;同样的启动时间垃圾邮件。我尝试了 Ubuntu 提供的备用 MBR;同样的事情(在 MBR 成功链式加载 Windows 的引导扇区之后,证明 MBR 没有问题。)

我甚至尝试在另一个 Windows 旁边安装一份新的 Windows 副本,看看是否可行,但是不行。

我查看了 BIOS 并恢复了默认设置。仍然没有反应。我将“大磁盘访问模式”设置为“其他”而不是“DOS”,因为我确实增大了磁盘容量。但这也没用。

我还应该看看什么?我已经束手无策了。我以为我理解了 x86 启动的奥秘,但很明显我完全错过了一些东西。我还差几步就可以转储和反汇编启动扇区,看看它从磁盘上读取了什么。

答案1

我回答了我自己的问题。

显然,磁盘的几何形状在扩展期间发生了变化,并且由于某种原因,它没有在引导扇区中更新(可能是因为第二台虚拟机没有将其视为可引导磁盘,因此没有理由更新引导扇区?)

所以我用测试磁盘重写“BPB”(引导扇区的一部分,用于在引导时描述卷,以便可以跳转到硬盘的正确部分)并重新启动。但这仍然不起作用,目录列表在恢复控制台中无法访问。因此又进行了一轮 fixboot 和 fixmbr。BAM,它终于又能正常工作了。

相关内容