要求:备份的img磁盘格式只有qcow2格式支持增量盘使用和快照功能 当你的一个虚拟机格式是raw格式时,请先格式转换 如:linux7.raw 是raw格式 qemu-img convert -c -O qcow2 linux7.raw linux7.qcow2 默认的img或硬盘存放在/var/lib/libvirt/images/ 默认的xml文件存放在/etc/libvirt/qemu/ 脚本: 先创建了一个模板机,怎么创建用KVM创建虚拟机这里省略,阿铭老师都讲的很详细。 我这里创建虚拟的信息如下 ls /var/lib/libvirt/images/ linux7.img ls /etc/libvirt/qemu/ linux7.xml 作为模板机,我不允许或不让别人知道上面那两个文件。 mv /var/lib/libvirt/images/linux7.img /var/lib/libvirt/images/.linux7.img mv /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 :1 2.步骤二 [root@room liuwenzhi]# virsh list --all 查看克隆机器 2 linux7-clone1 closed 3.步骤三 [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/images/ #定义XML文件放置目录 xml_dir=/etc/libvirt/qemu/ #模板机器IMG src_name=linux7 src_img=.linux7.img src_xml=.linux7.xml menu (){ 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 :" num dst_name=$src_name-clone${num} dst_img=$src_name-clone${num}.img dst_xml=$src_name-clone${num}.xml if [ -z $num ] ;then echo -e "\033[33mplease input a number !\033[0m" exit 10 fi expr $num "+" 1 &>/dev/null if [ $? -ne 0 ] ;then echo -e "\033[33mplease input a number !\033[0m" exit 11 fi if [ $num -eq 0 ] ;then echo -e "\033[33minput a number not range !\033[0m" exit 12 fi if [ -f $img_dir$dst_img -o -f $xml_dir$dst_xml ] ;then echo -e "\033[33mclone--->clone${num} exists,fail!\033[0m" exit 13 fi echo -en "wait ... clone KVM image\t" qemu-img create -f qcow2 -b $img_dir$src_img $img_dir$dst_img &>/dev/null echo -e "\033[32;1m[OK]\033[0m" echo -en "wait ... Copy KVM xml\t\t" cat /etc/libvirt/qemu/.linux7.xml > /tmp/kvm.xml sed -i "//s/$src_name/$dst_name/" /tmp/kvm.xml sed -i "//c\$(uuidgen)" /tmp/kvm.xml sed -i "//dev/null echo -e "\033[32;1m[OK]\033[0m" echo "done" } while : do menu KVM_CLONE exit 0 done
本文出自 “蚂蚱小子” 博客,请务必保留此出处http://zxlwz.blog.51cto.com/6952946/1852424
原文地址:http://zxlwz.blog.51cto.com/6952946/1852424