Vagrant synced_folder覆盖访客文件夹

时间:2014-06-13 23:46:10

标签: vagrant virtualbox vagrantfile

我遇到了问题,在启动流浪盒之后,synced_folder正在删除来宾计算机上目标文件夹的所有内容(我猜测它会覆盖它)

我的Vagrantfile中有以下行

config.vm.synced_folder "folder/", "/home/vagrant/src/folder/"

我确认/home/vagrant/src/folder有内容,然后将synced_folder命令添加到Vagrant文​​件会导致它在启动后为空。

我不知道是不是因为我错过了一些配置选项,权限问题或什么。

我在Mac OS X 10.9.2上使用VirtualBox 4.3.12

对此的任何帮助将不胜感激。

谢谢!

2 个答案:

答案 0 :(得分:1)

如果客户操作系统中存在文件夹/home/vagrant/src/folder/(听起来像),那么任何内容都不会被覆盖,但是它们将被隐藏,因为Vagrant将使用与安装点相同的路径。如果您停用了共享,然后执行vagrant reloadvagrant ssh,您可能会看到旧内容重新出现。

共享主要有助于让主机操作系统上的文件在客户操作系统中可见,而不是相反。

一种解决方法可能是使用普通文件夹共享(进入/vagrant),然后在来宾操作系统内创建一个符号链接,指向您希望在主机操作系统上可见的内容。您可以将其添加到.profile,以便每次进入访客时都运行它。

答案 1 :(得分:1)

正如BrianC所说,它不是覆盖,而是预期的行为。

Vagrant将项目文件夹中的folder安装到来宾中的/home/vagrant/src/folder/。因此,除非您手动卸载vagrant共享(默认情况下为vboxsf),否则将隐藏原始文件夹中的内容。

您可以更改共享的安装点(在guest虚拟机内)以解决问题。

BTW:默认vboxsf有其局限性,有新类型的同步加法器,例如: rsync,NFS,smb。我个人会建议使用rsync类型。