在Vagrant centos / 7中创建的文件不会出现在Windows中

时间:2017-09-20 09:37:11

标签: vagrant rsync file-writing

我主要在Vagrant中使用Ubuntu框,并且在框中创建的任何文件也已成功同步到Windows。通常是git pull

之类的东西

但是,我现在有centos/7并且无法将任何文件同步到Windows。如果您在/vagrant中创建文件,则该文件永远不会出现在Windows中 - 不在C:\cygwin64\下,也不会在C:\vm\machine下。当我vagrant reload框时,框内创建的所有文件都消失了,除了配置文件,例如。 /etc/httpd/conf/httpd.conf。其中的任何更改仍会显示在vagrant reloadvagrant halt; vagrant up上。

enter image description here

这里是Vagrantfile:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.network "forwarded_port", guest: 80, host: 8086, host_ip: "127.0.0.1"
  config.vm.network "forwarded_port", guest: 3306, host: 3386, host_ip: "127.0.0.1"
  config.vm.synced_folder "./", "/vagrant"
  # I have also tried the following:
  # config.vm.synced_folder "C:/vm/machine", "/vagrant"
  # config.vm.synced_folder "./", "/vagrant", type: "rsync", disabled: false
end

执行vagrant up时,synced_folder的两种方法都显示: ==> default: Rsyncing folder: /cygdrive/c/vm/machine/ => /vagrant

我尝试从vagrant up和Cygwin64终端(cmd.exe下)进行/c/vm/machine。它们都没有为Windows目录创建文件,该目录位于C:\vm\machine

如何让在框中创建的文件同步到Windows?

当我在Ubuntu框中尝试相同时,该文件出现在Windows中并且不会消失: enter image description here

这是Ubuntu框的Vagrant文​​件:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "v0rtex/xenial64"

  config.vm.network "forwarded_port", guest: 80, host: 8083, host_ip: "127.0.0.1"
  config.vm.network "forwarded_port", guest: 443, host: 8443, host_ip: "127.0.0.1"
  config.vm.network "forwarded_port", guest: 3306, host: 3303, host_ip: "127.0.0.1"
  config.vm.network "forwarded_port", guest: 5000, host: 5003, host_ip: "127.0.0.1"
  config.vm.network "forwarded_port", guest: 8000, host: 8003, host_ip: "127.0.0.1"
  config.vm.network "forwarded_port", guest: 9090, host: 9093, host_ip: "127.0.0.1"
  config.vm.network "forwarded_port", guest: 9091, host: 9193, host_ip: "127.0.0.1"

end

vagrant up的Ubuntu框中,我看到了这一点:
==> default: Mounting shared folders...
default: /vagrant => C:/vm/ubu1604-64

1 个答案:

答案 0 :(得分:2)

解决方案如下:

  1. 将Vagrantfile synced_folder部分更改为:
    config.vm.synced_folder "./", "/vagrant", type: "virtualbox", disabled: false
  2. 然后在Vagrantfile所在的目录中运行此命令:
    vagrant plugin install vagrant-vbguest
  3. 如果vagrant reload已在运行,则执行vagrant up,否则执行vagrant up
  4. 它会运行很长一段时间 - 对我来说一共花了大约7分钟。但是,这是一次性安装,因此将来所有/vagrant将花费正常的时间。
  5. 之后,C:\vm\machine目录中创建的文件也将出现在Windows vagrant halt中(例如),并将在Vagrant会话之间保持不变,即。 vagrant up + {{1}}