Introduction
A .vmx file is the primary configuration file of a VMware
virtual machine. It holds the settings chosen in the New Virtual Machine Assistant or the
machine's settings: memory, processors, the disks and CD-ROM drives, network adapters, the
guest operating system and the file names of the other files that make up the machine. It is
plain text, one key = "value" statement a line, and it is read by Workstation,
Fusion and ESXi, and by tools such as libvirt.
Structure
A file is a list of statements: a name, an equals
sign and a value in double quotes, with # comments. The first statement is usually
.encoding, which says how the rest is encoded, followed by
config.version and virtualHW.version. Names are not case-sensitive and
use dots and colons to group related settings: scsi0:0.fileName is the file name of
the device at position 0 of SCSI controller 0. The keys
page lists the ones whose meaning a public source documents.
.encoding = "UTF-8"
config.version = "8"
virtualHW.version = "13"
displayName = "Test VM"
guestOS = "ubuntu-64"
memsize = "4096"
numvcpus = "2"
scsi0.present = "TRUE"
scsi0:0.present = "TRUE"
scsi0:0.fileName = "Test.vmdk"
ethernet0.present = "TRUE"
ethernet0.connectionType = "nat"
The viewer lists every statement with its meaning, groups the devices, lists the files the configuration names, and refuses lines that are not statements.
Not described
Known, not yet covered
- Reference: VMware's open-source tools carry larger key lists than libvirt reads; this page keeps to the keys the sources read this session (libvirt's
vmx.cand VMware's knowledge-base articles) document.
Unknown
- Reference: VMware publishes no complete list of
.vmxkeys. Keys outside the documented ones are shown as written and labelled not described in the viewer's tree and tables.
Links
Software
- VMware Workstation Pro – VMware's desktop virtual machine software (Windows, Linux)
- VMware Fusion – VMware's virtual machine software for the Mac (macOS)
- libvirt – virtualisation toolkit that reads and writes VMX files for ESX (Linux)
Developers
- libvirt vmx.c – converts between VMX files and libvirt domain XML, with the key mapping in its header comment (C)
Reference
- Contents of the virtual machine bundle in Fusion – VMware's table of the files of a machine, including the .vmx