「virt-clone(1)」-

  LINUX MANUAL PAGES

克隆已经存在的虚拟机镜像

命令语法格式

virt-clone [OPTION]…

命令描述

virt-clone是一个命令行工具,用于克隆现有虚拟机映像,它使用“libvirt”库。它将复制任何现有虚拟机的磁盘映像,并定义具有相同虚拟硬件配置的新GuestVM。并将更新要求唯一性的元素,以避免新老GuestVM之间的冲突。

默认情况下,如果未提供克隆GuestVM的必要信息,virt-clone将显示错误。除了要复制的源GuestVM之外,选项–auto-clone将生成所有需要的输入。

请注意,virt-clone不会更改GuestVM的任何内容,它只复制磁盘,并进行主机端更改。因此,更改密码、更改静态IP地址等内容超出了此工具的范围。有关这些类型的更改,请参阅virt-sysprep。

命令支持的选项及含义

大多数选项都不是必需的。最低要求是–original或–original-xml(用于指定要克隆的GuestVM),–name,通过–file指定的相应存储选项。

必须选项

-o ORIGINAL_GUEST, –original ORIGINAL_GUEST
要克隆的原始GuestVM的名称。必须关闭或暂停此GuestVM,因为现在还无法安全克隆出于活动中的GuestVM。

-n NAME, –name NAME
新GuestVM实例的名称。这在Hypervisor连接中已知的所有GuestVM中必须是唯一的,包括那些当前不活动的GuestVM。

–original-xml ORIGINAL_XML
将Libvirt的GuestVM的xml文件用作原始GuestVM。不需要在libvirt连接上定义GuestVM。该选项取代了“–original”参数。

-f DISKFILE, –file DISKFILE
到文件、磁盘分区、逻辑卷的路径,用作新GuestVM虚拟磁盘的后备存储。如果原始GuestVM具有多个磁盘,则此参数必须重复多次,原始虚拟机中的每个磁盘一次。

非必须选项

–connect URI
连接到非默认Hypervisor。有关详细信息,请参阅virt-install(1)。

–auto-clone
生成新的GuestVM名称,以及新存储的路径。示例或可能生成的输出如下:

Original name : MyVM

Generated clone name : MyVM-clone

Original disk path : /home/user/foobar.img

Generated disk path : /home/user/foobar-clone.img

如果生成的名称与现有VM或存储冲突,则会附加一个数字,例如“foobar-clone-1.img”或“MyVM-clone-3”等类似的形式。

-u UUID –uuid UUID
UUID用于GuestVM;如果没有给出,则将生成随机UUID。如果指定UUID,则应使用32位十六进制数字。

UUID旨在在整个数据中心乃至整个世界中都是独一无二的。如果手动指定UUID,请记住这一点。

–nvram NVRAMFILE
新nvram VARS文件的可选路径。如果GuestVM具有nvram,且未指定路径,则将自动生成新的nvram路径。如果GuestVM没有nvram,则会忽略此选项。

–force-copy TARGET
强制克隆传递的磁盘目标(’hdc’,’sda’等)。默认情况下,“virt-clone”将跳过某些磁盘,例如标记为“readonly”(只读)或“shareable”(可共享)的磁盘。

–nonsparse
如果要克隆的路径是稀疏文件,则完全分配新存储。有关稀疏与非稀疏的更多详细信息,请参阅virt-install(1)。

–preserve-data
不克隆存储:–file特定的磁盘映像按原样保留,并在新克隆XML中引用。如果要克隆VM XML模板而不是存储内容,这将非常有用。

–reflink
指定–reflink时,执行轻量级复制。如果源镜像和目标镜像都在同一个btrfs文件系统上,则速度会快得多。如果无法进行COW复制,则virt-clone将失败。

-m MAC –mac MAC
固定GuestVM的MAC地址;如果省略该参数,或者指定值“RANDOM”,则将随机生成合适的地址。地址按顺序应用于网络,正如它们在原始GuestVM的XML中列出。

–print-xml
打印生成的克隆GuestVM的XML并退出,而不进行克隆。

–replace
在克隆原始GuestVM之前,使用传递的“–name”关闭并删除任何现有GuestVM。

–check
启用或禁用某些验证检查。有关更多详细信息,请参阅virt-install(1)。

-q –quiet
抑制非错误输出。

-d –debug
运行安装过程时,将调试信息打印到终端。调试信息也存储在“~/.cache/virt-manager/virt-clone.log”中,即使省略了该参数。

其他选项

-h –help
显示帮助信息并退出。

–version
显示版本信息并退出。

使用示例

在默认的Hypersisor连接上,克隆名为“demo”的GuestVM,自动生成新名称和磁盘克隆路径:

# virt-clone –original demo –auto-clone

克隆名为“demo”的GuestVm,该GuestVM有一个要复制的磁盘:

# virt-clone –original demo –name newdemo –file /var/lib/xen/images/newdemo.img

克隆使用多个磁盘的QEMU的GuestVM:

# virt-clone \


–connect qemu:///system \


–original demo \


–name newdemo \


–file /var/lib/xen/images/newdemo.img \


–file /var/lib/xen/images/newdata.img

将GuestVM克隆到至少与原始GuestVM磁盘一样大的物理设备。如果目标设备较大,则新的虚拟机可以在引导时调整文件系统大小。

# virt-clone \


–connect qemu:///system \


–original demo \


–name newdemo \


–file /dev/HostVG/DemoVM \


–mac 52:54:00:34:11:54

如上示例所示。

相关手册

“virt-sysprep(1)”, virsh(1), “virt-install(1)”, “virt-manager(1)”

the project website: http://virt-manager.org

参考文献

  • man 1 virt-clone, Version 11.5.1-1

更新日志

  • 08/22/2018 创建文章