我知道有两种在 Linux 主机上克隆 VirtualBox 机器的方法,一种是使用 VirtualBox GUI 并作为设备导出并重新导入(在 VirtualBox 的文件菜单中)。
另一种方法是仅克隆虚拟磁盘容器文件:
VBoxManage clonevdi /mnt/md1/original/root-fs.vdi /mnt/md1/cloned/root-fs.vdi
(取自http://forums.virtualbox.org/viewtopic.php?p=853#p858)
编辑:这似乎不适用于已经是 ~/VirtualBox/VirtualBox.xml 一部分的 VDI 文件,我收到一条错误消息:
错误:无法注册 UUID 为 {96a1462b-c30a-4911-a954-d9093122f083} 的硬盘 '/mnt/md1/original/root-fs.vdi',因为媒体注册表 ('/home/mit/.VirtualBox/VirtualBox.xml') 中已经存在 UUID 为 {96a1462b-c30a-4911-a954-d9093122f083} 的硬盘 '/mnt/md1/original/root-fs.vdi'
我必须随后创建一个新的虚拟机并使用克隆的虚拟磁盘容器。
是否也可以通过使用文件系统命令复制虚拟磁盘包含文件和配置文件来克隆虚拟机,然后手动完成其余操作?
我必须手动编辑 ~/VirtualBox/VirtualBox.xml 并插入新磁盘和新机器:
我可以编造 UUID 吗?或者这该如何工作?
我非常喜欢这种硬核的做事方法,因为它允许我自由而快速地备份、恢复、移动或克隆机器。或者有更好的方法来做到这一点?
答案1
您可以使用命令更改 vdi 的 UUID
VBoxManage internalcommands setvdiuuid disk.vdi
或者如果你正在使用 VBox V4.x 至少到 4.0.10
VBoxManage internalcommands sethduuid disk.vdi
然后使用 GUI 导入新的“唯一”磁盘。
如果您想要克隆特定的 VirtualBox 机器,那么最好先制作一个设备,然后使用它。要制作设备,请使用 GUI 导出设备功能或命令vboxmanage export
。然后可以使用 GUI 导入设备功能或命令导入生成的设备vboxmanage import
。
答案2
或者,您可以使用 machineid 的正确 uuid 编辑“Virtualbox.xml”设置文件。对于我将虚拟机从一台主机移动到另一台主机(两台主机都是 64 位 Linux,不知道移动到 Windows 或 Mac 是否有效)来说,效果很好,请参阅http://sickel.net/blogg/?p=1581了解详情。
即使原始主机上的 vboxmanager 由于某种原因无法运行,这仍然有效。