【发布时间】:2015-12-24 07:06:01
【问题描述】:
我已经有一段时间没有在 Linux 上使用 Vagrant 了。当我开始使用新版本(Vagrant 1.8)时,我遇到了一个问题:在来宾 VM 中创建的文件没有出现在主机的同步文件夹中。
如何强制 Vagrant 将文件从客户操作系统同步到主机操作系统?
【问题讨论】:
标签: vagrant virtualbox
我已经有一段时间没有在 Linux 上使用 Vagrant 了。当我开始使用新版本(Vagrant 1.8)时,我遇到了一个问题:在来宾 VM 中创建的文件没有出现在主机的同步文件夹中。
如何强制 Vagrant 将文件从客户操作系统同步到主机操作系统?
【问题讨论】:
标签: vagrant virtualbox
根据文档,当 Vagrantfile 中的 type 选项 config.vm.synced_folder 参数未指定时,Vagrant 会尝试选择最佳可用选项:
type(字符串)- 同步文件夹的类型。如果未指定,Vagrant 将自动为您的环境选择最佳同步文件夹选项。否则,您可以指定特定类型,例如“nfs”。
从 1.5 版开始 Vagrant introduced 新增“rsync 同步文件夹”功能。
所以在我的例子中,rsync 类型是自动选择的,这是单向同步:从主机到访客。
为了使文件夹以两种方式同步,我在我的 Vagrantfile 中添加了明确的定义:
config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
当然,这仅适用于 VirtualBox。
双向同步对于工作流很有用,其中应用程序在客户机上创建文件,例如现代 Web 框架中的数据库迁移文件。
注意:当您的项目有大量文件时,virtualbox 同步文件夹会出现性能问题。
【讨论】:
Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem "vboxsf" is not available. This filesystem is made available via the VirtualBox Guest Additions and kernel module. Please verify that these guest additions are properly installed in the guest. This is not a bug in Vagrant and is usually caused by a faulty Vagrant box. Install Guest Additions vagrant plugin install vagrant-vbguest
vagrant plugin install vagrant-vbguest 安装它
vagrant ssh 进入盒子并运行 sudo yum -y update 然后关闭 ssh 会话并运行 vagrant reload 以便排序在此之前解决某种内核头问题。上次我启动一个新的虚拟机(~2018 年年中)时,这对我来说不是问题,但现在需要让双向同步目录与 vagrant 和 centos7 一起工作
谢谢,这正是我过去几天一直在寻找的东西!!!!!!!我在 Laravel 5、宅基地和流浪者中遇到了这个问题。那里有很多答案,但没有一个对我有用。我的 yaml 文件的文件夹部分也有 rsync,我也必须删除它。在这两个更改之后,文件共享终于在主机和客户端之间为我同步了。
require File.expand_path(File.dirname(__FILE__) + '/scripts/homestead.rb')
config.vm.synced_folder "."、"/vagrant",输入:"virtualbox"
Vagrant.configure(VAGRANTFILE_API_VERSION) 做|config|
这是我对 Vagranfile 进行更改的地方。
【讨论】: