Virtual PC 与 Virtual Server 2005 R2 with SP1 在使用过程中有一个显著的区别就是操作管理面,其中Virtual PC 在安装 VMAdditions 插件后,可以直接将宿主文件拖放至来宾系统中,或使用插件内置的共享功能来使用使来宾系统轻松地获取到宿主系统上的文件,这在我们进行测试或实验过程中提供了很大的便利。但是在 Virtual Server 中却不提供这项功能,只能使用常规方式通过网络共享来获取文件,而当我们的测试环境是在 local only 环境是那么网络共享方式即不在可用,此时当来宾系统与宿主需要交换文件时便会非常麻烦!不知道我说讲得大家是否能够明白,那么我来举个通俗的案例让大家对此更加明了或重视。假如我要在 local only 环境下作 AD 环境实验,来宾系统使用的是 Windows Server 2003 with SP1,现在我们需要为来宾系统安装 Windows Server 2003 SP2,这时我们该如何处理?是切换网络为桥接模式,重新配置 TCP/IP 来获取宿主上已经下载的补丁包?还是切换网络为 NAT 模式,从网上直接下载?其实这里我们真的忽略了 Virtual Server 2005 R2 with SP1 中自带的一个工具——vhdmount,是的这个工具如其名称一样很容易让人理解,是用来加载虚拟磁盘文件的一个小工具,而且使用起来非常简单并且实用。下面就让我们来认识并学习使用这个工具。
vhdmount 是一个包含在 Virtual Server 2005 R2 with SP1 中用来装载虚拟磁盘文件(.vhd)作为虚拟磁盘设备装载在主机操作系统上的实用工具。我们除了可以在命令行环境下手动使用此功能以外,还可以通过 API 来调用,这里我们主要介绍如何在命令行环境下使用这个工具。此外,需要提醒大家如果在 Vista 系统上必须以管理员身份才能使用该命令。
我们可以在 Virtual Server 2005 R2 with SP1 的安装目录下找到名为 vhdmount 的子目录,vhdmount 工具就存储在这里。如需手动使用该命令,首先我们需要进入 CMD 环境,之后进入vhdmount 目录才能执行,为了减少切换路径所带来的不便,我们可以预先在环境变量配置中的 path 部分添加 vhdmount 路径。这样使用起来会更加方便!
vhdmount 的命令语法为:
参数说明:
/p
插入指定的 .vhd 文件作为虚拟磁盘设备,但不加载卷。
/m
插入指定的 .vhd 文件作为虚拟磁盘设备,并加载卷。DriveLetter 是可选的。如果指定了驱动器号,则从指定的驱动器号开始装载卷。如果未指定驱动器号,则自动分配。
注意 /m 选项使用 Windows Virtual Disk Service (VDS) API 将卷加载到磁盘上。只有 Windows Server 2003、Windows Server“Longhorn” 以及 Windows Vista 中才提供 VDS API。这意味着当主机操作系统为 Windows XP 时,使用 /m 选项无法加载卷。但是,可以在 Windows XP 中使用磁盘管理器手动加载卷。
/u
拔出指定 VHDFileName 对应的虚拟磁盘设备或已加载的所有虚拟磁盘设备。VHDFileName 是 .vhd 文件的完全限定路径。
/q
返回指定 VHDFileName 对应的虚拟磁盘设备或已加载的所有虚拟磁盘设备的磁盘标识符。VHDFileName 是 .vhd 文件的完全限定路径。
/f
加载不带还原磁盘的虚拟硬盘。所有更改都在原始虚拟硬盘上进行。默认情况下,VHD 装载通过创建临时还原磁盘来加载虚拟硬盘,并对还原磁盘进行更改。
/c
在拔出磁盘之前,使用保存在还原磁盘文件中的所有更改来更新原始 .vhd 文件,并删除还原磁盘文件。
/d
在拔出磁盘之前,放弃对已装载磁盘进行的所有更改,并删除还原磁盘文件。
注意:只有在不使用 /f 加载 .vhd 文件时,/c 和 /d 选项才适用。
在鼠标右键中添加虚拟机文件VHD的载入和卸载命令:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell]
@=”Mount”
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Dismount]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Dismount\command]
@=”\”C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\” /u \”%1\””
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Mount]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Mount\command]
@=”\”C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\” /p \”%1\””
[HKEY_CLASSES_ROOT\.vhd]
@=”Virtual.Machine.HD”