web-dev-qa-db-ja.com

Vagrant同期フォルダーをVirtualBoxおよびCentOS / Windowsと同期するにはどうすればよいですか?

/ 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インターフェースで共有フォルダーを手動で設定して再起動しました

virtual box shared folder settings dialog

vagrant upでエラーは発生せず、 デバッグログ には何もありません。

バージョン5.1.16r113841(Qt5.6.2)
CentOS Linuxリリース7.3.1611(コア)
Windows 8.1

4
Chloe

VirtualBoxの/vagrantの名前(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はvagrantユーザーのuidとgidです。 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
4
Chloe

その問題を解決するバージョン5.1.18にVirtualboxにアップデートすることをお勧めします!

0
angaran