1

我遇到了一个问题,在启动 vagrant box 后,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 上

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

谢谢!

4

2 回答 2

1

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

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

您可以更改共享的挂载点(在来宾内)以解决该问题。

顺便说一句:默认vboxsf有其局限性,有新类型的同步文件,例如 rsync、NFS、smb。我个人会推荐使用 rsync 类型。

于 2014-06-16T00:29:57.307 回答
1

如果文件夹/home/vagrant/src/folder/存在于来宾操作系统中(听起来像),则不会覆盖其中的任何内容,但它们将被隐藏,因为 Vagrant 将使用与挂载点相同的路径。如果您禁用共享,然后执行vagrant reloadand vagrant ssh,您可能会看到旧内容重新出现。

共享主要有助于使主机操作系统上的文件在来宾操作系统中可见,反之则不然。

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

于 2014-06-14T23:34:44.117 回答