如何将现有 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,但尚未经过测试。
- 在现有 Windows 机器上运行上面提到的
MergeIDE
工具。 - 关闭 Windows 机器。
- 从 Windows 机器中取出硬盘,或者使用低级镜像工具(如
dd
)将数据复制到 USB 驱动器或其他可移动介质。如果制作镜像,请勿仅对分区进行镜像,这不会成功! - 使用 VBoxManage convertfromraw 转换镜像或从您从 Windows 机器中取出的硬盘复制。
- 如果您是从镜像转换,语法是
VBoxManage convertfromraw ImageFile.dd OutputFile.vdi
- 如果您是从硬盘转换,您需要使用
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
以列出可用磁盘并在 总大小: 下显示字节数。
- 如果您是从镜像转换,语法是
- 然后使用 VirtualBox 中的介质管理器添加新转换的驱动器。
- 创建一个新的虚拟机,使用您刚刚通过介质管理器添加的驱动器。
- 创建后,进入并打开“启用 I/O APIC”,选择您想要的处理器数量等。
- 尝试启动新的虚拟机。它可能“直接工作”,或者您可能会遇到蓝屏死机(BSOD)。如果它直接工作,安装增强功能就完成了。根据您的许可证,您可能需要重新激活 Windows。
- 如果不成功并出现蓝屏死机(BSOD)。关闭虚拟机并从 Windows CD 启动。一直进行到选择分区,选择现有分区,然后选择“修复”。这基本上会重新安装 Windows 并为其新硬件(虚拟硬件)进行配置。
- 重新安装补丁(服务包)和更新。
- 安装增强功能
附件 (1)
-
MergeIDE.zip (2.5 KB ) - 由 添加 18 年前。
!来自 c't 的 MergeIDE 工具
下载所有附件为: .zip