我有两台经常用于工作的机器。一台是 Windows 7 Pro 64 位,另一台是 Windows 7 Pro 32 位。我工作所需的一两款软件需要在 Windows XP 模式下运行(其中一款无法在 Windows 7 下安装),因此我在 64 位机器上创建了一个 Windows XP Mode 实例,并根据需要进行了设置。然后,我将差异 VHD 移至 32 位机器,并将其指向父 VHD,但无法正常工作。
是否可以在两台独立的机器上使用差异 VHD?
或者我是否需要将我的 VHD 与父 VHD 合并才能在两台机器上运行它?
答案1
本文包含一个有关如何使 Windows XP Mode VHD 更具可移植性的解决方案:
将 VHD 从 Windows Virtual PC(Windows XP 模式)传输/移动到另一台计算机。
解决方案是:
- 彻底关闭虚拟机
- 在虚拟机设置中,单击硬盘 1,然后单击修改。
- 在对话框中,单击“合并”。这会将两个不同的硬盘合并为一个,这样我们就可以将其移动到另一台机器上。您可以选择就地执行此操作,也可以创建一个新文件,后者更可取。
我建议仔细阅读这篇文章和评论。
答案2
我最近才这样做,父 VHD 有一个子 VHD 检查的内部 GUID,这就是它失败的原因。如果您将父 VHD 复制到另一台计算机并覆盖它(您需要取得该文件的所有权,因为默认情况下只有用户 SYSTEM 才有权写入该 VHD),它将正常工作。32 位和 64 位无关紧要,因为这就是我所做的(从 64 位开始复制到 32 位,没有问题)
我遇到的一个问题是,当您切换计算机时,休眠状态确实会崩溃,但虚拟机内的操作系统只是将其视为断电,只要您没有运行任何程序,它就会没事。
更新:如果您在安装时使用本地计算机的网络共享而不是 C:\ 版本,则可以通过网络访问 VM,从而获得加分,以下是我的 VMC 文件的片段
<ide_adapter>
<ide_controller id="0">
<location id="0">
<drive_type type="integer">1</drive_type>
<pathname>
<absolute type="string">\\schamberlain\vm\Windows XP Mode 1.vhd</absolute>
<relative type="string">.\Windows XP Mode 1.vhd</relative>
</pathname>
<undo_pathname>
<absolute type="string">\\schamberlain\vm\VirtualPCUndo_Windows XP Mode 1_0_0_18514606212011.vud</absolute>
<relative type="string">.\VirtualPCUndo_Windows XP Mode 1_0_0_18514606212011.vud</relative>
</undo_pathname>
</location>
</ide_controller>
<ide_controller id="1">
<location id="0">
<drive_type type="integer">2</drive_type>
<pathname>
<absolute type="string">F</absolute>
<relative type="string" />
</pathname>
</location>
</ide_controller>
</ide_adapter>
当我安装它时我将其用作\\schamberlain\vm
我的 VM 目录。