Fix VMware Error: Module DevicePowerOn Power On Failed
The "Module 'DevicePowerOn' power on failed" error in VMware ESXi or vSphere is a frustrating issue that prevents your virtual machine from starting. This error typically occurs with PCI passthrough devices, GPUs, or after migrating VMs between hosts. This guide provides five solutions to fix this error.
The Error Message
When trying to power on a virtual machine, you see one or more of these messages:
Failed - Module 'DevicePowerOn' power on failed.
Module 'DevicePowerOn' power on failed.
The systemId does not match the current system or the deviceId, and the vendorId does not match the device currently at 1:0.0.
Failed to start the virtual machine.
Note: The device ID (like 1:0.0) may vary depending on your configuration. Take note of this ID for the solutions below.
Why This Error Occurs
Common Causes
- PCI Passthrough Device Mismatch - The VM was configured for a device on a different host
- GPU/Hardware Change - Physical device was replaced or moved to different slot
- VM Migration - VM was moved to a host without the same passthrough device
- ESXi Host Update - System IDs changed after an update
- Corrupted VMX File - Configuration file has stale device references
- Insufficient Resources - Not enough memory for GPU passthrough
- Permission Issues - Host-level passthrough not properly configured
Solution 1: Remove and Re-add Passthrough Device (Recommended)
The cleanest solution is to remove the problematic passthrough device and add it fresh.
Step 1: Shut Down the VM
Ensure the VM is completely powered off (not suspended).
Step 2: Edit VM Settings
- Right-click the VM → Edit Settings
- Find the PCI device showing the error
- Click Remove on the device
- Click OK to save
Step 3: Re-add the Passthrough Device
- Right-click the VM → Edit Settings
- Click Add New Device → PCI Device
- Select the correct passthrough device from the list
- Click OK
Step 4: Power On
Try starting the VM. The device references will be fresh and match the current host.
Solution 2: Edit the VMX File Manually
If solution 1 doesn't work or you can't access vSphere, manually edit the VMX file.
Step 1: Download the VMX File
- Browse to the VM's datastore
- Download the
.vmxfile (e.g.,myvm.vmx) - Create a backup of the file before editing
Step 2: Identify Problem Lines
Open the VMX file in a text editor and search for the device ID from the error (e.g., 01:00.0):
pciPassthru0.id = "01:00.0"
pciPassthru0.deviceId = "1234"
pciPassthru0.vendorId = "5678"
pciPassthru0.systemId = "abcd1234-5678-90ef-ghij-klmnopqrstuv"
Step 3: Remove the Passthrough Configuration
Delete ALL lines containing the problematic device ID. This includes:
# Remove all of these (your IDs will differ):
pciPassthru0.id = "01:00.0"
pciPassthru0.deviceId = "..."
pciPassthru0.vendorId = "..."
pciPassthru0.systemId = "..."
pciPassthru0.present = "TRUE"
pciPassthru0.virtualizationMode = "..."
Step 4: Upload and Register
- Upload the modified
.vmxfile to the datastore (overwrite original) - If the VM shows as invalid, unregister and re-register it
- Add the passthrough device through vSphere client
- Power on the VM
Solution 3: Fix Memory Reservation for GPU Passthrough
GPU passthrough requires memory reservation. Without it, you'll get DevicePowerOn errors.
Step 1: Edit VM Settings
- Right-click VM → Edit Settings
- Expand Memory
- Check Reserve all guest memory (All locked)
Step 2: Verify Memory Settings
Ensure the VM has enough memory for the GPU. NVIDIA GPUs typically need: - Minimum: Amount specified in GPU requirements - Plus overhead for the hypervisor
Step 3: Check Host Memory
Ensure the ESXi host has enough free memory:
# SSH to ESXi host
esxcli hardware memory get
Solution 4: Verify and Reconfigure PCI Passthrough on Host
The device might not be properly configured for passthrough on the host level.
Step 1: Check Passthrough Status
In vSphere: 1. Go to Host → Configure → Hardware → PCI Devices 2. Find your device 3. Check if it shows as available for passthrough
Via SSH:
# List all PCI devices
lspci -v
# Check passthrough status
esxcli hardware pci pcipassthru list
Step 2: Enable Passthrough
- Select the device in vSphere
- Click Toggle passthrough
- Reboot the ESXi host (required for changes to take effect)
Step 3: Verify After Reboot
After reboot, confirm the device shows as "Active" in passthrough mode.
Solution 5: Reset VM Configuration (Nuclear Option)
If nothing else works, create a fresh VM and attach the old disks.
Step 1: Note Current VM Settings
Document: - CPU count and cores - Memory amount - Network adapters - SCSI controllers - Any other custom settings
Step 2: Remove Old VM from Inventory
- Right-click VM → Remove from Inventory (don't delete from disk)
- This keeps the VMDK files intact
Step 3: Create New VM
- Create a new VM with the same specs
- When prompted for disk, select Use an existing virtual disk
- Browse to the original VMDK file
Step 4: Add Passthrough Device
Add the PCI passthrough device to the fresh VM configuration.
Troubleshooting Tips
Check VMware Logs
# On ESXi host, check VM logs
cat /vmfs/volumes/[datastore]/[vmname]/vmware.log | grep -i error
Verify Device Compatibility
Not all devices support passthrough. Check: - VT-d (Intel) or AMD-Vi enabled in BIOS - Device isn't used by ESXi itself - Device supports IOMMU groups properly
Common Issues with Specific Hardware
NVIDIA GPUs
- Need "hypervisor.cpuid.v0 = FALSE" in VMX for consumer cards
- Require memory reservation
- May need specific vBIOS
# Add to VMX for NVIDIA consumer GPU
hypervisor.cpuid.v0 = "FALSE"
USB Controllers
- Some USB controllers don't passthrough cleanly
- Try a different USB PCI card
Network Cards
- Ensure SR-IOV is properly configured if using virtual functions
Prevention Tips
- Use VM templates with correct passthrough configuration for each host
- Don't vMotion VMs with passthrough devices (not supported)
- Document device IDs for each host in your environment
- Test passthrough after any ESXi updates
Related Troubleshooting Guides
If you're working with other virtualization or database issues, these guides may help:
- How to Stop DB2 Instance - Database management
- Docker Container Management - Container troubleshooting
Conclusion
The "Module DevicePowerOn power on failed" error is almost always related to PCI passthrough device configuration mismatches. The most reliable fix is to remove the passthrough device configuration and add it fresh. If you're migrating VMs between hosts, remember that passthrough devices are host-specific and must be reconfigured on each host. Always ensure memory reservation is enabled for GPU passthrough scenarios.