VirtualBox:将Win XP迁移到Virtualbox后出现“发生磁盘读取错误”

时间:2013-06-10 09:25:01

标签: windows virtualbox boot mbr

我尝试按照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,这似乎使情况变得更糟(屏幕上的一些字符已损坏,并显示相同的错误消息)。

如何启动此VM?

1 个答案:

答案 0 :(得分:0)

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

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

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

要做到这一点:

  1. 将非启动驱动器映像作为第二个驱动器附加到正在运行的VM上
  2. 启动正在运行的VM,并安装一个低级扇区编辑器(Google!)
  3. 运行此编辑器,查看非工作驱动器映像上的扇区63。 请注意,根据您选择磁盘的方式,这可以是扇区0或扇区63 它与磁盘上的物理扇区相同
  4. 确认字节0xF0位于偏移量0x1A(26),并将其更改为0xFF并写入扇区
  5. 关闭VM,然后在设置中,从步骤1中分离驱动器映像
  6. 磁盘图像已经愈合 - 在一定程度上。它现在可以在恢复控制台模式下启动
  7. 注意:请勿运行fixboot或fixmbr
  8. 现在从系统CD启动VM(在我的情况下是Win XP),并进行安装修复
  9. 安装所有Service Pack或系统更新
  10. 虚拟机现已启动 - 我的旧WInXP PC的一个(几乎)精确复制品!
  11. 我知道这看起来很奇怪,但这对我有用。

    为了兴趣,我是怎么发现的?我在坏VM磁盘映像的副本上创建了一个全新的安装,然后在它工作时我采用了MBR和引导扇区的十六进制转储。我将这些与坏VM进行了比较,并逐一解决了差异,直到找到了这个神奇的字节。为了验证,我从原始映像再次完成了整个过程,并再次验证了fixmbr和fixboot使问题变得更糟,并且不需要修复。

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