Before you start
Capture the current state, preserve recoverable data and record recent changes before remediation. Use production-impacting commands only within an approved maintenance or change window.
Identify the active disk chain
Record all VMDKs attached to the VM and determine whether snapshots exist. A descriptor VMDK can reference extent files and snapshot deltas can contain the current changes.
Do not convert an outdated base disk while the production VM uses snapshot deltas.
Check capacity and source health
Confirm datastore free space and conversion staging capacity. Resolve VMDK locks or datastore errors before conversion.
Verify the latest backup and record source disk sizes.
Prepare the source
Perform a clean guest shutdown and verify the VM is powered off. Confirm no backup or snapshot operation is active.
Copy or stage the source disk without modifying the original.
Convert to VHDX
Use a supported conversion utility. Convert each required disk and preserve a source-to-target mapping.
For large disks, allow enough temporary space for both source and destination.
Validate the VHDX
On Hyper-V, use Get-VHD to confirm format, type, size and file path. Compare the capacity with the source disk inventory.
Unexpected size or file-size differences should be investigated before attaching the disk to production.
Create and boot
Create the Hyper-V VM with a compatible firmware generation and attach the VHDX. If there is no boot device, verify generation and boot order.
If Windows enters recovery, inspect boot configuration and storage presentation before rebuilding anything.
Troubleshoot missing disks and NICs
Use Get-Disk and Get-Volume to compare the converted guest storage with the VMware inventory. Configure the Hyper-V NIC and remove stale VMware adapters when appropriate.
VHDX validation
Get-VHD -Path 'D:\Migration\Disk01.vhdx' | Format-List Path,VhdFormat,VhdType,Size,FileSizeGuest disks
Get-Disk | Format-Table Number,FriendlyName,OperationalStatus,PartitionStyle,Size
Get-Volume | Format-Table DriveLetter,FileSystem,HealthStatus,SizeBoot config
bcdedit /enum allTroubleshooting validation
- Confirm the original symptom is resolved.
- Verify dependent services and application health.
- Review logs or command output for secondary errors.
- Document the root cause and corrective action.
- Retain rollback evidence until the change is accepted.
Frequently Asked Questions
What should I check first?
Capture the current state, exact error, affected scope and recent changes before making changes. Then test the failing layer from the lowest dependency upward.
How do I validate the fix?
Repeat the original failing operation, check dependent services and confirm the issue remains resolved after any required restart or service recovery.
Can this troubleshooting be automated?
Automate read-only diagnostics first. Add remediation only after commands, permissions, logging and rollback behavior have been validated.