你是否有一些物理的 Windows 设备,想要将其虚拟化并摆脱笨重,但却不知道如何最好地处理?亲爱的读者,不再疑惑。在本文中,你将更多地了解由 Sysinternals 提供的 Disk2vhd:Sysinternals:一种经过验证、测试且免费的方法,可将物理机器或磁盘转换为虚拟等效物。
在本文中,你将通过创建磁盘的虚拟副本来转换一个物理的 Windows 系统。渴望尝试虚拟化吗?赶紧开始吧!
先决条件
本教程将进行实际演示。确保你具备以下条件:
- A Physical Windows device. The examples will run on a Windows 10 device.
Disk2vhd 已记录可在 Windows 11 上运行。如果你的物理磁盘包含可运行的 Windows 11 安装,本教程仍然适用。
- 足够的空闲磁盘空间来保存要转换的磁盘。Disk2vhd 将帮助你准确确定所需的空间。最少需要的空间与物理磁盘上使用的空间一样多。
- 任何运行中的Hypervisor。在示例中使用的是Oracle VirtualBox v6.1.22。其他Hypervisor,如Hyper-V或KVM,也可以很好地满足您的需求。
A user account with administrative access.
安装和运行Disk2vhd
您的第一步是安装Disk2vhd(如果尚未安装)。为了进行接下来的任务,您将需要一个具有管理员访问权限和对Windows设备的物理访问权限的用户。您要转换的磁盘需要连接并在线。
前往微软的Sysinternals页面并下载Disk2vhd的副本。撰写本文时,可用的最新版本,也是示例所基于的版本,是版本2.02。下载将是一个包含程序各个版本的zip存档。
右键单击适用于您设备的最合适版本,然后选择以管理员身份运行如下所示。

将物理磁盘转换为虚拟磁盘
现在您已经有了一个可用且正在运行的Disk2vhd副本,是时候将您的Windows 10引导磁盘虚拟化了。所选磁盘将是用作示例的计算机上的C:\驱动器。
为简洁起见,本文将仅限于将引导磁盘(即具有Windows工作副本的磁盘)转换为虚拟硬盘。但Disk2vhd并不仅限于转换引导磁盘。
您的第一个任务是选择要创建的磁盘的正确标志:
- 如果您打算使磁盘与已停用的Microsoft Virtual PC兼容,请勾选准备用于在虚拟PC中使用标志。
- 如果您希望生成的虚拟磁盘为vhdx格式而不是常规vhd文件,请勾选使用Vhdx。
VHDX是VHD格式的改进版本,但与VHD相比,在供应商支持方面存在一定限制。与VHD相比,VHDX具有更好的性能和更高的最大磁盘大小(64TB对比2TB)。由于这两种格式最终都来自Microsoft,因此在使用Hyper-V作为hypervisor的情况下,推荐使用VHDX。而在跨不同hypervisor的兼容性方面,则可以使用VHD。
- 如果你正在处理运行中的系统并且不想干扰系统的状态,请检查使用卷影副本。此选项旨在使您能够更顺利地进行转换过程。您无需担心文件正在使用的弹出窗口或系统状态的不一致。如果您不选中此选项,则会直接从活动卷中复制文件,而不是从卷影副本中复制文件。
卷影副本实质上是卷的时间点只读快照,可用于一致的磁盘复制操作。依赖于该技术的程序可以在应用程序正在使用时安全地复制文件。
如果您在跟进操作,请确保您的选项看起来像下面的截图。

您未选择VHDX,因为VirtualBox无法完全处理VHDX磁盘。为了避免通过尝试从一种磁盘格式转换为另一种而使教程过于庞大,输出格式被设置为VHD。
2. 现在是选择输出文件的时候。选择输出VHD文件的名称,包括其完整路径和扩展名。例如,输出文件将与设备名称相同,如下所示。

3. 您现在将选择要虚拟化的卷。本教程中的磁盘是基于主引导记录(MBR)的,因此您选择唯一需要的卷,如下所示。确保在目标驱动器上至少保留与所需空间列指定的一样多的空间。
对于GUID分区表(GPT)分区的磁盘,您还必须复制EFI系统分区(ESP)卷,以及操作系统(OS)卷。ESP卷包含系统需要定位和启动操作系统所需的引导加载程序文件。

4. 一切准备就绪后,您可以开始转换过程!请注意,由于Disk2vhd对正在运行的系统造成的负载较大,不建议在已知负载较高的系统上运行它。单击创建开始转换并等待过程完成。

5. 完成过程后,您应该在指定的文件夹中找到一个VHD文件,如下面的截图所示。

请确保不要直接将生成的VHD挂载到物理机上。Windows使用签名来识别每个连接的磁盘。为了避免磁盘签名冲突,当您将虚拟磁盘挂载到与物理磁盘相同的机器上时,Windows将更改虚拟磁盘的签名。如果您按照本教程创建新的虚拟机,新的虚拟机可能无法启动。
通过命令行转换磁盘
对于那些需要用于自动化或远程使用的人来说,Disk2vhd还具有命令行选项。语法如下:
- 标志-h与在图形用户界面(GUI)上选择“准备用于Virtual PC”相同。
- 标志-c将进行直接复制而不是影子复制。
- 卷通过指定它们的驱动器号或使用for all来包含。
下面的示例通过PowerShell会话在64位机器上创建了
该命令将在成功转换后创建类似于下面截图中的文件。

您可以将命令行与调度解决方案配对,例如PowerShell中的计划任务,以创建一个简单的自动化备份系统。
创建带有转换磁盘的虚拟机
现在,您有了物理副本的虚拟副本,您将附加生成的虚拟硬盘以检查您的操作结果。在启动虚拟系统后,您会发现它几乎复制了您先前的系统(故意的)。
1. 打开VirtualBox以跟随,并在Machine菜单下选择New

2. 给机器命名,选择一个文件夹来存储文件,选择OS Type和Version,然后点击Next。

3. 选择系统将要消耗的内存。对于您的测试目的,2GB的RAM应该足够。

4. 现在是最关键的部分,硬盘选择。选择“使用现有的虚拟硬盘文件”,然后点击提供的浏览图标以找到先前创建的VHD。

5. 下一个屏幕列出了已知的Virtual Box VHDs。选择添加以将新的VHD包含在VirtualBox已知磁盘列表中。在将磁盘附加到任何VM之前,此步骤是必要的。

导航到前一部分中创建的VHD文件,并选择打开。

7. VirtualBox将VHD列为未附加。选择文件,然后点击选择以将VHD附加到新的VM。

8. 点击创建。

9. 您现在可以启动VM了。如下图所示选择正常启动。

10. 您应该会看到与物理设备相同的登录屏幕。

11. 登录后,您会注意到虚拟机是物理设备的精确副本,包括用户帐户和安装的应用程序。虚拟机与物理机相同。
结论
Disk2vhd可以节省大量时间,无论您需要虚拟化的是生动的操作系统还是其他内容。通过完成这一步,您现在已经准备好虚拟化您的物理设备,并享受虚拟化带来的好处。
您计划虚拟化的机器是什么?