要求:備份的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.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/p_w_picpaths/ #定義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 p_w_picpath\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