If you’ve ever removed a storage drive or LVM volume from a Proxmox node, you may have found a “ghost” virtual machine left behind in the web UI, one that can’t be started, migrated, or even deleted through the normal methods. Every time you try, you’re met with an error, and the VM just sits there. This guide covers how to safely remove that orphaned VM configuration from your node.
The Problem: “Storage does not exist”
The reason this happens is that the standard tool, qm destroy, is designed to be safe, so it tries to remove the VM’s virtual disks from storage before it deletes the configuration file. If that storage is already gone, the command fails before it can finish the job, which leaves the config file behind and the ghost VM still showing in the UI.
The error in the shell looks like this:
root@pve-node:~# qm destroy <VMID>
storage '<your-storage-name>' does not exist
The Solution: Remove the Configuration File Manually
Since the tool won’t do it, the fix is to delete the VM’s configuration file yourself, which is straightforward once you know where it lives.
Step 1: Identify the VM ID and Node
From the web UI, note the numeric ID of the orphaned VM (for example 101) and which node it sits on (for example pve-node-1), since you’ll need both in a moment.
Step 2: SSH into the Proxmox Node
Open a terminal and connect to the correct node over SSH:
ssh root@your-proxmox-node-ip
Step 3: Locate the Configuration File
Proxmox keeps all its QEMU (KVM) virtual machine configurations in one directory, so you can list them to find the one belonging to your orphaned VM. Replace <nodename> with the name of your node:
ls -l /etc/pve/nodes/<nodename>/qemu-server/
You’ll see a file named after the VM ID, for example 101.conf.
Step 4: Remove the Configuration File
Now delete the file with rm, but double-check the VM ID before you do, since this can’t be undone and you don’t want to remove a config for a VM you actually still use:
# Replace <nodename> and <VMID> with your actual values
rm /etc/pve/nodes/<nodename>/qemu-server/<VMID>.conf
For example, if your node is pve-node-1 and the VM ID is 101, the command would be:
rm /etc/pve/nodes/pve-node-1/qemu-server/101.conf
Step 5: Refresh the Web UI
Go back to the Proxmox web UI and refresh the page, and the orphaned VM will be gone. Because /etc/pve is a shared cluster filesystem, the change propagates to the rest of the cluster on its own, so there’s nothing else to clean up.


Leave a Reply