After a P2V Conversion: Fix the Windows HAL and Clean Up Old Hardware in VMware

After converting a physical Windows server to a VMware virtual machine (P2V), there’s some cleanup to do, especially if you went from a multi-processor system to a single vCPU. Here’s my checklist.

1. Switch the HAL from Multi-Processor to Uni-Processor

If you change from a multi-processor to a uni-processor system, you have to change the Windows HAL manually after the conversion.

  1. Let the VM boot and discover its new hardware, then open Device Manager.
  2. Expand Computer, right-click the processor entry, and choose Update Driver.
  3. Choose Install from a specific location, then Don’t search. I will choose the driver to install.
  4. Select Show all compatible hardware and pick the right one. For example, going from dual CPU to single CPU, choose ACPI Uniprocessor PC instead of ACPI Multiprocessor PC.
  5. Reboot.

To check which HAL is in use, right-click C:\Windows\System32\hal.dll, open the Version tab, and look at Internal Name: halmacpi.dll means multi-processor ACPI and halacpi.dll means uni-processor ACPI.

2. Remove Non-Present (Ghost) Hardware

Open a Command Prompt and run:

SET DEVMGR_SHOW_NONPRESENT_DEVICES=1
DEVMGMT.MSC

In Device Manager, choose View → Show hidden devices and delete any old, grayed-out hardware.

3. Remove Vendor-Specific Software and Drivers

  • Uninstall hardware vendor tools in Add/Remove Programs. On an HP server, for example, remove the HP management agents, survey utility, array configuration utility, and version control agent.
  • Make sure the NIC isn’t using vendor-specific drivers or software, such as NIC teaming.
  • Review Services and disable anything tied to the old hardware vendor.