0

我尝试按照https://www.virtualbox.org/wiki/Migrate_Windows将旧的 Win XP Compaq 桌面迁移到 Ubuntu (12.04.1) 下的 VirtualBox (4.2.12)

在 createfromraw 步骤之后,我创建了虚拟机,并尝试启动。启动时立即显示以下消息:

A disk read error occurred
Press Ctrl Alt Del to restart

我曾尝试从故障恢复控制台使用 FIXBMR 和 FIXBOOT,但这似乎使情况变得更糟(屏幕上的一些字符已损坏,并出现相同的错误消息)。

我怎样才能让这个虚拟机启动?

4

1 回答 1

0

我解决了这个问题,并认为我会分享我的解决方案:

通过将扇区与工作 VM 进行比较,我发现需要进行以下更改:

扇区 63 偏移量 0x1A 为 0xF0,需要将此字节更改为 0xFF。

去做这个:

  1. 将非启动驱动器映像附加为工作 VM 上的第二个驱动器
  2. 启动正在工作的虚拟机,并安装一个低级扇区编辑器(谷歌!)
  3. 运行此编辑器,并查看非工作驱动器映像上的扇区 63。请注意,根据您选择磁盘的方式,这是扇区 0 或扇区 63 它是磁盘上的同一物理扇区
  4. 确认字节 0xF0 位于偏移量 0x1A (26),并将其更改为 0xFF 并写入扇区
  5. 关闭 VM,然后在设置中,从步骤 1 中分离驱动器映像
  6. 磁盘映像在一定程度上得到了修复。它现在可以在恢复控制台模式下启动
  7. 注意:不要运行 fixboot 或 fixmbr
  8. 现在从系统 CD 启动 VM(在我的情况下为 Win XP),然后进行安装修复
  9. 安装任何服务包或系统更新
  10. 虚拟机现在已启动 - 我的旧 WInXP PC 的(几乎)完全相同的副本!

我知道这看起来很奇怪,但这对我有用。

出于兴趣,我是如何发现这一点的?我在损坏的 VM 磁盘映像的副本上创建了全新安装,然后当它工作时,我对 MBR 和引导扇区进行了十六进制转储。我将这些与坏的虚拟机进行了比较,并一一解决了差异,直到找到了这个神奇的字节。为了验证,我从原始图像再次执行了整个过程,并再次验证了 fixmbr 和 fixboot 使问题变得更糟,并且不是修复所必需的。

如果您遇到同样的问题,希望这将为您节省一些时间。

于 2013-07-05T16:49:00.347 回答