How to delete KVM VM guest using virsh command
I
am a new Linux and KVM user. How do I delete a VM guest with virsh command line on Linux operating system? How do I delete a virtual machine called vps42 on Ubuntu or CentOS Linux server?
Deleting a VM Guest removes its XML configuration by default stored in /etc/ directory. You may also delete a guest’s storage files to completely erase the guest. In this quick tutorial you will learn how to delete a VM guest with virsh on Debian/Ubuntu/RHEL/CentOS Linux servers.
To Delete a KVM Guest Using Virsh:
First, list all running KVM guests using “virsh list” command.
Next, you need to shut down a guest virtual machine using the “virsh shutdown VM” command.
Finally, delete a VM Guest with “virsh undefine VM” command.
Let us see steps in details.
Step 1: List all a VM guests
Type the following command:
# virsh list
Sample outputs:
Fig.01: Virsh list a KVM vm
To see info about domain called openbsd, enter:
# virsh dumpxml VM_NAME
# virsh dumpxml –domain VM_NAME
# virsh dumpxml –domain openbsd
Note down a guest’s storage files
# virsh dumpxml –domain openbsd | grep source file
<source file= /nfswheel/kvm/openbsd.qcow2 />
Step 2: Shutdown the guest
Type the following command to shutdown the vm called openbsd:
# virsh shutdown VM_NAME
# virsh shutdown –domain VM_NAME
# virsh shutdown –domain openbsd
You can force a guest virtual machine to stop with the virsh destroy command:
# virsh destroy VM_NAME
# virsh destroy –domain VM_NAME
# virsh destroy –domain openbsd
Step 3: Deleting a virtual machine
To delete a VM Guest with virsh run
# virsh undefine VM_NAME
# virsh undefine –domain VM_NAME
# virsh undefine –domain openbsd
Sample outputs:
Domain openbsd has been undefined
There is no option to automatically delete the attached storage file called /nfswheel/kvm/openbsd.qcow2. To delete it, enter:
# rm -rf /nfswheel/kvm/openbsd.qcow2
A note about error: “cannot delete inactive domain with snapshots”
You cannot delete a VM with snapshots. For example:
# virsh undefine –domain openbsd
Sample outputs:
error: Failed to undefine domain openbsd
error: Requested operation is not valid: cannot delete inactive domain with 2 snapshots
To list snapshots, enter:
# virsh snapshot-list –domain VM_NAME
# virsh snapshot-list –domain openbsd
Sample outputs:
Name Creation Time State
3sep2016 2016-09-02 13:38:18 -0500 shutoff
3sep2016u1 2016-09-02 15:04:50 -0500 shutoff
The syntax is as follows to delete snapshot:
# virsh snapshot-delete –domain VM_NAME –snapshotname SNAPSHOT_NAME
To delete both snapshots, enter:
# virsh snapshot-delete –domain openbsd –snapshotname 3sep2016
Domain snapshot 3sep2016 deleted
# virsh snapshot-delete –domain openbsd –snapshotname 3sep2016u1
Domain snapshot 3sep2016u1 deleted
Verify it:
# virsh snapshot-list –domain openbsd
Name Creation Time State
Now delete the vm:
# virsh undefine –domain openbsd
Domain openbsd has been undefined
# rm -f /nfswheel/kvm/openbsd.qcow2