无法使用带有Linux guest虚拟机的Windows主机上的Vagrant创建SMB共享文件夹

时间:2015-09-17 15:51:09

标签: vagrant virtualbox samba smb

我正在使用Vagrant在我的Windows 7 SP 1 PC上创建一个Ubuntu 14.04来宾。这一直工作正常,但访问从主机同步的文件时,guest虚拟机的性能很差。在做了一些阅读之后,我正在尝试将同步文件夹设为SMB共享,​​但是当我运行'vagrant up'时这会失败

请注意,我已升级到PowerShell 3.0,如https://docs.vagrantup.com/v2/synced-folders/smb.html中所述。我还确保我的guest虚拟机已按照https://github.com/mitchellh/vagrant/issues/4642中的指示安装了cifs-util。我正在使用Vagrant 1.7.4和VirtualBox 4.3.28

我的Vagrantfile看起来像这样:

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

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "npt"

  config.vm.provider "virtualbox" do |v|
    v.customize ["modifyvm", :id, "--cpuexecutioncap", "90"]
    v.customize ["modifyvm", :id, "--memory", "4096"]
    v.customize ["modifyvm", :id, "--cpus", 2]
  end

  config.vm.synced_folder "\\", "/npt_root", type: "smb"

  config.vm.provision :shell do |shell|
    shell.inline = "puppet module install puppetlabs/vcsrepo --force"
  end

  config.vm.provision "puppet" do |puppet|
    puppet.manifests_path = "puppet"
    puppet.manifest_file  = "basic_build_reqs.pp"
  end

  config.ssh.username = 'root'
  config.ssh.password = 'vagrant'
  config.ssh.insert_key = 'true'

end

我看到的输出是:

Z:\npt\vagrant>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'npt'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: vagrant_default_1442502969737_66801
==> default: Preparing SMB shared folders...
    default: You will be asked for the username and password to use for the SMB
    default: folders shortly. Please use the proper username/password of your
    default: Windows account.
    default:
    default: Username: tdj@DCL
    default: Password (will be hidden):
Exporting an SMB share failed! Details about the failure are shown
below. Please inspect the error message and correct any problems.

Host path: Z:/

Stderr: System error 123 has occurred.

The filename, directory name, or volume label syntax is incorrect.

Error:


Stdout:

看起来Vagrant已经解释了我给它的相对路径“\”并提出了“Z:/”,带有unix样式斜杠,然后Windows无法解析。

请注意,我已尝试用绝对路径“Z:\”替换相对路径,但我仍然在“主机路径”行上看到相同的输出

1 个答案:

答案 0 :(得分:0)

我怀疑" \\"是以下行中的问题:

config.vm.synced_folder" \\"," / npt_root",输入:" smb"

您是否可以尝试添加一个您想要与VM共享的具体foldername并测试它是否有效?