如何使用VirtualBox创build一个虚拟机的可重新分配的独立二进制分发?

是否有可能使用VirtualBox或其他工具创build一个虚拟机的自包含二进制分发?

我的要求:

  • 没有VirtualBox安装
  • 自包含二进制/ -ies来启动和停止虚拟机(所有的VirtualBox环境支持)
  • 可能没有启动和停止虚拟机的pipe理员权限
  • 至less窗户,但如果跨平台更好

从理论上讲,可以创建一个巨大的blob,捆绑某种类型的虚拟机管理程序,这个虚拟机管理程序将首先提取与VM(disk,config等)一起安装,然后运行自己和提取的虚拟机。

但是,这只是理论。 在实践中,虚拟机管理程序是非常复杂的软件,需要某种ring-0访问(内核级别)直接与CPU和其他硬件进行通信,VirtualBox也不例外。 因此,在任何关心安全性的操作系统上安装它们都需要管理员/ root / supervisor访问权限,否则就无法安装驱动程序和其他内核组件。

如果不考虑性能,可以使用一个仿真器,如Qemu / Bochs,它可以在没有ring-0访问的情况下工作。 但是,我目前还没有意识到任何有预先烘焙的VM镜像的自解压和可运行模拟器的项目(在Windows上更是如此)。

Tekn0写入时,需要低层访问主机操作系统层。 我找到了设置主机的项目Portable VirtualBox 。 我测试了它,并不足够令人满意。 来自网站:

注意

VirtualBox需要安装几个内核驱动程序,并且需要启动多个服务:如果驱动程序和服务尚未安装,则需要管理员权限才能运行Portable-VirtualBox。

当Portable-VirtualBox启动时,它会检查是否安装了驱动程序。 如果不是的话,那么在运行VirtualBox之前会先安装它们,然后再删除它们。 同样,Portable-VirtualBox会检查服务是否正在运行。 如果没有,它会启动它们,然后在退出时停止它们。

结果是一个产品并不总是运行,并有奇怪的内核错误。 还有另一个项目(从Tekn0观察开始) Kquemu Portable ,最后是Bochs 。