让Vagrant在Windwos下支持使用NFS/SMB共享文件夹从而解决目录共享IO缓慢的问题
此问题是在拥有相同配置的环境中,项目在win10跑的慢而在win7就正常的情况下发现的,一步步调试之后发现是文件操作的相关行为变的很慢,于是考虑到可能是系统问题,后来在如下链接找到了解决办法:http://www.iamle.com/archives/2011.html
1。nfs方式
安装vagrant 插件 vagrant-winnfsd
$ vagrant plugin install vagrant-winnfsd
但是这样安装会出现以下错误
- Installing the 'vagrant-winnfsd' plugin. This can take a few minutes...
- Bundler, the underlying system Vagrant uses to install plugins,
- reported an error. The error is shown below. These errors are usually
- caused by misconfigured plugin installations or transient network
- issues. The error from Bundler is:
- An error occurred while installing childprocess (0.5.), and Bundler cannot continue.
- Make sure that `gem install childprocess -v '0.5.8'` succeeds before bundling.
- Warning: this Gemfile contains multiple primary sources. Using `source` more than once without a block is a security risk, and may result in installing unexpected gems. To resolve this warning, use a block to indicate which gems should come from the secondary source. To upgrade this warning to an error, run `bundle config disable_multisource true`.Gem::RemoteFetcher::FetchError: Errno::ECONNABORTED: An established connection was aborted by the software in your host machine. - SSL_connect (https://rubygems.org/gems/childprocess-0.5.8.gem)
看来是缺少childprocess-0.5.8.gem这个东西
索性把需要的包都下载到本地,然后本地安装
https://rubygems.org/gems/childprocess-0.5.8.gem
https://rubygems.org/gems/vagrant-winnfsd-1.1.0.gem
然后
- vagrant plugin install childprocess-0.5..gem
- vagrant plugin install vagrant-winnfsd-1.1..gem
看一看安装好的插件
- $ vagrant plugin list
- childprocess (0.5.)
- - Version Constraint: 0.5.
- vagrant-share (1.1., system)
- vagrant-winnfsd (1.1.)
- - Version Constraint: 1.1.
编辑项目下的Vagrantfile文件
- Vagrant.configure('') do |config|
- # other config here
- config.vm.network "private_network", ip: "192.168.33.10"
- #winfsd
- config.winnfsd.logging = "on"
- config.winnfsd.uid =
- config.winnfsd.gid =
- config.vm.synced_folder "./", "/vagrant", type: "nfs"
- end
2.SMB方式
- Vagrant.configure('') do |config|
- # other config here
- config.vm.network "private_network", ip: "192.168.33.10"
- #SMB
- config.vm.synced_folder "./", "/vagrant", type: "smb",
- smb_username: "母鸡Windows帐号",
- smb_password: "母鸡Windows密码",
- owner: "www",
- group: "www"
- #mount_options: ["dmode=775,fmode=664"]
- end
启动vagrant虚拟机, 注意启动过程当中需要输入windwos系统的帐号和密码
- d:\projects>vagrant up
- Bringing machine 'default' up with 'virtualbox' provider...
- ==> default: Fixed port collision for => . Now on port .
- ==> 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: administrator
- default: Password (will be hidden):
- ==> default: Clearing any previously set network interfaces...
- ==> default: Preparing network interfaces based on configuration...
- default: Adapter : nat
- default: Adapter : hostonly
- ==> default: Forwarding ports...
- default: => (adapter )
- ==> default: Booting VM...
- ==> default: Waiting for machine to boot. This may take a few minutes...
- default: SSH address: 127.0.0.1:
- default: SSH username: vagrant
- default: SSH auth method: private key
- default: Warning: Connection timeout. Retrying...
- default: Warning: Connection timeout. Retrying...
- default: Warning: Remote connection disconnect. Retrying...
- ==> default: Machine booted and ready!
- ==> default: Checking for guest additions in VM...
- default: The guest additions on this VM do not match the installed version of
- default: VirtualBox! In most cases this is fine, but in rare cases it can
- default: prevent things such as shared folders from working properly. If you see
- default: shared folder errors, please make sure the guest additions within the
- default: virtual machine match the version of VirtualBox you have installed on
- default: your host and reload your VM.
- default:
- default: Guest Additions Version: 4.3.
- default: VirtualBox Version: 5.0
- ==> default: Configuring and enabling network interfaces...
- ==> default: Mounting SMB shared folders...
- default: D:/projects => /vagrant
- ==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
- ==> default: flag to force provisioning. Provisioners marked to run always will still run.
- d:\projects>
发现vagrant开启了一个名称为c30268623ba3dedeaa9f098b570dca21的共享
这个地方有个安全大坑,共享权限居然是Everyone!所以注意母鸡Windows上是否有其他帐号能访问!
我把c30268623ba3dedeaa9f098b570dca21本共享的权限改了,发现vagrant还是会把权限设置为Everyone
如果有开启其他普通帐号,guest什么的这里有安全隐患
- C:\Users\Administrator>net share
- 共享名 资源 注解
- -------------------------------------------------------------------------------
- IPC$ 远程 IPC
- c30268623ba3dedeaa9f098b570dca21
- D:\projects
- 命令成功完成。
为了防止smb共享剔除不活动的连接需要执行以下命令让系统不要自动踢掉不活动的连接
net config server /autodisconnect:-1
vagrant不会自动删除共享,要删除共享使用命令
net share c30268623ba3dedeaa9f098b570dca21 /delete
让Vagrant在Windwos下支持使用NFS/SMB共享文件夹从而解决目录共享IO缓慢的问题的更多相关文章
- VMware下 Ubuntu 看不到共享文件夹之解决办法
VMware下 Ubuntu 看不到共享文件夹之解决办法 初学Linux,在VMWare 上装了Ubuntu10.04,主机端和虚拟机相互间的访问是必不可少的,途径有许多,其中vmware tool提 ...
- Virtualbox下Ubuntu与主机Win7共享文件夹
记下来,免得老google. 1. 在虚拟机设置里设置好win7的共享文件夹位置:如c:\share 2.确定ubuntu下需要共享的文件夹,如~/linuxshare.注意,此文件夹名字必须与win ...
- 在Ubuntu主机下实现与Windows虚拟机共享文件夹
一.概述 由于要实现Ubuntu主机中的一些文件与Windows虚拟机共享,因此要创建一个共享文件夹映射到虚拟机中. 网上许多都是Windows主机+Linux虚拟机的配置,在此分享主机是Linux的 ...
- NFS挂载共享文件夹
修改rcS启动脚本,使开发板初始化完成,自动挂载共享文件夹 修改开发板ip,使之与虚拟机处于同一网段(二者可以互ping) 挂载虚拟机的共享文件夹 rcS 1 ifconfig eth ...
- C# 拷贝指定文件夹下的所有文件及其文件夹到指定目录
要拷贝的文件及其文件夹结构 其中.lab文件不能覆盖 /// <summary> /// 拷贝oldlab的文件到newlab下面 /// </summary> /// < ...
- VMware下Ubuntu与宿主Windows共享文件夹
概述1.安装VMware Tool2.设置共享 步骤开始安装VMware Tool 显示如下画面(如果宿主无法访问外网,可能会出现一个更新失败,可以无视之) 通过下列命令解压.执行,分别是下面的tar ...
- VMware下Ubuntu与宿主Windows共享文件夹 (转至 http://blog.csdn.net/zz962/article/details/7706755)
概述 1.安装VMware Tool 2.设置共享 步骤 开始安装VMware Tool 显示如下画面(如果宿主无法访问外网,可能会出现一个更新失败,可以无视之) 通过下列命令解压.执行,分别是下面的 ...
- 定时自动同步文件,支持多文件夹同步,支持过滤文件和文件夹,解决FileSystemWatcher多次文件触发事件(源码)
博客园里面有很多同步工具和软件,关于FileSystemWatcher类解释的也很多,但收集了很多文章后,感觉没好的方法,自己没事写了一个定时文件同步,借鉴了很多博客园朋友的东西: 上主菜: 配置文件 ...
- mac下VirtualBox跟linux虚拟机共享文件夹
1.在VirtualBox中设置好共享目录,设置自动挂载/固定分配 2.安装增强工具,为了避免安装出错需要安装依赖文件 #更新内核. yum update kernel#需要安装相应的kernel-d ...
随机推荐
- MySQL的MVCC机制
1.MVCC简介 1.1 MVCC是什么? MVCC,Multi-Version Concurrency Control,多版本并发控制.MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对 ...
- Python学习前端之JavaScript
JavaScript介绍 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中),后将其改名ScriptEase(客户端执行的语言). Nets ...
- 感染(low)bfs 、感染(mid) 二分、感染(high) 二分 + 维护单调 队列去除无用的点
感染(low) Description n户人家住在一条直线上,从左往右依次编号为1,2,-,n.起初,有m户人家感染了COVID-19,而接下来的每天感染的人家都会感染他家左右两家的人,问t天后总共 ...
- js对象中in和hasOwnProperty()区别
记录学习中容易混淆的一些方法. prop in object prop一个字符串类型或者 symbol 类型的属性名或者数组索引(非symbol类型将会强制转为字符串). objectName检查它( ...
- sql server 表连接类型
一.数据库访问操作 1.SCAN(最影响性能点,优化切入点) 根据表的不同,分为Table Scan,Cluster Index Scan,Non-clustered Index Scan Table ...
- docker 容器容器之间网络通信 docker-compose.yaml 配置固定ip
1.创建自己的桥接网络 $ docker network create --subnet=172.18.0.0/16 mynetwork 2.docker-compose.yaml 文件格式demo ...
- php人民币小写转大写函数,不限长度,精确到分
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://ustb80.blog.51cto.com/6139482/1035327 在打印 ...
- go中的面向对象总结
我们总结一下前面看到的:Go 没有类,而是松耦合的类型.方法对接口的实现. OO 语言最重要的三个方面分别是:封装,继承和多态,在 Go 中它们是怎样表现的呢? 封装(数据隐藏):和别的 OO 语言有 ...
- 2017蓝桥杯等差素数(C++B组)
题目 : 等差素数列 2,3,5,7,11,13,....是素数序列.类似:7,37,67,97,127,157 ...
- ENVI 安装
本文转自https://jingyan.baidu.com/article/2d5afd69d50e9585a2e28e37.html 但对该文有所补充,建议看本文,本文更详细. ENVI5.3安装 ...