如何将 Vagrant 同步文件夹与 VirtualBox 和 CentOS/Windows 同步?

如何将 Vagrant 同步文件夹与 VirtualBox 和 CentOS/Windows 同步?

我无法同步 /vagrant 文件夹。它将从 Windows 主机同步到 CentOS 客户机,但前提是我手动运行vagrant rsyncvagrant up,并将删除客户机中的任何新文件。它不会从客户机同步到主机。

$ vagrant ssh
Last login: Wed Mar 15 21:00:00 2017 from 10.0.2.2
[vagrant@localhost ~]$ cd /vagrant
[vagrant@localhost vagrant]$ ls
Vagrantfile  vagrant.log
[vagrant@localhost vagrant]$ touch tmp.txt
[vagrant@localhost vagrant]$ ls
tmp.txt  Vagrantfile  vagrant.log
[vagrant@localhost vagrant]$ exit
logout
Connection to 127.0.0.1 closed.

Chloe@xps /cygdrive/c/Users/Chloe/Documents/server
$ ls
vagrant.log  Vagrantfile

我尝试手动安装,但出现错误

[vagrant@localhost vagrant]$ sudo mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant
/sbin/mount.vboxsf: mounting failed with the error: Protocol error

我尝试在 VirtualBox 界面中手动设置共享文件夹并重新启动

Virtual Box 共享文件夹设置对话框

它没有给出任何错误vagrant up,也没有任何内容调试日志

版本 5.1.16 r113841 (Qt5.6.2)
CentOS Linux 版本 7.3.1611 (核心)
Windows 8.1

答案1

/vagrant我通过将VirtualBox 中的名称(第 1 列)更改为,vagrant并在客户机内手动运行此命令来修复此问题:

[vagrant@localhost ~]$ sudo mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant
[vagrant@localhost vagrant]$ touch /vagrant/tmp.txt
[vagrant@localhost vagrant]$ exit
Connection to 127.0.0.1 closed.

Chloe@xps /cygdrive/c/Users/Chloe/Documents/server
$ ls
tmp.txt  vagrant.log  Vagrantfile

即使选中“自动挂载”复选框也不会自动挂载它。顺便说一下,1000 是用户的 uid 和 gid vagrantid -u vagrant; id -g vagrant

您可以将其添加到您的Vagrantfile

  config.vm.provision "shell", run: "always", inline: <<-SHELL
        mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant
  SHELL

答案2

我建议您将 Virtualbox 更新到 5.1.18 版本,这样就可以解决该问题!

相关内容