KVM之全自动链接克隆虚拟机脚本

柳三千

文章最后更新时间:2025年06月13日

前言:

编写KVM链接克隆虚拟机脚本,支持通过参数指定虚拟机名、磁盘路径和配置文件,提升脚本灵活性。

脚本内容

[root@KVM data]# cat /root/Clone_virtual_machine 
#!/bin/bash
# 定义虚拟机名
echo 'Please enter a new clone name '
read vhost

# 定义旧的磁盘文件路径(需要自己准备)
echo 'Old disk path'
read odisk

# 定义新的磁盘文件路径
echo 'New disk path'
read ndisk

# 生成新的磁盘文件
qemu-img create -f qcow2 -b $odisk $ndisk.qcow2

# 指定新的虚拟机配置文件模板(需要自己准备)
echo 'Specifies the path of the new virtual machine profile template'
read template

# 修改虚拟机名字
sed -ri "s#(<name>)(.*)(</name>)#\1$vhost\3#g" $template

# 删除uuid
sed -i "/<uuid>/d" $template

# 删除mac地址
sed -i "/mac address/d" $template

# 修改磁盘类型
sed -ri "s#(<driver name='qemu' type=')(.*)('/>)#\1qcow2\3#g" $template

# 修改磁盘路径
sed -ri "s#( <source file=')(.*)('/>)#\1$ndisk.qcow2\3#g" $template

# 配置导入虚拟机并启动
virsh define $template
virsh start $vhost

执行脚本

准备配置文件模板和磁盘文件

[root@KVM data]# virsh dumpxml centos7.2 > /opt/template.xml
[root@KVM data]# ll /opt/
总用量 2614156
-rw-------. 1 root root 10737418240 11月 22 16:59 Centos7.raw
-rw-r--r--. 1 qemu qemu  1020264448 11月 22 09:37 CentOS-7-x86_64-Minimal-2009.iso
-rw-r--r--. 1 root root        5498 11月 22 10:11 centos7.xml
drwxr-xr-x. 2 root root           6 10月 31 2018 rh
-rw-r--r--. 1 root root        4001 11月 24 19:18 template.xml

执行步骤

  1. 输入克隆主机新名字(示例:clone_test

  2. 输入旧磁盘文件路径

  3. 输入新磁盘文件路径(建议包含虚拟机名以便关联)

  4. 输入模板配置文件路径

  5. 克隆成功验证

温馨提示:

此脚本适用于单硬盘虚拟机克隆,若为多硬盘虚拟机,需手动修改配置文件中的硬盘参数以适配实际情况。

文章版权声明:除非注明,否则均为柳三千运维录原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码