Skip to content

Instantly share code, notes, and snippets.

@denji
Created August 24, 2025 15:13
Show Gist options
  • Save denji/4dc6d508550014582814ba2ed692b77f to your computer and use it in GitHub Desktop.
Save denji/4dc6d508550014582814ba2ed692b77f to your computer and use it in GitHub Desktop.
VMware/ESXi .vmx Configuration Parameters

VMware VMX Configuration Parameters - Documentation

⚠️ WARNING: USE AT YOUR OWN RISK
These parameters are largely undocumented and unsupported by VMware. Always backup your .vmx files before making changes and test in non-production environments first.

Table of Contents

File Format and Structure

VMX files use a simple key-value pair format:

key = "value"
# Comments start with #

Basic File Properties

.encoding = "UTF-8"                    # File encoding format
config.version = "8"                   # Configuration file version
virtualHW.version = "19"               # Virtual hardware version (affects available features)

Basic Virtual Machine Configuration

Virtual Machine Identity

displayName = "My Virtual Machine"     # Display name in VMware interface
guestOS = "windows10-64"               # Guest OS identifier (affects default hardware)
uuid.bios = "56 4d 9b ef ac d9 85 e6-42 7c 86 a0 78 6e 74 21"    # BIOS UUID
uuid.location = "56 4d 9b ef ac d9 85 e6-42 7c 86 a0 78 6e 74 21" # Location UUID

Memory Configuration

memSize = "8192"                       # RAM in MB allocated to VM
memory.hotadd = "TRUE"                 # Enable memory hot-add while VM is running
memory.hotremove = "TRUE"              # Enable memory hot-remove while VM is running
memory.maxsize = "16384"               # Maximum memory size limit in MB
memory.minsize = "512"                 # Minimum memory size limit in MB
mem.hotadd = "TRUE"                    # Alternative memory hot-add setting

CPU Configuration

numvcpus = "4"                         # Number of virtual CPU cores
vcpu.hotadd = "TRUE"                   # Enable CPU hot-add while VM is running
vcpu.hotremove = "TRUE"                # Enable CPU hot-remove while VM is running
cpuid.coresPerSocket = "2"             # CPU cores per socket (affects NUMA topology)

Hardware Configuration

BIOS Settings

bios.bootDelay = "5000"                # Boot delay in milliseconds before starting OS
bios.forceSetupOnce = "TRUE"           # Force BIOS setup screen on next boot
bios.bootOrder = "cdrom,hdd"           # Device boot order priority
bios.bootRetry.enabled = "TRUE"        # Enable boot retry on failure
bios.bootRetry.delay = "10000"         # Boot retry delay in milliseconds
bios.hddOrder = "scsi0:0"              # Hard disk boot order specification
bios440.filename = "bios440.rom"       # Use custom BIOS ROM file

Chipset Configuration

chipset.onlineStandby = "FALSE"        # Disable online standby power management
chipset.useAcpiBattery = "TRUE"        # Enable ACPI battery support for laptops
chipset.useApmBattery = "FALSE"        # Disable APM battery (legacy power management)
chipset.useHotButtons = "TRUE"         # Enable hardware hot buttons support
chipset.version = "piix4"              # Chipset type (piix4 is most compatible)

PCI Configuration

pciBridge.present = "TRUE"             # Enable PCI bridge for additional slots
pci.pciSlotNumber = "16"               # PCI slot assignment for devices
pci.allowPassthrough = "TRUE"          # Allow PCI device passthrough to guest

USB Configuration (Combined .present + .enable pattern)

# USB Controller Base Configuration
usb.present = "TRUE"                   # Enable USB controller presence
usb.generic.allowHID = "TRUE"          # Allow Human Interface Devices
usb.generic.autoconnect = "FALSE"      # Disable automatic USB device connection
usb.restrictions.defaultAllow = "TRUE" # Allow USB devices by default
usb.analyzer.enable = "FALSE"          # Disable USB traffic analyzer
usb.ccid.disable = "FALSE"             # Enable smart card (CCID) support

# Enhanced USB Host Controller
ehci.present = "TRUE"                  # Enable Enhanced USB controller (USB 2.0)

# USB Virtual Device Configuration
usb.vusb.present = "TRUE"              # Enable virtual USB device support
usb.vusb.enable = "TRUE"               # Activate virtual USB functionality

Performance and Optimization

GUI and Interface Settings

# Host Display Scaling and Fullscreen
gui.applyHostDisplayScalingToGuest = "TRUE"    # Apply host DPI scaling to guest display
gui.fullscreenAtPowerOn = "TRUE"               # Launch VM in fullscreen mode automatically
gui.viewModeAtPowerOn = "fullscreen"           # Set initial view mode (windowed/fullscreen)

# Auto-fit and Scaling Preferences
pref.autoFit = "FALSE"                         # Disable automatic window fitting
pref.autoFitGuestToWindow = "FALSE"            # Disable guest resolution to window size fitting
pref.autoFitFullScreen = "stretchGuestToHost"  # Stretch guest display in fullscreen mode
pref.motionGrab = "FALSE"                      # Disable automatic mouse capture
pref.motionUngrab = "FALSE"                    # Disable automatic mouse release

# Toolbar and Interface Settings
pref.vmplayer.fullscreen.autohide = "TRUE"     # Auto-hide toolbar in fullscreen mode
pref.fullscreen.toolbarpixels = "0"            # Minimize toolbar size (0 = invisible)
pref.vmplayer.fullscreen.nobar = "TRUE"        # Completely hide toolbar in fullscreen
pref.vmplayer.deviceBarToplevel = "TRUE"       # Keep toolbar at top level
pref.vmplayer.exit.vmAction = "poweroff"       # Action when closing VMware Player

Software Updates and Data Collection

# Disable Automatic Updates and Telemetry
installerDefaults.autoSoftwareUpdateEnabled = "FALSE"  # Disable auto-updates
installerDefaults.componentDownloadEnabled = "FALSE"   # Disable component downloads
installerDefaults.dataCollectionEnabled = "FALSE"      # Disable data collection/telemetry
pref.autoSoftwareUpdatePermission = "deny"             # Deny update permissions
pref.vmplayer.dataCollectionEnabled = "FALSE"          # Disable VMware Player telemetry
tools.upgrade.policy = "manual"                        # Set VMware Tools upgrade to manual

Priority and CPU Scheduling

# System Priority Settings
Priority.grabbed = "high"              # High priority when VM has focus
Priority.ungrabbed = "low"             # Low priority when VM loses focus

# Advanced CPU Scheduling
sched.cpu.latencySensitivity = "high"  # Low-latency CPU scheduling (normal/low/high)
cpuid.numSMT = "2"                     # SMT (Simultaneous Multithreading) threads per core
sched.cpu.affinity = "0-3"             # Bind VM to specific CPU cores (0-3)
sched.cpu.min = "0"                    # Minimum CPU allocation percentage
sched.cpu.max = "unlimited"            # Maximum CPU allocation limit
sched.cpu.shares = "normal"            # CPU shares priority (low/normal/high)

Memory Management

# Memory Optimization Settings
mainMem.useNamedFile = "FALSE"         # Disable named memory file creation
mainMem.backing = "swap"               # Memory backing store type (swap/file)
mainMem.partialLazySave = "TRUE"       # Enable partial lazy save for snapshots
mainMem.partialLazyRestore = "TRUE"    # Enable partial lazy restore from snapshots
MemTrimRate = "0"                      # Disable memory trimming (0 = disabled)
MemAllowAutoScaleDown = "FALSE"        # Prevent automatic memory scaling down
sched.mem.pshare.enable = "FALSE"      # Disable transparent page sharing
prefvmx.useRecommendedLockedMemSize = "TRUE"  # Use recommended locked memory size
prefvmx.minVmMemPct = "100"           # Minimum VM memory percentage

# Memory Scheduling
sched.mem.min = "0"                    # Minimum memory reservation in MB
sched.mem.max = "unlimited"            # Maximum memory limit
sched.mem.shares = "normal"            # Memory shares priority (low/normal/high)

Advanced Display and Graphics Settings

# High-Performance Graphics Settings
mks.vsync = "TRUE"                              # Enable VSync to reduce screen tearing
mks.updateCoalescePeriodUS = "0"                # Reduce display latency (0 = immediate updates)
mks.skipHookTimeoutCheck = "TRUE"               # Skip timeout checks for better responsiveness
mks.requireHardwareRenderer = "TRUE"            # Force hardware-accelerated rendering
mks.allowAcceleratedRenderers = "TRUE"          # Allow GPU-accelerated renderers

# FPS and Refresh Rate Controls
mks.maxRefreshRate = "120"                      # Maximum refresh rate in Hz
mks.lowCompositingFPS = "60"                    # Minimum compositing frame rate
mks.maxCompositingFPS = "120"                   # Maximum compositing frame rate

# Advanced Mouse and Input Settings
mks.gamingMouse.policy = "gaming"               # Optimize mouse for gaming (reduces lag)
mks.keyboardFilter = "require"                  # Require keyboard input filtering
mks.disableTypematic = "TRUE"                   # Disable key repeat in guest OS
mks.disableRemoteClientTypematic = "TRUE"       # Disable remote client key repeat
mks.useDirectInput = "TRUE"                     # Use DirectInput for better input responsiveness

# OpenGL Optimization Settings
mks.gl.magFilter = "0x2600"                     # GL_NEAREST for sharper texture scaling
mks.gl.minFilter = "0x2600"                     # GL_NEAREST for sharper texture scaling
mks.gl.doubleBuffer = "TRUE"                    # Enable double buffering
mks.gl.fbo = "TRUE"                            # Use Frame Buffer Objects
mks.gl.useFBTexture = "TRUE"                   # Use framebuffer textures
mks.gl.dontLogErrors = "TRUE"                  # Reduce OpenGL logging overhead
mks.gl.noTimeInfo = "TRUE"                     # Disable OpenGL timing logs
mks.gl.allowBlacklistedDrivers = "TRUE"        # Override driver blacklist (Intel/Mesa)

Renderer-Specific Settings (Mutually Exclusive)

# Graphics Renderer Selection (choose only ONE)
mks.enableD3DRenderer = "FALSE"                # Direct3D renderer
mks.enableDX8Renderer = "FALSE"                # DirectX 8 renderer  
mks.enableDX9Renderer = "FALSE"                # DirectX 9 renderer
mks.enableDX10Renderer = "FALSE"               # DirectX 10 renderer
mks.enableDX11Renderer = "TRUE"                # DirectX 11 renderer (recommended for Windows)
mks.enableDX12Renderer = "FALSE"               # DirectX 12 renderer (newest, may be unstable)
mks.enableGLRenderer = "FALSE"                 # OpenGL renderer (good for Linux)
mks.enableVulkanRenderer = "FALSE"             # Vulkan renderer (best performance, if supported)

# Renderer Stability Settings
mks.d3d.disableFlips = "TRUE"                  # Disable D3D presentation flips
mks.dx11.disableFlips = "TRUE"                 # Disable DX11 presentation flips
mks.dx12.disableFlips = "TRUE"                 # Disable DX12 presentation flips

# GPU Vendor Specification (for multi-GPU systems)
mks.dx11.vendorID = "0x10DE"                   # Force specific GPU (0x8086=Intel, 0x10DE=Nvidia, 0x1002=AMD)
mks.vk.forceDevice = "NVIDIA"                  # Force specific Vulkan device by name
mks.vk.allowUnsupportedDevices = "TRUE"        # Allow unsupported Vulkan devices

Presentation Layer Settings

# Linux-Specific Presentation (mutually exclusive)
mks.enableX11Presentation = "FALSE"            # X11 presentation layer
mks.enableVulkanPresentation = "TRUE"          # Vulkan presentation (recommended for Linux)

# Windows-Specific Presentation
mks.dx11.enableModernPresentation = "TRUE"     # Modern DX11 presentation mode
mks.dx11.waitForQueryYieldMS = "1"             # GPU query yield timeout in milliseconds

Advanced Hardware Features

# Modern CPU and Hardware Features
vhu.enable = "TRUE"                   # Enable VT-x/AMD-V host features
vpmc.enable = "TRUE"                  # Virtualized Performance Counters
mce.enable = "TRUE"                   # Machine Check Exception support
vmGenCounter.enable = "FALSE"         # VM generation counter (disable for stealth)
ulm.disableMitigations = "TRUE"       # Disable CPU side-channel attack mitigations

# Enhanced Storage Features
scsi0:0.virtualSSD = "TRUE"           # Present disk as SSD to guest OS
ide0:0.virtualSSD = "TRUE"            # Present IDE disk as SSD to guest OS
sata0.present = "TRUE"                # Enable SATA controller

# Additional Device Support
hpet0.present = "TRUE"                # High Precision Event Timer
serial0.present = "TRUE"              # Serial port support

VMCI and Communication Interface

# Virtual Machine Communication Interface
vmci.available = "TRUE"               # Enable VMCI availability
vmci.filter.enable = "FALSE"          # Disable VMCI filtering for performance
vmci0.present = "TRUE"                # VMCI device presence
vmci0.unrestricted = "TRUE"           # Unrestricted VMCI access

Anti-Detection and VM Stealth

# Hide VM Characteristics from Guest OS
hypervisor.cpuid.v0 = "FALSE"         # Hide hypervisor CPUID leaf 0
hypervisor.cpuid.v1 = "FALSE"         # Hide hypervisor CPUID leaf 1
hypervisor.cpuid.v2 = "FALSE"         # Hide hypervisor CPUID leaf 2  
hypervisor.cpuid.v3 = "FALSE"         # Hide hypervisor CPUID leaf 3

# Pass-through Host Hardware Information
hw.model.reflectHost = "TRUE"         # Reflect host hardware model to guest
smbios.reflectHost = "TRUE"           # Reflect host SMBIOS information
smbios.useShortSerialNumber = "TRUE"  # Use short serial numbers
serialNumber.reflectHost = "TRUE"     # Reflect host serial number

Sound and Audio Optimization

# High-Quality Audio Settings
sound.present = "TRUE"                # Enable sound card
sound.autoDetect = "TRUE"             # Auto-detect host audio devices
sound.virtualDev = "hdaudio"          # Use HD Audio device (best quality)
sound.fileName = "-1"                 # Use default host audio device
sound.opl3.enabled = "TRUE"           # Enable OPL3 FM synthesis
sound.mpu401.host = "TRUE"            # Enable MPU-401 MIDI interface

# Linux Host ALSA-Specific Audio
sound.fileName = "surround51:CARD=Live,DEV=0"  # Specific ALSA 5.1 surround device
sound.fileName = "front:CARD=Live,DEV=0"       # ALSA front speakers only
sound.autodetect = "FALSE"                     # Disable audio auto-detection

Advanced System Settings

# System Behavior and Compatibility
paevm = "TRUE"                        # Enable PAE for >4GB memory on 32-bit guests
devices.hotplug = "FALSE"             # Disable device hot-plugging
suspend.disabled = "TRUE"             # Disable suspend functionality
tools.syncTime = "FALSE"              # Disable automatic time synchronization

# Sensor Management
sensor.location = "disabled"          # Disable GPS location sensors
sensor.orientation = "disabled"       # Disable orientation sensors

# VMware-Specific Optimizations
vmmon.disableHostParameters = "TRUE"  # Fix host memory allocation issues
vmx.buildType = "release"             # Use release build (not debug)
vmx.scoreboard.enabled = "FALSE"      # Disable scoreboard files creation

Security and Isolation

Tool Isolation

isolation.tools.copy.disable = "TRUE"           # Disable copy operation from host to guest
isolation.tools.paste.disable = "TRUE"          # Disable paste operation from host to guest
isolation.tools.dnd.disable = "TRUE"            # Disable drag & drop between host and guest
isolation.tools.diskShrink.disable = "TRUE"     # Disable disk shrink operation
isolation.tools.diskWiper.disable = "TRUE"      # Disable disk wiping tools
isolation.tools.hgfs.disable = "TRUE"           # Disable Host Guest File System (shared folders)

Device Isolation

isolation.device.connectable.disable = "TRUE"   # Disable runtime device connection
isolation.device.edit.disable = "TRUE"          # Disable device configuration editing

VIX Security (VMware Infrastructure API)

isolation.tools.vixMessage.disable = "TRUE"     # Disable VIX API messages
Guest.Command.Enabled = "FALSE"                  # Disable guest command execution

Monitor Control

isolation.monitor.control.disable = "TRUE"      # Disable monitor resolution control
monitor_control.disable_mmu_largepages = "TRUE" # Disable MMU large pages

Networking Configuration

Ethernet Configuration

ethernet0.present = "TRUE"              # Enable primary network adapter
ethernet0.connectionType = "nat"        # Connection type (nat/bridged/hostonly/custom)
ethernet0.virtualDev = "e1000e"         # Virtual network device type
ethernet0.addressType = "generated"     # MAC address type (generated/static)
ethernet0.generatedAddress = "00:0c:29:xx:xx:xx" # Generated MAC address
ethernet0.startConnected = "TRUE"       # Connect network on VM startup
ethernet0.noPromisc = "TRUE"            # Prevent promiscuous mode
ethernet0.noForgedSrcAddr = "TRUE"      # Prevent MAC address spoofing

# High-Performance Network Adapter
ethernet0.virtualDev = "vmxnet3"        # VMware paravirtualized network adapter (best performance)

Storage and Disk Management

SCSI Configuration

scsi0.present = "TRUE"                  # Enable SCSI controller
scsi0.virtualDev = "lsilogic"          # SCSI adapter type (lsilogic/buslogic/pvscsi)
scsi0.sharedBus = "none"               # Shared bus setting (none/virtual/physical)

# High-Performance Storage Controllers
scsi0.virtualDev = "pvscsi"            # VMware Paravirtual SCSI (best I/O performance)
scsi0.virtualDev = "lsisas1068"        # LSI SAS adapter for compatibility

Hard Disk Configuration

scsi0:0.present = "TRUE"               # Enable primary disk
scsi0:0.fileName = "disk.vmdk"         # Virtual disk file name
scsi0:0.deviceType = "scsi-hardDisk"   # Device type specification
scsi0:0.mode = "persistent"            # Disk mode (persistent/nonpersistent)
scsi0:0.virtualSSD = "TRUE"            # Present disk as SSD to guest OS

CD/DVD Configuration

ide1:0.present = "TRUE"                # Enable CD/DVD drive
ide1:0.deviceType = "cdrom-image"      # Device type (cdrom-image/cdrom-raw)
ide1:0.fileName = "image.iso"          # ISO image file path
ide1:0.startConnected = "FALSE"        # Start with drive disconnected

Floppy Configuration

floppy0.present = "TRUE"               # Enable floppy drive
floppy0.fileName = "floppy.flp"        # Floppy image file
floppy0.startConnected = "FALSE"       # Start with floppy disconnected

Disk Geometry and Advanced Storage

# Disk Geometry Settings
geometry.cylinders = "1024"           # Number of cylinders (legacy)
geometry.heads = "16"                 # Number of heads (legacy)
geometry.sectors = "63"               # Sectors per track (legacy)

# AIO (Asynchronous I/O) Settings
aiomgr.numThreads = "4"               # Number of AIO threads for disk operations
aiomgr.unbuf = "TRUE"                 # Use unbuffered I/O operations

# Change Block Tracking (for backup solutions)
cbtmotion.filter.disable = "FALSE"    # Enable CBT filter
cbtmotion.maxIters = "100"            # Maximum CBT iterations

Input Devices

Advanced Mouse Configuration for Extra Buttons

# Enhanced Mouse Support (Combined .present + .enable pattern)
mouse.present = "FALSE"                # Disable legacy PS/2 mouse
mouse.vusb.present = "TRUE"            # Enable virtual USB mouse device
mouse.vusb.enable = "TRUE"             # Activate USB mouse functionality
mouse.vusb.useBasicMouse = "FALSE"     # Use advanced mouse features (extra buttons)
vmmouse.present = "TRUE"               # Keep VMware mouse integration

# USB Mouse Device Identification
mouse.vusb.idVendor = "0x0000"         # USB vendor ID (0x0000 = auto-detect)
mouse.vusb.idProduct = "0x0000"        # USB product ID (0x0000 = auto-detect)

Touchpad and Input Device Settings

# Touchpad Configuration for VMware Guests
touchpad.general.enable = "TRUE"            # Enable touchpad support
touchpad.general.motionSpeed = "50"         # Touchpad motion speed (1-100)
touchpad.general.verticalScrolling = "TRUE" # Enable vertical scrolling
touchpad.tapping.tapToClick = "TRUE"        # Enable tap-to-click
touchpad.tapping.speed = "medium"           # Tapping speed (slow/medium/fast)

# TrackPoint Settings (for ThinkPad-style pointing sticks)
trackpoint.general.enable = "TRUE"          # Enable TrackPoint support
trackpoint.general.enableButtons = "TRUE"   # Enable TrackPoint buttons

Keyboard Configuration

# Keyboard Device Settings (Combined .present + .enable pattern)
keyboard.present = "TRUE"              # Enable keyboard device
keyboard.vusb.present = "TRUE"         # Enable virtual USB keyboard
keyboard.vusb.enable = "TRUE"          # Activate USB keyboard functionality
keyboard.allowBothIRQs = "FALSE"       # IRQ handling for keyboard
keyboard.typematicMinDelay = "2000000" # Key repeat delay in microseconds

Display and Graphics

SVGA Configuration

svga.present = "TRUE"                  # Enable SVGA graphics adapter
svga.vramSize = "268435456"           # Video RAM size in bytes (256MB)
svga.autodetect = "TRUE"              # Auto-detect graphics capabilities
svga.maxWidth = "2560"                # Maximum display width
svga.maxHeight = "1600"               # Maximum display height
svga.3d.enabled = "TRUE"              # Enable 3D acceleration support
svga.enableGMR = "TRUE"               # Enable Guest Memory Regions
svga.enableScreenObject = "TRUE"       # Enable screen objects support

3D Acceleration

mks.enable3d = "TRUE"                 # Enable 3D graphics acceleration
mks.forceDiscreteGPU = "TRUE"         # Force use of discrete GPU (not integrated)

Virtualization Features

Nested Virtualization

vhv.enable = "TRUE"                   # Enable nested virtualization (Intel VT-x/AMD-V)
vvtd.enable = "TRUE"                  # Enable virtual VT-d (IOMMU virtualization)
vmx.allowNested = "TRUE"              # Allow nested virtual machines
featMask.vm.hv.capable = "Min:1"     # Hardware virtualization capability mask

CPU Features and Masking

cpuid.enable_vmx = "TRUE"             # Enable VMX instructions in guest
cpuid.enable_svm = "TRUE"             # Enable SVM instructions in guest (AMD)
cpuid.disable_vme = "FALSE"           # Virtual Mode Extensions support
cpuid.disable_mca = "FALSE"           # Machine Check Architecture support

Fault Tolerance and High Availability

replay.allowBTOnly = "TRUE"           # Enable record/replay functionality
ft.secondary = "TRUE"                 # Enable fault tolerance (secondary VM)

Debugging and Troubleshooting

Logging Configuration

log.fileName = "vmware.log"           # Log file name and location
log.append = "TRUE"                   # Append to existing log file
log.keep = "10"                       # Number of log files to retain
log.rotateSize = "100000"             # Log rotation size in bytes

Debug Settings

vmx.buildType = "debug"               # Enable debug build mode
debug.vmss = "TRUE"                   # Enable VMSS (VM Suspend State) debugging
checkpoint.vmState = "TRUE"           # Enable checkpoint state debugging

Performance Analysis

monitor_control.log_vmsample = "TRUE" # Enable VM performance sampling

Power Management

Power Operation Types

powerType.powerOff = "soft"           # Soft power off (ACPI shutdown)
powerType.powerOn = "soft"            # Soft power on  
powerType.suspend = "soft"            # Soft suspend (ACPI sleep)
powerType.reset = "soft"              # Soft reset (ACPI restart)

Suspend and Resume Settings

suspend.disabled = "FALSE"            # Enable suspend functionality
checkpoint.vmState = "FALSE"          # Disable checkpoint state saving

Advanced System Features

Time Synchronization

time.synchronize.continue = "FALSE"           # Continue time sync during normal operation
time.synchronize.restore = "TRUE"             # Sync time when restoring from snapshot
time.synchronize.resume.disk = "TRUE"         # Sync time when resuming from disk
time.synchronize.shrink = "TRUE"              # Sync time during disk shrink operations
time.synchronize.tools.enable = "TRUE"        # Enable VMware Tools time synchronization
time.synchronize.tools.startup = "TRUE"       # Sync time at guest OS startup
tools.syncTime = "TRUE"                       # Enable time synchronization via VMware Tools

Host CPU Frequency and Clock Management

host.cpukHz = "3000000"                # Host CPU frequency in KHz (e.g., 3GHz)
host.noTSC = "TRUE"                    # Disable Time Stamp Counter usage
ptsc.noTSC = "TRUE"                    # Keep guest clock accurate when TSC is unreliable

Unity Mode (VMware Fusion/Workstation Pro)

unity.allowAppWindows = "TRUE"        # Allow individual application windows
unity.customColor = "000000"          # Custom window decoration color
unity.enableLaunchMenu = "TRUE"       # Enable Unity launch menu
unity.showBorders = "TRUE"            # Show window borders in Unity mode
unity.showBadges = "TRUE"             # Show application badges

Shared Folders (HGFS)

sharedFolder.maxNum = "10"             # Maximum number of shared folders
sharedFolder0.present = "TRUE"         # Enable shared folder 0
sharedFolder0.enabled = "TRUE"         # Activate shared folder
sharedFolder0.readAccess = "TRUE"      # Allow read access
sharedFolder0.writeAccess = "TRUE"     # Allow write access
sharedFolder0.hostPath = "/path/to/folder" # Host system path
sharedFolder0.guestName = "shared"     # Name visible in guest OS

Migration and Live Motion Settings

migrate.hostlog = "migrate.log"        # Migration operation log file
migration.dataTimeout = "2000"         # Data transfer timeout in seconds
migration.maxSwitchoverSeconds = "100" # Maximum switchover time for live migration

Snapshot Configuration

snapshot.maxSnapshots = "100"          # Maximum number of snapshots to retain
snapshot.periodicScreenshots = "TRUE"  # Enable periodic screenshot capture
snapshot.action = "keep"               # Snapshot retention action (keep/delete)

NUMA Configuration

numa.nodeAffinity = "0"               # Bind VM to specific NUMA node
numa.vcpu.preferHT = "TRUE"           # Prefer hyperthreading cores
numa.mem.interleave = "FALSE"         # Disable memory interleaving across nodes

Remote Display (VNC)

RemoteDisplay.vnc.enabled = "TRUE"     # Enable VNC remote access
RemoteDisplay.vnc.port = "5900"        # VNC listening port
RemoteDisplay.vnc.password = "password" # VNC access password
RemoteDisplay.vnc.keyMap = "en-us"     # Keyboard mapping for VNC

Guest Information Variables

guestinfo.hostname = "guest-vm"        # Set guest hostname variable
guestinfo.ip = "192.168.1.100"        # Set guest IP address variable

Memory Management Advanced Settings

# Memory Holes and PCI Configuration
pciHole.start = "3072"                # PCI memory hole start address in MB
pciHole.use512MB = "FALSE"            # Use 512MB PCI hole
pciHole.use1GB = "FALSE"              # Use 1GB PCI hole

# Main Memory Advanced Settings
mainMem.checklow1M = "TRUE"           # Check low 1MB memory region
mainMem.dmaStress = "FALSE"           # Disable DMA stress testing
mainMem.lazyPageWalkers = "TRUE"      # Enable lazy page walker optimization

Roaming VM Configuration

roamingVM.enabled = "FALSE"           # Enable roaming VM functionality
roamingVM.exitBehavior = "prompt"     # Exit behavior when roaming (prompt/auto)

Host-Specific Configurations

Linux Host Optimizations

# Memory Management for Linux Hosts
MemTrimRate = "0"                     # Disable memory trimming on Linux
sched.mem.pshare.enable = "FALSE"     # Disable transparent page sharing

# Graphics Optimizations for Linux
mks.gl.allowBlacklistedDrivers = "TRUE"    # Override Intel/Mesa driver blacklist
mks.enableX11Presentation = "FALSE"        # Disable X11 presentation layer
mks.enableVulkanPresentation = "TRUE"      # Use Vulkan presentation on Linux

# ALSA Audio Configuration for Linux
sound.fileName = "surround51:CARD=Live,DEV=0"  # 5.1 surround sound via ALSA
sound.fileName = "front:CARD=Live,DEV=0"       # Front stereo speakers only
sound.autodetect = "FALSE"                     # Force manual ALSA device selection

Windows Host Optimizations

# DirectX Renderer Optimizations
mks.enableDX11Renderer = "TRUE"               # Use DirectX 11 for best Windows compatibility
mks.dx11.enableModernPresentation = "TRUE"    # Enable modern DX11 presentation
mks.dx11.waitForQueryYieldMS = "1"            # Minimize GPU query delays

# Windows GPU Selection for Multi-GPU Systems
mks.dx11.vendorID = "0x10DE"                  # Force NVIDIA GPU (0x10DE)
mks.dx11.vendorID = "0x1002"                  # Force AMD GPU (0x1002)
mks.dx11.vendorID = "0x8086"                  # Force Intel GPU (0x8086)

macOS Host Considerations

# macOS Metal Renderer Support
mks.enableMetalRenderer = "TRUE"              # Enable Metal rendering on macOS
mks.metal.allowUnsupportedDevices = "TRUE"    # Allow older Metal devices

Example Configurations

High-Performance Gaming Configuration

This configuration optimizes a Windows 10/11 VM for gaming with maximum performance, low latency, and hardware acceleration.

# === HIGH-PERFORMANCE GAMING VM CONFIGURATION ===
# Use this for Windows gaming VMs that need maximum performance

# Basic VM Identity
displayName = "Gaming VM - Windows 11"
guestOS = "windows11-64"
memSize = "16384"                              # 16GB RAM for modern games
numvcpus = "8"                                 # 8 CPU cores for demanding games
cpuid.coresPerSocket = "4"                     # 4 cores per socket for proper topology

# Interface and Display Optimization
gui.fullscreenAtPowerOn = "TRUE"               # Launch directly in fullscreen
pref.autoFitFullScreen = "stretchGuestToHost"  # Fill entire screen
pref.vmplayer.fullscreen.nobar = "TRUE"        # Hide VMware toolbar completely

# Disable VMware Overhead Features
installerDefaults.autoSoftwareUpdateEnabled = "FALSE"  # No automatic updates
pref.autoSoftwareUpdatePermission = "deny"             # Block update prompts
tools.syncTime = "FALSE"                                # Disable time sync overhead
devices.hotplug = "FALSE"                               # Disable hotplug overhead
suspend.disabled = "TRUE"                               # Disable suspend feature

# Memory Performance Optimization
MemTrimRate = "0"                              # Disable memory trimming completely
MemAllowAutoScaleDown = "FALSE"                # Prevent memory scaling
mainMem.backing = "swap"                       # Use swap-backed memory
sched.mem.pshare.enable = "FALSE"              # Disable page sharing
prefvmx.useRecommendedLockedMemSize = "TRUE"   # Lock memory for performance
prefvmx.minVmMemPct = "100"                    # Reserve full memory allocation

# CPU Performance and Priority
Priority.grabbed = "high"                      # High priority when VM focused
sched.cpu.latencySensitivity = "high"          # Low-latency CPU scheduling
sched.cpu.affinity = "0-7"                     # Bind to first 8 CPU cores

# High-Performance Graphics
mks.enable3d = "TRUE"                          # Enable 3D acceleration
svga.vramSize = "536870912"                    # 512MB video memory
mks.forceDiscreteGPU = "TRUE"                  # Use dedicated GPU only
mks.enableDX11Renderer = "TRUE"                # DirectX 11 for Windows games
mks.dx11.enableModernPresentation = "TRUE"     # Modern DX11 presentation

# Gaming-Optimized Display Settings
mks.vsync = "TRUE"                             # Enable VSync for smooth gameplay
mks.maxRefreshRate = "120"                     # Support high refresh rate monitors
mks.gamingMouse.policy = "gaming"              # Optimize mouse for gaming
mks.useDirectInput = "TRUE"                    # Direct input for lower latency
mks.disableTypematic = "TRUE"                  # Disable key repeat delays

# Enhanced Input Device Support
mouse.present = "FALSE"                        # Disable legacy PS/2 mouse
mouse.vusb.present = "TRUE"                    # Enable USB mouse with extra buttons
mouse.vusb.enable = "TRUE"                     # Activate USB mouse functionality
keyboard.vusb.present = "TRUE"                 # Enable USB keyboard
keyboard.vusb.enable = "TRUE"                  # Activate USB keyboard functionality

# High-Performance Storage
scsi0.virtualDev = "pvscsi"                    # VMware paravirtual SCSI (fastest)
scsi0:0.virtualSSD = "TRUE"                    # Present disk as SSD to guest

# High-Performance Networking
ethernet0.virtualDev = "vmxnet3"               # VMware paravirtual network (fastest)

# Audio Optimization
sound.virtualDev = "hdaudio"                   # HD Audio for best quality
sound.autoDetect = "TRUE"                      # Auto-detect best audio device

# VM Stealth (hide virtualization from anti-cheat)
hypervisor.cpuid.v0 = "FALSE"                  # Hide hypervisor CPUID
smbios.reflectHost = "TRUE"                    # Reflect host hardware info
hw.model.reflectHost = "TRUE"                  # Reflect host model

# Advanced Hardware Features
vhv.enable = "TRUE"                            # Enable nested virtualization
vpmc.enable = "TRUE"                           # Performance counters
mce.enable = "TRUE"                            # Machine check exceptions

Security-Hardened Isolated VM

This configuration creates a highly isolated VM suitable for malware analysis, untrusted software testing, or maximum security scenarios.

# === SECURITY-HARDENED ISOLATED VM CONFIGURATION ===
# Use this for malware analysis, untrusted software, or maximum isolation

# Basic VM Identity
displayName = "Isolated Security VM"
guestOS = "windows10-64"
memSize = "4096"                               # Limited memory allocation
numvcpus = "2"                                 # Limited CPU cores

# Complete Tool Isolation
isolation.tools.copy.disable = "TRUE"         # Block copy operations
isolation.tools.paste.disable = "TRUE"        # Block paste operations
isolation.tools.dnd.disable = "TRUE"          # Block drag & drop
isolation.tools.diskShrink.disable = "TRUE"   # Block disk operations
isolation.tools.diskWiper.disable = "TRUE"    # Block disk wiping
isolation.tools.hgfs.disable = "TRUE"         # Block shared folders
isolation.tools.vixMessage.disable = "TRUE"   # Block VIX API

# Device and Hardware Isolation
isolation.device.connectable.disable = "TRUE" # Block device connections
isolation.device.edit.disable = "TRUE"        # Block device modifications
isolation.monitor.control.disable = "TRUE"    # Block monitor control

# Disable Dangerous Features
Guest.Command.Enabled = "FALSE"                # Block guest command execution
usb.generic.autoconnect = "FALSE"             # Block USB auto-connection
usb.restrictions.defaultAllow = "FALSE"       # Block USB devices by default

# Network Security
ethernet0.noPromisc = "TRUE"                  # Prevent promiscuous mode
ethernet0.noForgedSrcAddr = "TRUE"            # Prevent MAC spoofing
ethernet0.connectionType = "hostonly"         # Isolated network only

# Disable Unnecessary Services
vmci.available = "FALSE"                      # Disable VM communication interface
time.synchronize.tools.enable = "FALSE"      # Disable time synchronization
tools.upgrade.policy = "manual"               # Manual tools upgrades only

# Logging for Security Analysis
log.keep = "20"                               # Keep more log files
log.rotateSize = "10000000"                   # Larger log files
vmx.buildType = "debug"                       # Enable debug logging

Linux Development Workstation

This configuration optimizes a Linux VM for software development with good performance and developer-friendly features.

# === LINUX DEVELOPMENT WORKSTATION CONFIGURATION ===
# Optimized for software development on Linux guests

# Basic VM Identity
displayName = "Linux Development VM"
guestOS = "ubuntu-64"
memSize = "8192"                               # 8GB for compilation and IDEs
numvcpus = "6"                                 # 6 cores for parallel builds
cpuid.coresPerSocket = "3"                     # Balanced core topology

# Performance Optimization for Development
Priority.grabbed = "high"                      # High priority during active use
sched.cpu.latencySensitivity = "normal"        # Balanced latency sensitivity
mainMem.backing = "swap"                       # Swap-backed memory

# Linux-Optimized Graphics
mks.enable3d = "TRUE"                          # 3D acceleration for modern DEs
svga.vramSize = "268435456"                    # 256MB video memory
mks.enableVulkanRenderer = "TRUE"              # Vulkan for Linux graphics
mks.gl.allowBlacklistedDrivers = "TRUE"       # Override Mesa/Intel blacklist

# Developer-Friendly Input
mouse.vusb.present = "TRUE"                    # USB mouse with extra buttons
mouse.vusb.enable = "TRUE"                     # Enable advanced mouse features
keyboard.vusb.present = "TRUE"                 # USB keyboard support
keyboard.vusb.enable = "TRUE"                  # Enable keyboard functionality

# High-Performance Storage for Large Projects
scsi0.virtualDev = "pvscsi"                    # Paravirtual SCSI for speed
scsi0:0.virtualSSD = "TRUE"                    # Present as SSD for better I/O

# Network Optimization for Development
ethernet0.virtualDev = "vmxnet3"               # Paravirtual network adapter
ethernet0.connectionType = "bridged"           # Direct network access

# Shared Folders for Code Access
sharedFolder.maxNum = "5"                      # Multiple shared folders
sharedFolder0.present = "TRUE"                 # Enable shared folder
sharedFolder0.enabled = "TRUE"                 # Activate sharing
sharedFolder0.readAccess = "TRUE"              # Read access
sharedFolder0.writeAccess = "TRUE"             # Write access
sharedFolder0.hostPath = "/home/user/projects" # Host development directory
sharedFolder0.guestName = "projects"           # Guest mount name

# Time Synchronization for Build Systems
time.synchronize.tools.enable = "TRUE"        # Keep time in sync
time.synchronize.continue = "TRUE"             # Continuous sync
time.synchronize.tools.startup = "TRUE"       # Sync at startup

# Nested Virtualization for Docker/Containers
vhv.enable = "TRUE"                            # Enable nested virtualization
vvtd.enable = "TRUE"                           # Enable VT-d virtualization
vmx.allowNested = "TRUE"                       # Allow nested VMs

macOS non-Apple Configuration

This configuration optimizes a macOS VM with proper hardware emulation and compatibility settings.

# === MACOS NON-APPLE CONFIGURATION ===
# For running macOS as a guest VM (check local laws regarding licensing)

# Basic VM Identity
displayName = "macOS Monterey VM"
guestOS = "darwin21-64"                        # macOS Monterey identifier
memSize = "8192"                               # 8GB minimum for macOS
numvcpus = "4"                                 # 4 cores recommended
cpuid.coresPerSocket = "2"                     # Intel-like topology

# macOS-Specific Hardware Emulation
hw.model.reflectHost = "FALSE"                 # Use specific Mac model
hw.model = "MacBookPro16,1"                    # MacBook Pro 16" 2019 model
serialNumber = "C02XXXXXXXXX"                  # Valid Mac serial format
smbios.reflectHost = "FALSE"                   # Use Mac SMBIOS
board-id = "Mac-E1008331FDC96864"              # Corresponding board ID

# Apple-Compatible Storage
sata0.present = "TRUE"                         # Enable SATA controller (Mac-like)
sata0:0.present = "TRUE"                       # Primary disk on SATA
sata0:0.fileName = "macOS.vmdk"                # macOS disk file
sata0:0.deviceType = "sata-hardDisk"           # SATA disk type

# Graphics for macOS
svga.present = "TRUE"                          # Enable graphics
svga.vramSize = "268435456"                    # 256MB video memory
mks.enable3d = "FALSE"                         # Disable 3D (compatibility)
svga.3d.enabled = "FALSE"                      # Disable SVGA 3D

# USB Configuration for macOS Compatibility
usb.present = "TRUE"                           # Enable USB
ehci.present = "TRUE"                          # Enhanced USB controller
usb.generic.allowHID = "TRUE"                  # Allow keyboard/mouse

# Audio for macOS
sound.present = "TRUE"                         # Enable audio
sound.virtualDev = "hdaudio"                   # HD Audio compatible with macOS

# Network for macOS
ethernet0.present = "TRUE"                     # Enable network
ethernet0.virtualDev = "e1000e"                # Intel network (Mac compatible)
ethernet0.connectionType = "nat"               # NAT networking

# macOS Boot Configuration
firmware = "efi"                               # EFI firmware (required for macOS)
bios.bootDelay = "5000"                        # Boot delay for selection

Host-Specific Troubleshooting

Linux Host Issues and Solutions

# KVM Conflict Resolution
# Add to /etc/modprobe.d/vmware.conf:
# blacklist kvm
# blacklist kvm-amd
# blacklist kvm-intel

# Wayland Compatibility (GNOME/Ubuntu)
# Run these commands on host:
# gsettings set org.gnome.mutter.wayland xwayland-allow-grabs "true"
# gsettings set org.gnome.mutter.wayland xwayland-grab-access-rules "['vmplayer','vmware-vmx','mksSandbox']"

# Transparent Huge Pages Disable
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# Add to kernel parameters: transparent_hugepage=never

# VMware Module Loading
# modprobe -a vmw_vmci vmmon vmnet

Windows Host High DPI Issues

# VMware Preferences File Adjustments
# Edit: %APPDATA%\VMware\preferences.ini
pref.autoFitGuestToWindow = "FALSE"            # Disable auto-fit for HiDPI
gui.applyHostDisplayScalingToGuest = "TRUE"    # Apply DPI scaling to guest
pref.autoFitFullScreen = "stretchGuestToHost"  # Stretch in fullscreen

Performance Monitoring and Analysis

# Performance Monitoring Configuration
vmx.buildType = "stats"                        # Enable statistics collection
monitor_control.log_vmsample = "TRUE"          # Enable VM performance sampling
log.keep = "50"                                # Keep more log files for analysis
log.rotateSize = "50000000"                    # Larger log files (50MB)

Important Usage Notes

Parameter Compatibility

  1. Virtual Hardware Version: Some parameters require specific virtualHW.version values
  2. VMware Product: Features may vary between Workstation, Player, and Fusion
  3. Host OS: Linux, Windows, and macOS hosts may have different parameter support
  4. Guest OS: Some optimizations are guest-specific

Performance Impact Guidelines

  • High Impact: Graphics renderer changes, memory management settings
  • Medium Impact: CPU scheduling, storage controller changes
  • Low Impact: Interface preferences, logging settings

Security Considerations

  • Isolation Settings: Use for untrusted environments and malware analysis
  • Stealth Settings: May be detected by advanced anti-VM techniques
  • Network Isolation: Critical for containing potentially malicious VMs

Best Practices

  1. Always Backup: Create .vmx backups before making changes
  2. Test Incrementally: Change one category of settings at a time
  3. Document Changes: Keep notes of what parameters you've modified
  4. Performance Testing: Benchmark before and after changes
  5. Host Resource Monitoring: Watch host system performance impact

References and Further Reading

  • VMware Knowledge Base: Official troubleshooting articles and parameter documentation
  • Arch Linux VMware Wiki: Comprehensive Linux-specific configurations and troubleshooting
  • VMware Community Forums: User-contributed configurations and solutions
  • VI-Toolkit: Historical documentation of undocumented parameters
  • VMware Workstation Documentation: Official product documentation
  • Performance Tuning Guides: Hardware-specific optimization resources

This documentation represents a comprehensive collection of VMware VMX parameters from official sources, community knowledge, and practical experience. All undocumented parameters should be used with appropriate caution and testing in non-production environments. Parameter availability and behavior may vary between VMware product versions and host operating systems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment