Vagrant:无法让 NFS 工作
Posted
技术标签:
【中文标题】Vagrant:无法让 NFS 工作【英文标题】:Vagrant: can't get NFS working 【发布时间】:2014-07-21 23:58:36 【问题描述】:我正在尝试更改我的 VagrantFile,以便它使用 NFS 挂载而不是默认的 VirtualBox 共享文件夹。
我收到此错误消息:
vm:
* Shared folders that have NFS enabled do not support owner/group
attributes. Host path: .
这是我的 VagrantFile:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ktbartholomew/lamp"
config.vm.network "private_network", type: "dhcp"
config.vm.synced_folder ".", "/vagrant", type: "nfs"
end
我看不到任何所有者或组正在设置。
请帮忙! 谢谢
【问题讨论】:
您是否尝试过使用“.”以外的其他内容源文件夹从主机挂载?看来这可能是你的问题。尝试用完整路径定义它。就像'/home/user/project' 或者你的路径是什么。你的语句的其余部分看起来就像我目前使用的一样。 我刚刚更改了它,不幸的是同样的问题,虽然现在错误消息是“*启用 NFS 的共享文件夹不支持所有者/组属性。主机路径:/Users/jamesplayer/Sites/” 【参考方案1】:我发现直接映射 uid/gid 可以正常工作。 vagrant 方面有点奇怪,因为他们是任意用户/组,但除此之外它很好。
Vagrant.configure("2") do |config|
# ...
config.nfs.map_uid = Process.uid
config.nfs.map_gid = Process.gid
config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", :nfs => true
config.vm.synced_folder "..", "/var/www", id: "application", :nfs => true
end
【讨论】:
【参考方案2】:Vagrant 仅在所有者或组为 true 时引发此错误。尝试通过为两个 synced_folder 配置的这两个选项传递 nil 来强制它。
, group: nil, owner: nil
代码如下: https://github.com/mitchellh/vagrant/blob/8655d212c327d363f8e80185705ff70bb2e97f6b/plugins/kernel_v2/config/vm.rb#L572
【讨论】:
谢谢!这就是我最终的 VagrantFile 最终的样子: VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "ktbartholomew/lamp" config.vm.network :private_network, ip: "10.11.12.13" config.vm.synced_folder "/Users/jamesplayer/Sites/", "/vagrant", 输入: "nfs ",组:无,所有者:无结束 基本不使用group、owner、mount_options作为属性 Vagrant 仅在所有者或组 为为真(并且设置了 nfs)时引发此错误 感谢 Lotus,修正了措辞。以上是关于Vagrant:无法让 NFS 工作的主要内容,如果未能解决你的问题,请参考以下文章
让Vagrant在Windwos下支持使用NFS/SMB共享文件夹从而解决目录共享IO缓慢的问题
忽略使用 NFS 作为 Vagrant 同步系统的同步文件夹文件/目录