The VMX file is the core configuration file of a VMware virtual machine. It defines every hardware setting — CPU, memory, disk controllers, network adapters, and advanced features — that determines how the VM runs on ESXi or Workstation. Unlike the VMDK, which stores data, the VMX is a text‑based blueprint that the hypervisor reads at startup. This guide provides a complete reference to VMX parameters and configuration options, giving administrators the detail needed to edit, troubleshoot, and optimize VMware VMs with precision.
VMX File Configuration Options: Structure, Syntax, and Rules
VMX File Format: Key‑Value Pair Syntax
The VMX file is a plain‑text configuration file where each line follows the format:
parameterName = "value"
Core rules:
- Case sensitivity: ESXi (Linux) enforces case sensitivity; Workstation (Windows) does not.
- Quotes mandatory: Values must be enclosed in double quotes. Missing quotes can cause parsing errors or prevent VM startup.
- Comments: Lines beginning with
# are ignored by VMware. - Order irrelevant: VMware parses all parameters before initialization, so line order does not affect behavior.
Critical syntax rules (community‑validated):
.present parameters act as master switches. Example: scsi0.present = "FALSE" disables all scsi0.* entries.- Unknown or misspelled parameters may be ignored silently or trigger errors depending on VMware version.
- Memory values must be multiples of 4. Example:
memsize = "255" fails with “Memory size not a multiple of 4”. - Keep VMX files lean. Avoid unnecessary parameters generated by GUI tools unless you understand their purpose.
The Three Required VMX Configuration Parameters
A VMX file requires only three parameters to be valid and register in VMware Workstation, Player, or ESXi:
config.version = "8" virtualHW.version = "22" guestOS = "windows11-64"
- config.version: Defines the VMX file format version.
- virtualHW.version: Specifies the virtual hardware compatibility level (e.g., 22 = ESXi 8.x).
- guestOS: Identifies the guest operating system type, which influences defaults for hardware and drivers.
With only these three parameters, VMware creates a minimal VM:
- 32 MB RAM
- One CPU
- One floppy drive
- No disk, no network
All other VMX parameters extend this foundation to define usable hardware, performance tuning, and advanced features.
File Header Parameters: The VMX Identity Block
| Parameter | Format | Purpose | Notes |
|---|
| .encoding | "UTF-8" | File character encoding | Always UTF-8; do not change |
| config.version | "8" | VMX file format version | Value 8 since Workstation 6; do not change |
| virtualHW.version | "22" | Virtual hardware generation | Controls available virtual devices; cannot be safely downgraded after OS install |
VMware VMX File Parameters: CPU and Memory Configuration
CPU VMX Configuration Parameters
| Parameter | Example Value | Purpose | Notes |
|---|
| numvcpus | "4" | Number of virtual CPUs | Must not exceed host physical core count |
| cpuid.coresPerSocket | "2" | Cores per virtual socket | Controls guest CPU topology (sockets × cores = numvcpus) |
| vcpu.hotadd | "TRUE" | Enable CPU hot-add | Requires guest OS support |
| vhv.enable | "TRUE" | Expose hardware virtualization to guest | Required for nested virtualization (running ESXi/Hyper-V inside a VM) |
| featMask.vm.hv.capable | "Min:1" | Force hardware virt capability flag | Used for nested hypervisor compatibility |
| monitor_control.restrict_backdoor | "TRUE" | Enable nested ESXi on top of ESXi | Undocumented; community-confirmed |
Memory VMX Configuration Parameters
| Parameter | Example Value | Purpose | Notes |
|---|
| memsize | "8192" | RAM in MB | Must be a multiple of 4 |
| mem.hotadd | "TRUE" | Enable memory hot-add | Requires guest OS support |
| mainMem.useNamedFile | "FALSE" | Disable .vmem swap file on host | Reduces host disk I/O; recommended when host RAM is abundant |
| MemAllowAutoScaleDown | "FALSE" | Prevent VMware from reducing memory allocation | Ensures RAM allocation is respected under host pressure |
| sched.mem.min | "4096" | Minimum memory reservation in MB | ESXi only; guarantees physical RAM allocation |
| sched.mem.minSize | "4096" | Hard memory reservation | ESXi only |
VMX File Settings VMware: Disk and Storage Controller Parameters
Virtual Disk Controller VMX Parameters
| Parameter | Example Value | Purpose | Notes |
|---|
| scsi0.present | "TRUE" | Enable SCSI controller 0 | Master switch — all scsi0.* lines ignored if FALSE |
| scsi0.virtualDev | "lsilogic" | SCSI controller model | Options: lsilogic, lsisas1068, pvscsi (best performance), buslogic (legacy) |
| sata0.present | "TRUE" | Enable SATA controller | Workstation and Fusion; not all ESXi versions |
| nvme0.present | "TRUE" | Enable NVMe controller | Requires virtualHW.version 13+ |
| ide0:0.present | "TRUE" | Enable IDE device on channel 0:0 | Legacy; use SCSI or NVMe for new VMs |
Virtual Disk VMDK Reference Parameters
| Parameter | Example Value | Purpose | Notes |
|---|
| scsi0:0.present | "TRUE" | Attach disk to SCSI 0:0 | Master switch for this disk slot |
| scsi0:0.fileName | "VMname.vmdk" | VMDK descriptor file path | Relative or absolute path |
| scsi0:0.deviceType | "scsi-hardDisk" | Device type declaration | scsi-hardDisk for standard virtual disk |
| scsi0:0.mode | "independent-persistent" | Disk independence mode | persistent (normal), independent-persistent (ignores snapshots), independent-nonpersistent (reset at power-off) |
| scsi0:0.writeThrough | "TRUE" | Disable write caching | Forces immediate writes to VMDK; data safety over performance |
VMX Configuration Parameters: Network Adapter Settings
Network Adapter VMX Parameters
| Parameter | Example Value | Purpose | Notes |
|---|
| ethernet0.present | "TRUE" | Enable network adapter 0 | Master switch for this adapter |
| ethernet0.virtualDev | "vmxnet3" | Virtual NIC driver model | vmxnet3 (best — requires VMware Tools), e1000e (broad compat.), e1000 (legacy), vlance (DOS/Win9x only) |
| ethernet0.connectionType | "bridged" | Network connection mode | bridged (physical network), nat (shared host IP), hostonly (isolated), none (disconnected) |
| ethernet0.addressType | "generated" | MAC address assignment | generated (deterministic), static (manual), vpx (vCenter-assigned, ESXi only) |
| ethernet0.generatedAddress | "00:0c:29:XX:XX:XX" | MAC address value | Only used when addressType = generated or static |
| ethernet0.startConnected | "TRUE" | Connect adapter at power-on | Set FALSE to boot disconnected |
| ethernet0.noPromisc | "TRUE" | Block promiscuous mode | Security hardening — prevents packet sniffing beyond guest's own traffic |
| ethernet0.noForgedSrcAddr | "TRUE" | Block MAC address spoofing | Security hardening |
| ethernet0.networkName | "VM Network" | Port group name on ESXi | ESXi only; matches vSwitch port group label |
VMX File Configuration Options: Display, Boot, and BIOS/UEFI Parameters
Display Name and Guest OS Parameters
| Parameter | Example Value | Purpose | Notes |
|---|
| displayName | "MyVM" | VM name in inventory | If omitted, VMware auto-generates from VMX file path |
| guestOS | "windows11-64" | Guest OS identifier | Controls VMware's optimization profile; see full guestOS value list in VMware docs |
| annotation | "Production DB" | VM description/annotation | Displayed in vSphere Client VM summary |
| uuid.bios | "xx xx xx..." | VM BIOS UUID | Controls guest's hardware identity; uuid.action governs behavior when copying |
| uuid.action | "keep" | UUID policy on copy/move | keep preserves identity; create generates new UUID; default prompts user |
Boot and BIOS VMX Parameters
| Parameter | Example Value | Purpose | Notes |
|---|
| firmware | "efi" | Boot firmware type | bios (legacy) or efi (UEFI); cannot safely change after OS installation |
| bios.bootDelay | "5000" | Boot screen delay in milliseconds | Provides time to access BIOS on fast-booting VMs |
| bios.forceSetupOnce | "TRUE" | Force BIOS setup screen at next boot | Resets to FALSE after one power-on |
| efi.nvram.fileName | "VMname.nvram" | NVRAM file path | Stores UEFI variables; auto-created if missing |
| bios.hddOrder | "scsi0:0,ide0:0" | Boot device order | Comma-separated device list |
VMX File Settings VMware: Power Management and Behavior Parameters
Power Type VMX Parameters
| Parameter | Example Value | Purpose |
|---|
| powerType.powerOff | "soft" | Power-off behavior: soft (VMware Tools shutdown), hard (immediate cut) |
| powerType.powerOn | "hard" | Power-on behavior |
| powerType.reset | "soft" | Reset behavior: soft (Tools restart), hard (immediate reset) |
| powerType.suspend | "soft" | Suspend behavior: soft (Tools suspend), hard (force suspend) |
VMware Tools Interaction Parameters
| Parameter | Example Value | Purpose |
|---|
| tools.syncTime | "TRUE" | Sync guest clock with host |
| tools.upgrade.policy | "upgradeAtPowerCycle" | Auto-update VMware Tools on power-on |
| isolation.tools.copy.enable | "TRUE" | Enable copy between guest and host clipboard |
| isolation.tools.paste.enable | "TRUE" | Enable paste from host into guest |
| isolation.tools.dnd.enable | "FALSE" | Disable drag-and-drop between guest and host (security hardening) |
| guest.commands.enabled | "TRUE" | Allow VMware Tools to execute guest commands from host |
VMware VMX File Parameters: Security and Advanced Settings
Security‑Related Parameters
- isolation.tools.copy.disable / isolation.tools.paste.disable. Control whether copy/paste operations between host and guest are allowed. Setting to
"TRUE" blocks clipboard sharing, reducing data leakage risks. - isolation.tools.setGUIOptions.enable. Prevents guest OS from altering VMware Tools GUI options.
- disable‑poweroff / disable‑shutdown / disable‑restart. Restrict guest users from issuing power commands through VMware Tools.
- msg.autoanswer. Automates responses to VMware prompts (e.g., disk resize warnings). Misuse can bypass safety checks, so use cautiously.
Advanced Performance and Debugging Parameters
- monitor_control.restrict_backdoor. Limits guest access to VMware backdoor interfaces, improving isolation.
- tools.syncTime. Controls whether guest time is synchronized with host. Disabling avoids unwanted clock drift corrections in sensitive workloads.
- logging. Enables or disables VMX log file generation. Useful for troubleshooting but can be disabled to reduce datastore clutter.
- sched.mem.pshare.enable. Toggles transparent page sharing (TPS). Disabling may improve security in multi‑tenant environments but reduces memory efficiency.
- mainMem.useNamedFile / mainMem.partialLazySave. Control how VM memory is backed by host files, affecting snapshot and suspend behavior.
Best Practices for Security and Advanced Settings
- Always back up the VMX file before applying advanced parameters.
- Apply security‑related options consistently across all VMs in sensitive environments.
- Document changes — some advanced parameters are not exposed in vSphere UI and may be forgotten.
- Test in a non‑production VM before rolling out to critical workloads.
Ready to get your data back?
To start recovering your data, documents, databases, images, videos, and other files, press the FREE DOWNLOAD button below to get the latest version of DiskInternals VMFS Recovery® and begin the step-by-step recovery process. You can preview all recovered files absolutely for FREE. To check the current prices, please press the Get Prices button. If you need any assistance, please feel free to contact Technical Support. The team is here to help you get your data back!