要求:备份的img磁盘格式只有qcow2格式支持增量盘使用和快照功能当你的一个虚拟机格式是raw格式时,请先格式转换如:linux7.raw 是raw格式qemu-img convert -c -O qcow2 linux7.raw linux7.qcow2默认的img或硬盘存放在/var/lib/libvirt/p_w_picpaths/默认的xml文件存放在/etc/libvirt/qemu/脚本:先创建了一个模板机,怎么创建用KVM创建虚拟机这里省略,阿铭老师都讲的很详细。我这里创建虚拟的信息如下ls /var/lib/libvirt/p_w_picpaths/linux7.img   ls /etc/libvirt/qemu/linux7.xml   作为模板机,我不允许或不让别人知道上面那两个文件。mv /var/lib/libvirt/p_w_picpaths/linux7.img /var/lib/libvirt/p_w_picpaths/.linux7.imgmv /etc/libvirt/qemu/linux7.xml /etc/libvirt/qemu/.linux7.xml修改vim /etc/libvirt/qemu/.linux7.xml在这行修改为后续,当要克隆机器后,直接运行脚本克隆即可!解决问题:解决了每次克隆完后还要修改xml文件,进系统后还要进行>/etc/udev/70*。效果图,步骤1.步骤一[root@room liuwenzhi]# kvm_clone    #运行脚本      ###########KVM clone ###########      #                              #      #       Welcome Use            #      #                              #      ################################Enter a number :12.步骤二[root@room liuwenzhi]# virsh list --all  查看克隆机器2    linux7-clone1                  closed3.步骤三[root@room liuwenzhi]# virsh start linux7-clone1   开机4.进入系统后修改ip搞定了[root@room liuwenzhi]#nmtui       #我的机器是centos7,所以setup没有,改成nmtui了脚本代码[root@room liuwenzhi]# cat kvm_clone#!/bin/bash#定义磁盘放置目录img_dir=/var/lib/libvirt/p_w_picpaths/#定义XML文件放置目录xml_dir=/etc/libvirt/qemu/#模板机器IMGsrc_name=linux7src_img=.linux7.imgsrc_xml=.linux7.xmlmenu (){        abc=3$[RANDOM%8]        echo -e "\033[${abc};1m      ###########KVM clone ###########\033[0m"        echo -e "\033[${abc};1m      #                              #\033[0m"        echo -e "\033[${abc};1m      #       Welcome Use            #\033[0m"        echo -e "\033[${abc};1m      #                              #\033[0m"        echo -e "\033[${abc};1m      ################################\033[0m"}KVM_CLONE(){read -p "Enter a number :" numdst_name=$src_name-clone${num}dst_img=$src_name-clone${num}.imgdst_xml=$src_name-clone${num}.xmlif [ -z $num ] ;then        echo -e "\033[33mplease input a number !\033[0m"        exit 10fiexpr $num "+" 1 &>/dev/nullif [ $? -ne 0 ] ;then        echo -e "\033[33mplease input a number !\033[0m"        exit 11fiif [ $num -eq 0 ] ;then        echo -e "\033[33minput a number not range !\033[0m"        exit 12fiif [ -f $img_dir$dst_img -o -f $xml_dir$dst_xml ] ;then        echo -e "\033[33mclone--->clone${num} exists,fail!\033[0m"        exit 13fiecho -en "wait ... clone KVM p_w_picpath\t"qemu-img create -f qcow2 -b $img_dir$src_img $img_dir$dst_img  &>/dev/nullecho -e "\033[32;1m[OK]\033[0m"echo -en "wait ... Copy KVM xml\t\t"cat /etc/libvirt/qemu/.linux7.xml > /tmp/kvm.xmlsed -i "//s/$src_name/$dst_name/" /tmp/kvm.xmlsed -i "//c\$(uuidgen)" /tmp/kvm.xmlsed -i "//dev/nullecho -e "\033[32;1m[OK]\033[0m"echo  "done"}while :do        menu        KVM_CLONE                exit 0done