我无法同步 /vagrant 文件夹。它将从 Windows 主机同步到 CentOS 客户机,但前提是我手动运行vagrant rsync
或vagrant 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 界面中手动设置共享文件夹并重新启动
它没有给出任何错误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 vagrant
。id -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 版本,这样就可以解决该问题!