如何导出和导入VirtualBox虚拟机镜像?

在VirtualBox中,您可以创建虚拟机,并将其存储在VirtualBox的“默认虚拟机文件夹”内的一个文件夹中。
例如,在创建一个名为“ubuntu-headless”的虚拟机后,它将在其中创建一个名为“ubuntu-headless”的目录,里面包含一些文件和更多的文件夹。
我想要在另一个同样安装了VirtualBox的系统上使这个虚拟机正常工作,就像复制一样。
将这个虚拟机目录简单地复制粘贴到目标系统的“默认虚拟机文件夹”内,会起作用吗?
简而言之:如何将VirtualBox镜像从一个系统转移到另一个系统?
3个回答

复制/粘贴虚拟机文件不是正确的方法。您需要使用VirtualBox的正确导出/导入功能。
通过以下说明,您将能够在多台不同的物理机器之间传输虚拟机,并且这也是一种很好的备份方式。
导出
打开VirtualBox并进入“文件”选项,选择“导出虚拟设备...”

at the top left corner, then file and export appliance

然后,您将获得一个辅助窗口,以帮助您生成图像。

  1. 选择要导出的虚拟机
  2. 输入输出文件路径和名称

    注意输出路径和文件名,确保不改变文件扩展名

    您可以选择一个格式,我通常保留默认的OVF 1。

  3. 最后,您可以编写元数据,如版本和描述

现在您有一个OVA文件,可以将其带到任何机器上使用。

导入

打开VirtualBox并进入“文件”选项,选择“导入”

然后,您将获得一个辅助窗口,以帮助您加载图像。

  1. 输入您之前导出的文件的路径

    选择之前生成的文件

  2. 然后您可以修改虚拟机的设置,如内存大小、CPU等

    根据您的系统给出配置,不需要全部,但足够

    我建议您启用“重新初始化所有网络适配器的MAC地址”选项

  3. 点击“导入”,完成!

现在您已经将虚拟机从主机复制到另一台机器上了


1唯一的缺点是在这个过程中我会失去快照,而且在很多情况下我都会想念它。 - Fenyx
2如果对于“将此虚拟机目录简单复制/粘贴到目标系统的默认机器文件夹中是否有效?”有一个答案,那么这个回答将是完美的。 - vaughan
这个解决方案不起作用。进口的机器从来没有启动过。 - machineaddict
1我刚刚尝试了一下,确实有效。在导出时,虚拟机必须处于关闭状态。这是2017年正确的操作方法。以下是一篇文章,介绍了如何将VirtualBox虚拟机导出为应用程序:https://www.techrepublic.com/article/how-to-export-virtualbox-virtual-machines-as-appliances/ - Hrvoje T

以下是通过命令行导出VirtualBox虚拟机的步骤:
首先,使用"vboxmanage list vms"命令确定要导出的虚拟机,例如:
$ vboxmanage list vms
"vpn-client" {99378e99-d5c4-4bea-87ab-ca5ab28febea}
"vpn-client_1" {409eaa40-59c2-4259-9188-eef7479f1b91}
"kohadevbox_default_1430411165168_43224" {e9aa10d9-8aa3-4186-a39b-014b2c3589dc}
"kohadevbox_default_1431032598419_15901" {f384ba7e-d842-421e-b194-70a9573479eb}
"bc-koha-git" {76ad3f69-4acb-4332-b4a2-bf929a281f8f}
"nekls-git-29295" {68bb8720-e12b-49b9-a137-65bff75be66d}
"bc-kohaclone-git" {8b049d97-ff3b-4799-87e0-bda26f822ae0}
"bc-anthrolit-git" {dc435bbe-ded0-4cb2-baf3-4e7c6532fdf8}
"bc-maplleaf-git" {5a6c1e94-766f-4f93-96dc-8da07b0addd8}
"bc-mapleleaf2-git" {4aee2010-c834-4acc-971d-606ec950c938}
"Ubuntu VPN Client" {a0cf4d62-94ad-4d2e-ae0d-2bd2fc2765ae}
"kohadevbox_jessie_1449028830412_79167" {57ab8e8c-4e1a-452c-b324-cd0ae84374ba}
"kohadevbox_wheezy_1449030179528_35330" {ec8e3493-543d-424c-bf51-3ac5601a26ff}
"kohadevbox2_jessie_1463457128498_11997" {00f0d140-7c77-42f8-8512-92e4dded9c37}

在这种情况下,我打算导出 vpn-client_1
$ vboxmanage export vpn-client_1 -o vpn-client_1.ova                                                                  
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

要导入,使用
vboxmanage import vpn-client_1.ova

使用-n选项将提示您进行导入选项;有关详细信息,请参阅vboxmanage --help