VirtualBox

如何将现有 Windows 安装迁移到 VirtualBox

免责声明:不支持将 Windows 客户机从物理主机迁移到 VirtualBox 虚拟机。本说明按原样提供,希望能有所帮助。

Windows 安装与 Linux 不同,无法轻松地从一个硬件移动到另一个硬件。这不仅是由于微软的激活机制,还因为安装的内核和驱动程序依赖于实际硬件。

本文档解释了常见陷阱以及如何解决这些问题。我们假设迁移源是物理 Windows 安装或 VMware 镜像。还假设已存在合适的虚拟磁盘镜像(对于 VirtualBox >= 1.4,可以是 VDI 或 VMDK)。

下面有分步说明

HAL

Windows 内核中依赖于硬件的部分被称为“硬件抽象层”(HAL)。虽然特定于硬件供应商的 HAL 已经非常罕见,但微软仍然发布了许多 HAL。以下是最常见的 HAL(更多信息,请参阅此文章:http://support.microsoft.com/kb/309283

  • Hal.dll (标准 PC)
  • Halacpi.dll (ACPI HAL)
  • Halaacpi.dll (带 I/O APIC 的 ACPI HAL)

如果您在 VirtualBox 中使用默认设置执行 Windows 安装,将选择 Halacpi.dll,因为 VirtualBox 默认启用 ACPI 但默认禁用 I/O APIC。现代物理 PC 或 VMware 上的标准安装通常会选择 Halaacpi.dll,因为现在大多数系统都有 I/O APIC,并且 VMware 选择默认将其虚拟化(VirtualBox 禁用 I/O APIC 是因为其虚拟化成本高于标准 PIC)。因此,第一步,您必须在 VirtualBox 中启用 I/O APIC 支持或替换 HAL。替换 HAL 可以通过从 Windows CD 启动虚拟机并执行修复安装来完成。

硬盘支持

出于我们不了解的原因,Windows 会记住它安装在哪个 IDE/ATA 控制器上,并且在控制器更改时无法启动。这非常烦人,因为基本上所有迁移的镜像都会遇到这个问题。这里的解决方案是对 Windows 注册表进行多次修改。这可以在安装仍在原始系统上运行时完成,因为它所做的只是放宽 IDE 检查。因此,修改后安装将继续在原始系统上工作。最简单的方法是使用德国 c't 计算机杂志的优秀 MergeIDE 工具。或者,可以按照微软知识库文章中的说明进行操作:http://support.microsoft.com/kb/314082

agp440.sys / intelppm.sys

有一些 Windows 设备驱动程序在 VirtualBox 的硬件上表现不佳。许多物理 PC 系统(和 VMware)都有 AGP 图形总线,这将导致安装 agp440.sys。VirtualBox 的虚拟显卡在 PCI 总线上,该驱动程序将导致系统崩溃。最正确的方法是从 Windows 安装光盘启动恢复控制台并禁用此服务。但是,也可以直接重命名/删除 C:\Windows\SYSTEM32\drivers 目录中的 agp440.sys。这里有一篇包含更多信息的知识库文章:http://support.microsoft.com/kb/324764

intelppm.sys 也可能存在类似问题,它也可能导致客户操作系统挂起。

适用于 Windows XP 的分步说明

这也应该适用于 Win2k、Vista 和 Windows 7,但尚未经过测试。

  1. 在现有 Windows 机器上运行上面提到的 MergeIDE 工具。
  2. 关闭 Windows 机器。
  3. 从 Windows 机器中取出硬盘,或者使用低级镜像工具(如 dd)将数据复制到 USB 驱动器或其他可移动介质。如果制作镜像,请勿仅对分区进行镜像,这不会成功!
  4. 使用 VBoxManage convertfromraw 转换镜像或从您从 Windows 机器中取出的硬盘复制。
    1. 如果您是从镜像转换,语法是
      VBoxManage convertfromraw ImageFile.dd OutputFile.vdi
      
    2. 如果您是从硬盘转换,您需要使用
      cat /dev/sdg | VBoxManage convertfromraw stdin OutPutFile.vdi NUMBEROFBYTES
      
      注意,如果您在 Linux 中使用 fdisk -l,您可以查看每个驱动器有多少字节来提供此参数。示例
      # fdisk -l /dev/sda
      Disk /dev/sda: 1500.3 GB, 1500301910016 bytes
      
      要在 Mac OS X 主机上确定相同信息,您可以执行
      # diskutil list
      # diskutil info /dev/disk0
      
      以列出可用磁盘并在 总大小: 下显示字节数。
  5. 然后使用 VirtualBox 中的介质管理器添加新转换的驱动器。
  6. 创建一个新的虚拟机,使用您刚刚通过介质管理器添加的驱动器。
  7. 创建后,进入并打开“启用 I/O APIC”,选择您想要的处理器数量等。
  8. 尝试启动新的虚拟机。它可能“直接工作”,或者您可能会遇到蓝屏死机(BSOD)。如果它直接工作,安装增强功能就完成了。根据您的许可证,您可能需要重新激活 Windows。
  9. 如果不成功并出现蓝屏死机(BSOD)。关闭虚拟机并从 Windows CD 启动。一直进行到选择分区,选择现有分区,然后选择“修复”。这基本上会重新安装 Windows 并为其新硬件(虚拟硬件)进行配置。
  10. 重新安装补丁(服务包)和更新。
  11. 安装增强功能
上次修改 7 年前 上次修改于 2018/06/07 下午 03:18:58

附件 (1)

下载所有附件为: .zip

注意: 查看 TracWiki 获取使用维基的帮助。

© 2025 Oracle 支持 隐私 / 请勿出售我的信息 使用条款 商标政策 自动化访问礼仪