使用 Vmware Workstation 时,系统安装完成之后往往会提示安装增强工具,提高虚拟机物理机(宿主机)之间的交互体验,例如:共享剪贴板、文件拖拽等。假设虚拟机系统非 Windows,那么这些好功能在系统自带的 Hyper-V 上,都没有。

假设不使用网络共享,我们可以使用虚拟磁盘。这个方法虽说有点绕,操作也有些不便,但也算是一种方法。

一、创建虚拟磁盘

打开 Hyper-V 管理器,点击右侧的【新建】,选择【硬盘】。

Hyper-V 虚拟机与物理机共享文件方法之:挂载虚拟磁盘-吾晓科技
推荐选择VHDX格式
Hyper-V 虚拟机与物理机共享文件方法之:挂载虚拟磁盘-吾晓科技
根据自己的需求选择固定大小或动态扩展,日常使用推荐动态扩展,文件多大,磁盘就占用多大,不浪费空间
Hyper-V 虚拟机与物理机共享文件方法之:挂载虚拟磁盘-吾晓科技
设置虚拟磁盘的名称和储存路径
Hyper-V 虚拟机与物理机共享文件方法之:挂载虚拟磁盘-吾晓科技
设置虚拟磁盘的容量上限
Hyper-V 虚拟机与物理机共享文件方法之:挂载虚拟磁盘-吾晓科技
点击完成即可创建虚拟磁盘

二、初始化磁盘

之所以使用虚拟磁盘这个方法,就是因为 Win10 原生支持对虚拟磁盘的访问,只不过我们需要先初始化,以便资源管理器中能够识别。

右键点击开始按钮,打开磁盘管理器,此时我们是看不到虚拟磁盘的:

Hyper-V 虚拟机与物理机共享文件方法之:挂载虚拟磁盘-吾晓科技

网上的教程很少有提到这点,因此我一开始也摸不着头脑,试验了一番才知道需要手动附加虚拟磁盘,不知道这是不是 Win10 之后才有的改变。

点击上方菜单中的【操作】-【附加VHD】,浏览虚拟磁盘所在的目录,添加虚拟磁盘:

Hyper-V 虚拟机与物理机共享文件方法之:挂载虚拟磁盘-吾晓科技
Hyper-V 虚拟机与物理机共享文件方法之:挂载虚拟磁盘-吾晓科技

可以看到磁盘 1 容量 5GB,状态是“没有初始化”。此时资源管理器中无法看到这个磁盘,需要在磁盘 1 上点击右键,选择【初始化磁盘】。

Hyper-V 虚拟机与物理机共享文件方法之:挂载虚拟磁盘-吾晓科技

磁盘分区形式选择 GPT,这是当前主流的分区形式,选择 MBR 会与 Hyper-V 的安全启动机制冲突。

点击确定之后,磁盘 1 就会变成一个完整的未分配空间,需要将它新建分区(简单卷)。操作方法参考:https://www.pcoic.com/system/windows/218.html

分区新建好之后就可以在资源管理器中像普通分区一样读写文件。

三、虚拟机读写文件

通过上面的操作,虚拟磁盘已经被物理机的 Win10 挂载,也就是说虚拟磁盘当前是被物理机独占的。因此,我们要先在磁盘管理器中把虚拟磁盘分离开。

Hyper-V 虚拟机与物理机共享文件方法之:挂载虚拟磁盘-吾晓科技

右键点击磁盘 1,可以点击脱机之后再点击分离 VHD,也可以直接选择分离 VHD。在弹出的提示框中点击【确定】,虚拟磁盘就从磁盘管理中移除了。

在 Hyper-V 管理器中打开虚拟机的设置,选择 SCSI 控制器 – 硬盘驱动器,点击添加:

Hyper-V 虚拟机与物理机共享文件方法之:挂载虚拟磁盘-吾晓科技

点击【浏览】,定位到共享虚拟磁盘所在位置,添加到虚拟机中。

Hyper-V 虚拟机与物理机共享文件方法之:挂载虚拟磁盘-吾晓科技

保存设置之后运行虚拟机,就可以看到共享磁盘了。因为 VHDX 是 Hyper-V 的通用磁盘格式,这就意味着不论虚拟机运行的是什么系统,共享磁盘都能够被识别和读写。

Hyper-V 虚拟机与物理机共享文件方法之:挂载虚拟磁盘-吾晓科技
虚拟机上的Win10资源管理器,已经加载共享磁盘

如果虚拟机设置中已经添加虚拟磁盘,启动虚拟机前一定要在物理机系统上分离 VHD,否则虚拟机会报错无法启动。

四、物理机读写文件

与虚拟机读写共享磁盘一样,若要在物理机上读写共享磁盘,首先要解除虚拟机对它的占用。方法很简单——关闭虚拟机即可。

上文我们已经初始化虚拟磁盘并新建了分区,这些步骤不需要重复操作。关闭虚拟机之后,我们只需要在磁盘管理中附加 VHD,共享磁盘会立刻出现在资源管理器中,像普通分区一样读写就行了。

以上方法无法实现实时共享文件,需要关闭和启动虚拟机,这已经背离了使用虚拟机的初衷。然而一旦设置完成,日后的操作都已经变得相对简便;再者,启动虚拟机终究比物理机重启要便捷得多,这也就是本文方法的价值所在。

本文方法参考:

Win8/Win8.1玩转虚拟机六:Hyper-V文件共享篇