我创建了一个在Windows主机上运行的木偶/流浪汉/ VirtualBox生成的Ubuntu安装;有关详细信息,请参阅https://bitbucket.org/dmenne/rstudio-shiny-server-on-ubuntu。这允许用户在Windows上运行RStudio和Shiny服务器。在Vagrantfile
,我有
config.vm.synced_folder "shiny-server", "/srv/shiny-server", create:true
创建共享文件夹。当我使用vagrant up
或vagrant reload
启动VM时,一切正常。
一位客户不想安装vagrant等,并要求在Windows上使用VirtualBox Manager启动/停止独立VM。但是,在我关闭流浪汉启动的VM Box后,我的同步文件夹在VM重启时不会再次连接/挂载,即使它们在VirtualBox Manager的共享文件夹对话框中正确显示。
如何收缩包装Vagrant生成的VM,以便可以在没有Vagrant的情况下启动/停止?
2015年3月编辑:
我仍然无法解决这个问题。当我强制自动挂载时,恢复media/sf_<folder>
时会同步,而不是所需的文件夹。如何在重启后强制VirtualBox使用Vagrantfile
的同步模板?
如果不手动操作,我如何在流浪汉中强制执行automount。
答案 0 :(得分:7)
经过一些进一步调试并且对google / vagrant论坛上的类似查询缺乏响应:
vagrant up
或vagrant reload
vagrant reload
,vagrant
的唯一选择是将状态保存在VirtualBox(CTRL-V
)中。重新启动后,正确恢复已同步的文件夹。但是,可能无法强制最终用户始终手动保存状态。要使用持久同步文件夹,您必须使用upstart
或类似方法;仅使用Vagrantfile
无法完成。
另见阿尔瓦罗的回应: https://groups.google.com/forum/#!topic/vagrant-up/oBU0kqPLzYk
答案 1 :(得分:4)
让这个工作有两个部分。首先,我们需要从主机上自动安装同步文件夹,Linux客户端的情况有点用词不当,因为它更“自动安装”或“自动共享”。对于每个共享文件夹(gemainsame ordner),您必须打开自动挂载(automatische einbinden)
为此,请单击每个共享的编辑共享文件夹图标
并检查自动挂载(automatische einbinden)
最后你应该在“automatische Einbinden”下面看到“Ja”,因为所有的股票应该自动同步
如果guest虚拟机系统是Ubuntu(或任何Linux系统),那么完成此操作后,所有已同步的文件夹现在应该在guest虚拟机中可见,但guest虚拟机不会自动挂载它们。您需要在/ etc / fstab中为您希望自动挂载在guest虚拟机中的每个文件夹添加一个条目。
由于您使用的是VirtualBox,Vagrant可能会选择使用VirutalBox的共享文件夹配置方法来实现同步文件夹。对于Linux中的来宾系统,根据您的Guest Additions版本,这看起来像是一个smb / cifs共享,其名称(默认情况下)为// vboxsrv /,或者类型为“vboxsf”的文件系统。
vboxsf来自最新版本的访客添加(至少4.1.18起),automount选项“正常”。在使用名为“bob”的自动挂载设置共享启动Linux来宾VM时,系统应自动挂载Bob(不带fstab条目)/media/sf_Bob
。来自mount
的相关行的完整输出是
none on media/sf_Bob type vboxsf (rw,nodev,relatime)
如果这不起作用,请检查您是否可以使用smbclient或smbtree在来宾系统中查看samba网络共享。它应该看起来像//vboxsrv/Bob
。然后,在你的fstab中,你会添加一行这样的
#share name #mount point in guest #fstype #options #dump/pass
//vboxsrv/Bob /mnt/Bob cifs auto,rw 0 0
您可能希望阅读mount.cifs
的手册页,以调整每个装载的选项,尤其是文件所有权和权限(相关的调查选项为forceuid
,uid
,forcegid
,gid
,file_mode
和dir_mode
)