本文介绍几种vbox读写win10主机文件的方法,并简单比较了几者之间的性能。
环境
- win10 pro,为host
- virtualbox 5.1.26
- ubuntu 17.04,为client
期望在ubuntu中可以挂载win10中的某个目录(如d:\data),且ubuntu拥有读写权限,系统启动时自动挂载。一是为了共享文件,二是将数据(如程序代码)保存备份。
使用vbox自带共享文件夹功能-vboxsf
- vbox设置共享文件夹,拥有完全控制权限,如设置别名为shared
- client中的ubuntu安装VBoxLinuxAddtions(增强功能)
- sudo vi /etc/fstab,增加如下一行:
shared /data vboxsf rw,gid=username,uid=groupname,auto 0 0
其中shared是vbox中设置的共享目录别名,/data是ubuntu中的挂载点,提前建好目录并chown给username,vboxsf是文件系统类型,参数rw是读写权限,后面用户及组名。重启ubuntu,即可使用/data来读写共享目录中的文件,修改同时同步到win10。
使用win10自带共享文件夹功能-cifs
- 在win10开启文件夹共享,如设置别名为shared
- ubuntu中sudo vi /etc/fstab
//192.168.56.1/shared /data cifs _netdev,username=xxxxxx,password=xxxxxx,uid=username,gid=groupname,auto 0 0
其中ip地址和访问共享文件夹的win10用户名密码根据实际更换。
使用nfs方式
- 若是win10 enterprise 或ultimate版本,可以直接开启nfs服务,注意不是nfs客户端,是服务端,win+r,运行service.msc可以找一找是否有server nfs服务([参考文章])
- 若不能开启win10自己的nfs服务,则使用第三方的,推荐使用haneWIN NFS。[下载地址]
- 下载后安装(试用30天,需要买license),即作为windows服务自动启动
- 执行安装的NFS server(小娜处搜索)要以管理员身份运行,可以修改设置,否则只是查看,最主要的设置是export,用于配置共享目录,其它可保持默认
- 在选项卡export中可以设置共享的目录( [参考haneWIN NFS帮助] ),如增加以下一行,就是文本编辑,然后保存,重启server生效:
d:\data -name:shared
- ubuntu中sudo vi /etc/fstab,增加如下一行:
192.168.56.1:/shared /data nfs defaults 0 0
mout.nfs还有其它许多参数可以指定(如超时,udp/tcp),一般使用defaults就可以了。
- 其它第三方nfs-server比较流行的有winNFSd
性能比较
通过实测性能(ubuntu中eclipse 编译8个工程约10万行代码,代码放在共享目录中),性能是:nfs>vboxsf>cifs。nfs性能是vboxsf的1.5倍,cifs差很多。
其它
2年多前,有人比较过vboxsf/nfs/vmare share fs的性能,可以参考一下。但这段时间内vboxsf已经有很多版本升级,应该性能也有提升。本文发表时,在某些场景上还是nfs优于vboxs。