IT Anatomy: VMware Virtual Machine Files and Settings Explained (vmdk, vmx, swap and more under the microscope)
What is a VMware Virtual Machine (VM)?
The short answer — believe it or not, a virtual machine, when powered off, is just a bunch of files. When it's powered on, it's a few more files plus whatever is scheduled onto the physical CPUs and memory. That’s about it.
If you want a more detailed definition, VMware’s own description in their vSphere documentation is spot on:
A virtual machine is a software computer that, like a physical computer, runs an operating system and applications. The virtual machine is comprised of a set of specification and configuration files and is backed by the physical resources of a host. Every virtual machine has virtual devices that provide the same functionality as physical hardware and have additional benefits in terms of portability, manageability, and security. A virtual machine consists of several types of files that you store on a supported storage device.
Why is it made up of Files why isn't just all run from the vCenter database?
Think about what being a standalone entity enables: the VM can run and be restarted on the ESXi host even when vCenter is down. It can be removed from one vCenter and added to another. It can be copied offline and moved—say, to VMware Workstation. The VM can be backed up and recovered even if the vCenter database is corrupted. You can use storage replication to mirror the VM.
In short, a virtual machine is much more portable if it maintains a degree of independence.
When a VM is managed by vCenter, vCenter regularly makes changes to the VM’s files. It also stores information about the VM that isn’t in those files—mostly related to inventory location and runtime state, but also additional metadata like tags. This is what powers the graphical interface we know and love, and enables all the vCenter functionality we rely on.
But even then, our lovely little virtual machine still needs its independence.
So now we know what a VM is, let the anatomy lesson begin
VMware Virtual Machine Files Explained
A comprehensive breakdown of every file used in VMware virtual machines, including configuration, disk, snapshot, log, and lock files. Intended for technical VMware administrators working in vSphere/ESXi environments.
Summary Table
File Type | Purpose |
---|---|
VMX | Main VM configuration |
VMX~ | Temporary config backup |
VMTX | Template configuration |
VMXF | Optional metadata (legacy) |
NVRAM | VM BIOS/UEFI settings |
VSWP | VM memory swap |
VMX VSWP | VMX process swap |
VMDK | Disk descriptor |
-flat.vmdk | Disk content |
-ctk.vmdk | Changed Block Tracking |
-rdm.vmdk | Raw device mapping |
-delta.vmdk | Snapshot delta data |
-xx.vmdk | Split VMDK segment |
VMSD | Snapshot metadata |
VMSS | Suspended VM memory |
VMSN | Snapshot memory + device state |
-aux.xml | Deprecated snapshot info |
.redo | Deprecated redo log |
vmware.log | Runtime activity log |
vmware-#.log | Archived log history |
VMX.LCK | Config file lock |
LCK- | NFS file lock |
Base Configuration Files
VMX File – Configuration File
The primary configuration file for the virtual machine. It defines VM hardware—CPUs, memory, disk controllers, NICs—and references to virtual disks and devices. This file is essential for VM startup and operation.
It’s plain-text and editable, though manual edits are risky and rarely necessary in production.
VMX~ File – Edit File (Exists When Powered On Only)
A temporary backup of the .vmx
file created during live configuration changes. Exists only while the VM is powered on. Automatically removed when the VM shuts down cleanly.
VMTX File – Configuration File for a Template
When a VM is converted to a template, its configuration is saved as a .vmtx
file. Functionally equivalent to .vmx
but marked read-only. Used for cloning new VMs from the template.
VMXF File – Supplemental Configuration
An optional XML file containing metadata, typically used in VMware Workstation or Fusion for team collaboration. Not actively used in ESXi. Safe to ignore.
NVRAM File – BIOS File
Stores the VM’s BIOS or UEFI firmware settings—boot order, PXE config, etc. If deleted, it's regenerated at power-on with defaults. Custom firmware settings will be lost.
Swap Files
VSWP File – VM Memory Overflow (Swap) File
Created when a VM powers on. Size equals allocated memory minus any reservation. Enables ESXi to reclaim memory by swapping guest pages to disk during host memory contention.
Deleted when the VM powers off. If full reservation is set, this file is 0 bytes or not created.
VMX VSWP File – VMX Memory Overflow (Swap) File
Swap file for the VMX process (the VM’s management process). Allows ESXi to manage memory pressure by swapping parts of the VMX process memory. Typically smaller than the main .vswp
.
Virtual Disk Files
VMDK File – VMDK Explained (It’s More Than It Seems)
A descriptor file that defines the structure of a virtual disk—size, geometry, provisioning format, and references to backing files. It does not contain user data.
Works with -flat.vmdk
or other data-bearing files. Plain-text and editable, but not something you'd modify unless you know exactly what you’re doing.
-flat.vmdk – The File With All the Data
The actual virtual disk content—OS files, applications, user data. Size matches the provisioned disk. This is where all reads and writes land.
Always used with a descriptor .vmdk
file. Deleting either breaks the virtual disk.
-ctk.vmdk – Change Tracking File for the VMDK
Tracks which disk blocks have changed since the last backup. Used when Changed Block Tracking (CBT) is enabled. Read by backup software to perform efficient incremental backups.
Does not contain guest data.
-rdm.vmdk – Raw Device Mapping File
Metadata pointer to a raw LUN on shared storage. Enables the VM to access a physical device directly while still letting vSphere manage snapshots and vMotion (if using virtual compatibility mode).
Contains no user data. RDMs are often used in clustered applications or SAN-aware workloads.
-delta.vmdk – Records Changes Since Previous Snapshot
Created when a snapshot is taken. The base disk becomes read-only, and all new writes go to this delta file. Grows dynamically with changes.
Multiple delta files may exist in a snapshot chain. Reverting or consolidating snapshots removes them.
-xx.vmdk – VMDK Split Into Multiple Files (Workstation)
Used in VMware Workstation and Fusion when a virtual disk is split into 2GB chunks (e.g. -s001.vmdk
, -s002.vmdk
). Useful for file system compatibility and portability.
Rare in ESXi unless imported from Workstation.
Snapshot Files
VMSD File – Snapshot Details
Metadata file for managing snapshot hierarchy and descriptions. Tracks relationships between snapshots but stores no VM state.
Corruption here can make snapshot management unreliable.
VMSS File – Memory Contents of Suspended VM
Stores the full memory contents of a suspended VM. Used for suspend/resume. Removed when the VM resumes or powers off.
Contains RAM state and CPU register data.
VMSN File – Snapshot Files
Created when a snapshot is taken with the “save VM memory” option. Stores memory and device state, allowing a full rollback to that point.
Absent if snapshot is taken without memory.
-aux.xml – Legacy Snapshot Descriptor (No Longer Used)
An old snapshot tracking file from earlier versions. Deprecated. May appear in legacy VMs but not required or used by modern vSphere.
.redo – Legacy Redo Log (No Longer Used)
Previously used to log disk changes. Replaced by the -delta.vmdk
format. Legacy VMs may still contain these files.
Handle with care—accidental usage may prevent snapshot consolidation.
Log Files
vmware.log – VM Log File
Captures all VM activity during runtime: power operations, snapshots, vMotion, hardware changes, guest OS messages. Written to the VM’s home directory.
Useful for troubleshooting boot issues, device attach failures, or VMtools errors.
vmware-#.log – Archived VM Log Files
Rotated logs from previous VM sessions. Numbered sequentially. Retention controlled by settings in the VM configuration file.
Safe to delete if not needed for diagnostics or audit.
Lock Files
VMX.LCK – VMX Lock File
Created to prevent concurrent access to the VMX file. Normally cleaned up when the VM powers off.
Stale locks (after host crashes) can block VM startup and may require manual removal.
LCK- – NFS Lock File (Hidden)
NFS-specific locking mechanism. Hidden files used to coordinate access across hosts. Can prevent VMs from powering on if left stale.
Should only be removed after confirming the VM isn’t running elsewhere.