Overview

When a VM installation fails (for example, a broken OVF/OVA import such as a Cisco vWLC), Proxmox may leave behind:

  • A VM configuration
  • LVM disks (local-lvm)
  • Uploaded OVF / ISO / OVA files

Before reinstalling, it is best practice to perform a clean removal using the Proxmox CLI.

This guide walks through a safe and complete cleanup process.


Prerequisites

  • Root access to the Proxmox node
  • VM ID (VMID) of the failed VM
  • Storage backend (examples use local-lvm)

Step 1: Identify the VM

List all VMs on the node:

qm list

Example output:

 VMID NAME                  STATUS
 300  ASCTVMSMALL851610     stopped

Take note of the VMID (example: 300).


Step 2: Stop the VM (if running)

If the VM is running, stop it cleanly:

qm stop 300

If the VM is already stopped, this command is harmless.


Step 3: Destroy the VM Configuration

Remove the VM and all associated resources:

qm destroy 300 --purge

If your Proxmox version does not support --purge, use:

qm destroy 300

This removes:

  • VM configuration
  • Disk references
  • Snapshots

Step 4: Verify and Remove Leftover LVM Disks

Check for remaining logical volumes:

lvs

or:

lvscan

Look for volumes like:

vm-300-disk-0

If any remain, remove them manually:

lvremove /dev/pve/vm-300-disk-0

Confirm removal:

lvs

Step 5: Remove Uploaded OVA / OVF / ISO Files

Check common upload locations:

ls -lh /root
ls -lh /root | grep CTVM

Remove unused files or directories:

rm -rf /root/AIR_CTVM-K9_8_5_161_0.ova
rm -rf /root/vwlc_ova

⚠️ Only delete files you are sure are no longer needed.


Step 6: Verify Storage Is Clean

Check storage contents:

pvesm list local-lvm

Ensure there are no leftover vm-300-* volumes.


Step 7: Final Validation

Run the following to confirm a clean state:

qm list
lvs

Expected result:

  • VMID no longer exists
  • No orphaned LVM volumes remain

At this point, the system is ready for a fresh VM import or reinstall.


Common Mistakes to Avoid

  • ❌ Reusing a broken VM without cleanup
  • ❌ Importing an ISO instead of OVF/VMDK for appliances
  • ❌ Leaving orphaned LVM disks
  • ❌ Repeatedly retrying failed imports without cleanup

Next Steps

After cleanup, proceed with:

  • Fresh OVF/OVA extraction
  • Proper qm importovf usage
  • Correct boot disk assignment
  • Network adapter validation before first boot

This approach prevents persistent boot loops and “no bootable device” errors.


Summary

A clean Proxmox environment ensures:

  • Predictable VM behavior
  • Correct storage allocation
  • Faster troubleshooting
  • Easier rebuilds

This cleanup procedure should be performed before any reinstall after a failed VM deployment.