MacOS High Sierra 引起 VirtualBox Vagrant 同步慢
问题
最近把mac的操作系统升级到了最新版本发现了一个问题,通过共享文件夹的方式 修改的文件,无法立即同步到虚拟机中,大概需要30秒才能同步到共享文件夹。
操作环境如下
虚拟机:Virtualbox
虚拟机操作系统:Ubuntu16.04
虚拟机管理工具:Vagrant
物理机:Mac High Sierra 10.13.4
现象截图
正常截图
修改文件之后的截图
可以发现,当修改之后 通过终端查看文件发现 直接提示 error了并且文件的权限也不对了都变成?了 (如上图)
苦恼
每次修改一个文件都要等一会才能看到效果,非常急人,不是我们互联网人的追求效率的做法。那我们就要想办法解决。我知道肯定是升级系统造成的,但是不知道如何解决,就Googole了很久,终于找到了解决方法
解决方法
设置vagrant 目录同步的 :mount_options => ['actimeo=2'] 。修改完成如下
config.vm.synced_folder "/Users/vincent/code/", "/home/www", :nfs => true ,:mount_options => ['actimeo=2']
为什么会有这样的问题
这里面牵扯到一些偏僻的知识,我也不是特别明白。但是大致原因我知道了,因为Mac 升级到 High Sierra 之后 使用了APFS(苹果文件系统)。这个会导致同步问题。
那么为什么 加上 actimeo=2 就可以解决这个问题。具体这个牵扯到了linux 挂载的一些知识,个人了解的也不是太多,大致的意思是 加快了挂载目录之前的同步时间。个人估计对系统有些性能消耗。等以后有精力了在深入研究下 linux mount 命令参数 actimeo 的含义