Cannot upgrade virtual machine HAL to ACPI Multiprocessor PC
Issue
When virtualising an existing server, it may not be possible to configure the virtual machine with a multiprocessor HAL during the Upgrade Driver wizard, despite the virtual machine being assigned 2 vCPUs.
When using a Standard PC HAL the only option is:
- Standard PC
When using a Advanced Configuration and Power Interface (ACPI) PC HAL the only options are:
- Advanced Configuration and Power Interface (ACPI) PC
- Standard PC
It would appear that this is by design according to MS KB 309283:
When you install the following HALs on a Windows XP-based or Windows Server 2003-based computer, the following device manager HAL options appear:
"Standard PC," Non-ACPI PIC HAL (Hal.dll)
- Standard PC
"Advanced Configuration and Power Interface (ACPI) PC," ACPI PIC HAL (Halacpi.dll)
- Standard PC
- Advanced Configuration and Power Interface (ACPI) PC
Resolution
To force the HAL to ACPI Multiprocessor PC use a variation of the HAL_Update.txt from Brandon Gordon.
Execute the following commands:
SET HAL=ACPIAPIC_MP
devcon.exe sethwid @ROOT\PCI_HAL\0000 := !E_ISA_UP !ACPIPIC_UP !ACPIAPIC_UP !ACPIAPIC_MP !MPS_UP !MPS_MP !SGI_MPS_MP !SYSPRO_MP !SGI_MPS_MP
devcon.exe sethwid @ROOT\ACPI_HAL\0000 := !E_ISA_UP !ACPIPIC_UP !ACPIAPIC_UP !ACPIAPIC_MP !MPS_UP !MPS_MP !SGI_MPS_MP !SYSPRO_MP !SGI_MPS_MP
devcon.exe sethwid @ROOT\PCI_HAL\0000 := +%HAL%
devcon.exe sethwid @ROOT\ACPI_HAL\0000 := +%HAL%
devcon.exe update %windir%\inf\hal.inf %HAL%
devcon.exe ReScan
Ensure that the "devcon.exe update %windir%\inf\hal.inf %HAL%" command does not report a failure. If it does fail, it may be necessary to temporarily install another HAL either from Device Manager or by changing the SET HAL=ACPIAPIC_MP line and re-running the script.
After this shutdown the virtual machine, than power it back on. If the virtual machine does not boot try the following options:
- Reset the virtual machine from VMware Infrastructure Client
- Assign a single vCPU and boot the virtual machine
Once the virtual machine has successfully booted with the correct HAL use Device Manager | Computer | <HAL> | Update Driver to reinstall the HAL to ensure it is correctly installed.
Also be aware of the View | CPU History | One Graph, All CPUs option in Task Manager that will only show a single CPU graph, regardless of the number of correctly installed CPUs. Ensure this is set to One Graph Per CPU before investigating HAL options.
References
Products
VMware ESX 3.5
Microsoft Windows Server 2003 (any)
Created: 9th October 2008
Updated: 6th November 2008
© 2005-2024 Jamie Morrison