有没有办法将我的 VB 来宾 (linux) 上的目录挂载到我的主机 (linux) 上?我知道我可以通过 Virtualbox 上的共享文件夹功能以相反的方式做到这一点,但是有没有办法做到这一点?
我真的很想实际安装该目录。不使用 samba 或类似的东西。
答案1
简短的回答是你不能。
当您从主机挂载目录到来宾中时,会发生以下情况。 VirtualBox 附带了用于客户操作系统的文件系统驱动程序,该驱动程序通过特殊的 VM 接口而不是直接访问存储设备来存储文件。主机上的 VirtualBox 进程通过进行普通的用户级文件系统访问来解释通过接口发出的请求。
现在考虑对称情况。您想要访问访客上的文件。好的,那么 VirtualBox 应该为来宾提供一个驱动程序,用于处理通过 VM 接口进行的文件系统查询。必须有一个内核组件(因为虚拟机接口对于来宾操作系统来说看起来像硬件)和一个可选的用户态组件来实际访问文件(不一定,这类似于服务器 NFS,可以在内核或用户态(NFS 服务器的前端通过网络,因此该位在用户态中可行))。然后,在主机端,您需要一个通过虚拟机接口进行通信的文件系统驱动程序。文件系统通常由内核处理,但它们可以中介到用户进程(这就是 FUSE 的作用)。因此,专用文件系统是可能的,但比对称情况更复杂。对它的需求也少了很多。据我所知,任何主要的虚拟机实现都没有这样的专用文件系统。
恐怕您必须使用网络文件系统,例如 NFS、Samba 或 SSHFS。
答案2
吉尔斯正确指出这样做的理论问题并指出当前没有实现。
例外情况是,如果您使用固定大小的存储设备,并且您可以安装整个驱动器,而虚拟机已关闭。在这种情况下这个 bash 脚本将允许您将 VDI 磁盘映像文件安装为驱动器。您将找到大量有关安装 VDI 磁盘映像主题的信息。