首页/云/云平台与虚拟化速查/virt-clone 克隆虚拟机
虚拟化操作94 条

virt-clone 克隆虚拟机

virt-clone 基于源域复制配置与磁盘生成新虚机:--auto-clone 自动命名磁盘,--file 指定目标盘;要求源域关机,克隆后需处理主机名与机器标识。

云平台与虚拟化速查云更新于 2026-10-13

virt-clone 是什么

virt-clone 基于已有虚机定义克隆出新虚机,自动复制磁盘并重新生成 UUID 与网卡 MAC,避免标识冲突。它要求源域处于关机状态且没有保存的状态文件,否则磁盘读取无法保证一致性。克隆完成只是第一步,还要进 guest 改主机名、机器标识与网络配置;Windows 场景需要配合 Sysprep,否则会出现 SID 与授权冲突。

基本信息

自动模式virt-clone --original vm1 --name vm2 --auto-clone
指定磁盘--file /var/lib/libvirt/images/vm2.qcow2
前提源域已关机(含无保存状态)
后处理guest 内改主机名;Windows 走 Sysprep
与手工拷贝差别自动重生成 UUID 与 MAC,并注册新域

典型使用场景

  • 从标准模板快速派生开发或测试环境
  • 批量生成同构节点用于压测或演练
  • 保留当前环境副本,改造前留后路
  • 为不同环境复制同一套应用栈
  • 克隆后调整规格用于不同规格的验证

克隆与核对

克隆与核对
sudo virsh shutdown vm1                     # 源域必须关机
virsh list --all | grep vm1                 # 确认状态为 shut off
sudo virt-clone --original vm1 --name vm2 \
  --file /var/lib/libvirt/images/vm2.qcow2
sudo virsh list --all | grep vm2            # 确认新域已注册
virsh dumpxml vm2 | grep -E 'uuid|mac'      # 核对标识已重新生成

克隆后的处理

项目是否自动处理仍需手工处理
磁盘复制自动复制并指向新路径确认存储空间与后端存储策略
UUID 与 MAC自动重新生成核对 dumpxml,避免与源域重复
主机名不处理guest 内修改 hostname 与相关配置
机器标识不处理Linux 关注 machine-id,Windows 需 Sysprep
网络配置不处理静态 IP 需改为新地址,避免与原虚机冲突
主机密钥不处理清理 SSH 主机密钥或重建,避免认证告警
克隆出的虚机不要与原虚机同时使用同一 IP 或同一主机名:监控、授权与日志系统会把两者混为一体,排查问题时非常难分辨。
使用 --auto-clone 时目标磁盘路径由工具生成,存储池与目录规划要提前确认,避免磁盘落到非预期的存储上。
克隆前先把源虚机整理干净:清理临时文件与日志、卸载无关挂载、关闭不再需要的服务,能减少克隆后逐台整改的工作量。

易错点

  • 克隆后不改主机名/机器标识,监控与授权系统出现重复身份
  • 源域未关机直接克隆失败:磁盘读取无法保证一致性
  • 克隆虚机沿用源虚机的静态 IP,上线即造成地址冲突
  • Windows 虚机不做 Sysprep,SID 重复引发域与授权问题

数据来源与参考

  • virt-clone 手册(libvirt.org)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌