使用Virtual Box在主机和来宾之间共享整个主目录


0

出于某些原因,我工作的地方坚持不懈Ubuntu 12.04。因为我需要很多最近的软件,所以我想使用VM Ubuntu 14.04。我用virtual box 4.3(Oracle版)成功设置了所有内容。

之后,我尝试创建主机主目录的共享,并将其用作guest虚拟机上用户的主目录。其中一个原因是,如果虚拟盒出现故障,我不想放松所有内容,因此真正的HD上的所有文件看起来都很重要。

目前,该目录使用AutoFS安装在guest虚拟机上。来宾和主机中的用户具有相同的登录名,uid和主要gid。

当我使用ssh从guest虚拟机登录到guest虚拟机时它似乎工作但它不能用于图形登录:用户立即断开连接。我想这是因为主机上的图形登录会创建一些文件; 图形登录尝试在guest虚拟机上创建这些文件,然后失败。

任何的想法?

Answers:


1

关注@Dan Cornilescu建议(和评论)我解决了这个问题:

  1. 为主机主目录创建一个虚拟盒共享说 host_home
  2. 可选(但在我的情况下非常重要)允许访客在共享文件夹上创建符号链接(例如,请参见此处
  3. 在系统启动时与说客用户的UID和GID装入此份额在客人/mnt/host_home(见接受的答案 在这里的实例)
  4. 在客人家,那我想分享的符号链接文件夹(工程DesktopDownloads等等)

现在一切都按预期工作。读取或写入文件时可能会出现性能下降但很好。


我刚遇到一个问题:来宾内核的更新打破了VirtualBox扩展,安装失败。由于Desktop文件夹不可访问,~因此显示了guest虚拟机的内容。我更新了VirtualBox扩展:文件夹可以访问,但仍然显示home的内容。我必须弄明白。 在guest 虚拟机启用DKMS(并允许扩展ISO可访问)应防止再次发生(内核更新应更新扩展)。
Mathieu Dubois 2015年

这里介绍的众多方法中,我使用Ubuntu-Tweaks将一切恢复正常。
Mathieu Dubois 2015年

0

我同意@Dan Cornilescu的观点。这不是一个好主意,特别是考虑到当使用Sudo权限操作文件/文件夹时,Linux的性格如何,或者缺乏。

虽然我确定你的建议是什么(尽管你从未真正问过一个问题)是可能的,但我认为这不是你提到的最初问题的最佳解决方案。“其中一个原因是,如果虚拟机盒出现故障,我不想放松一切......”

我完全理解这个问题。一方面,你有一个由oracle提供的令人敬畏的(免费)服务,但你不想完全依赖那些不是“规范”的东西。然而,有几种方法可以抵消这个问题,比“拥有真实高清上的所有文件”更安心。这里有一些内置在VirtualBox中的功能,我在其他所有功能上使用。

〜“ 快照。” 他们这样做。在安装任何类型之前/之后创建VM的快照,或使用CronTab安排快照。这样,您始终可以快速轻松地在崩溃之前加载/引导到以前的版本。

〜根据需要简单导出/导入 VM(或.VHD)。我更喜欢这种方法,因为它比Snapshot更静态(我的需要)。将VHD / VM导出为备份本质上是便携式计算机和/或交互式备份。而不是由专有方法创建的标准(休眠)图像。

〜创建自己的,或使用Vagrant Box。更多信息在这里这里。您可以找到.box适合您需求的产品,并将其用作备份或更好地使用基本.box配置自定义.SH(BASH)脚本。在安装progs并更改设置时更新此脚本,以便在发生故障时只需运行一个简单的脚本和violä!你很高兴走出新装置的大门。


谢谢你确认这一点。我不知道,Vagrant但如果我理解的话,它将创建一个常规VM(例如with VirtualBox)并创建共享(VirtualBox也是)。所以它类似于共享我需要的目录(并在启动时安装它们),对吧?
Mathieu Dubois 2015年

我不确定“快照”和“导出”之间的区别。在“快照”中,保存正在运行的程序的状态并恢复所有内容,但“导出”仅保存客户文件系统?
Mathieu Dubois 2015年

我不确定我是否正在听取您的意见。我提出的建议是在系统之间共享/镜像目录的替代方法,因为我认为这不是一个好主意。使用VagrantBox,SnapShot,VM Export旨在解决您在问题中提到的问题。即:具有易于维护和可靠的备份,可用作VM并写入/映像到物理HDD。
BiTinerary 2015年

顺便说一下,我认为你的意思是voilà代替violä最后一个解决方案的描述。
Mathieu Dubois 2015年

@Dan Cornilescu提出了一个有趣的解决方案,允许使用当前设置(无需重新安装),没有太多麻烦。
Mathieu Dubois 2015年

0

一般来说,我发现在具有不同(版本)X服务器,窗口管理器和/或X应用程序的机器之间共享homedir并不是一个好主意,因为它们中的一些通常使用相同的主目录配置文件,不同的版本可以踩彼此。特别是如果同时使用不同的软件版本。

通常在较新版本的某些软件更新文件后,旧版本不再能够使用这些文件。

它也可能发生在另一个方向,通常是在新操作系统上尝试重新使用来自较旧操作系统的homedir(而在新操作系统上具有新创建的homedir的用户工作正常) - 您的无能为力登录GUI可能就是这种情况。

一种可能的方法,以非冲突的方式将VM homedir保留在主机HD上(当我升级我的操作系统时,我正在使用这些内容):

  • 通过NFS导出主机homedir并将其挂载到VM上,例如 / mnt / host_userid
  • 在你的内部创建一个vm_homedir目录,你将它用作VM上的homedir,将它链接到VM的/ home目录:

    / home / userid - > / mnt / host_userid / vm_homedir

  • 除了app dirs / config文件之外的符号链接/文件可以方便地从同一位置的两台机器访问它们,如下所示:

/ mnt / host_userid / vm_homedir / documents - > ../documents

这样,您可以将所有内容保留在主机HD上(即使VM已关闭也可访问),但每台计算机都使用自己的配置文件副本。


谢谢。由于你的答案类似于@BiTinerary,我将在答案下发表评论。
Mathieu Dubois 2015年

我用一个可能的解决方案更新了我的答案,将VM homedir存储在主机HD上而没有冲突 - 这种方式不是基于VM的东西(也可以用于具有不同操作系统的多个物理机)。
Dan Cornilescu 2015年

谢谢你的回答:这可能是更简单的权衡(主机和客户机上的简单机制,没有重复,允许共享你想要的东西并在主机上直接备份)。
Mathieu Dubois 2015年

重新考虑一下,我认为vm_homedir在我的主机主目录中创建一个地方会更容易,与VirtualBox共享并将其作为主机安装在VM和链接(来自主机)我需要共享的内容。这样我就不必与NFS战斗了。
Mathieu Dubois 2015年

我试图列出我提出的解决方案,但是没有用。有一个符号链接../Documents(在主机上有效)只是说“上升并找到Documents不存在的文件夹”(在访客上)。我想知道我是否可以分享整个主机家庭目录,安装在/mnt客人端,然后链接我在主机家庭目录中需要的东西。
Mathieu Dubois 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.