vmware 的 USB3.0 不能用怎么办

2018 年 03 月 02 日

vmware虚拟机的硬盘只有200G,在做的OS一套源码32G,加上编译out目录,虚拟机里面就剩不了多少空间了。

不幸的是,还有多个repo的代码需要维护,所以只有搞了个移动硬盘。别问我为什么不加内置SSD,已经是512G的SSD了,再加的话,买不起。

新的移动硬盘是WD的My Passport,USB 3.0,接上虚拟机后问题来了,写入速度平均只有6MB/s左右,读取速度也不过15MB/s左右,完全没有USB3.0的风范。这速度,不光编译没法搞,拷贝也受不了啊。

查了半天办法,包括修改vmware的虚拟机设置中USB控制器项的兼容性,升级vmware从12到14,都解决不了这个问题。头大。

昨天灵机一动,不就是拷贝速度慢吗,我用虚拟机的网络拷贝不就行了?

实际试了一下,用win10 host上的bash做scp,拷贝到虚拟机的写入速度大约是70MB/s,这下世界清净多了。

其实还可以考虑把移动硬盘用samba mount到vmware虚拟机直接编译,不过移动硬盘经常插拔,还不知道会造成什么问题,不做也罢了。

另外还发现了一个有意思的问题,ntfs支持文件大小写,但windows不支持,导致用windows上的打包工具无法处理移动硬盘上的源码目录。在bash下用tar命令打包就可以解决了。不过在这种拷贝速度下,打包的意义不大,因为打包+拷贝+解包可能更耗时间。

Ubuntu下测试写入速度的脚本,需要在写入目录执行:

time dd if=/dev/zero of=1Gb.file bs=1024 count=1000000

测试读取速度脚本,在写入之后执行:

time dd if=1Gb.file of=/dev/zero bs=1024 count=1000000
Top