Exercise: Cloning VMs in virt-manager


Cloning kvm1
  • In default KVM configuration, the VM disk images are stored in directory /var/lib/libvirt/images and the VM configurations in directory /etc/libvirt/qemu.
    The image files take large space, so we need to create an additional folder to store them:
    mkdir /home/hostadm/KVM
    chmod 755 /home/hostadm/KVM
    

  • Prepare kvm1 for cloning:
    virsh shutdown kvm1 
    sudo chmod a+r /var/lib/libvirt/images/kvm1.img
    

  • Launch virt-manager. Right click onto kvm1 and select to "clone". Name the cloned system kvm2.
    For the storage option, select "Details",
    then specify the new path: /home/hostadm/KVM/kvm2.img
    Keep the default configuration settings for the other parameters.
    This will be a new VM with the systems configurations originally set in kvm1.
  • After the cloning procedure is completed, boot kvm2:
    virsh list --all
    virsh start kvm2
    
    Login to the system as user hostadm, elevate privileges by running sudo -s, then follow the procedure below to change the host name from kvm1 to kvm2:
    Edit file /etc/hostname and replace kvm1 by kvm2.
    Edit file /etc/hosts and remove the line containing 127.0.1.1 kvm1.

    Note, if there is file /etc/udev/rules.d/70-persistent-net.rules, then remove it:
    ls /etc/udev/rules.d/70-persistent-net.rules && rm /etc/udev/rules.d/70-persistent-net.rules
    

  • Execute command reboot on kvm2:
    reboot
    
    Exit the VM console with ^] key combination.

  • Login to kvm2 again after it boots up:
    virsh console kvm2
    
    Check if the system recognizes itself as kvm2:
    uname -n
    
    Shutdown kvm2 by running command shutdown on it:
    sudo -s
    shutdown now -h
    
    When the VM console exits, make sure kvm2 is no longer running:
    virsh list --all