Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This question already has an answer here:

I installed Windows XP in Virtualbox under Ubuntu.

After installing XP I want to change the VM to have two cpus.

How to do that without reinstalling XP?

share|improve this question

marked as duplicate by Kevin Panko, Hennes, music2myear, DavidPostill, Fazer87 Oct 31 '14 at 16:00

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

up vote 0 down vote accepted

You'll just need to change your HAL. There's a "safer" way by upgrading the "computer" device in device manager or you can replace the file manually.

Actually, just change the number of CPUs and the uni-processor HAL should be able to recognize the added cores and trigger new hardware detection and thus changing the HAL.

See KB309283.


To actually use 2 cores, you need to enable other options, like "Enable I/O APIC", to use more than one core. See manual.

HAL or hardware abstraction layer is some code that allow the windows kernel to run on different architectures. Normally the installer will detect your hardware configuration and install the correct hal.dll file to your system32 directory. If you "upgrade" your CPU, due to the wonderful compatibility in the X86 family, your old HAL should still work. According to the KB article above, the old HAL should also detect changes in the hardware and trigger the hardware detection process to install a new HAL. If that did not happen, you should be able to do it manually by following the instructions in the KB.

share|improve this answer
I'm unable to run as 2 cpu when I set to 2 cpu configuration. I use speccy, and it says I only have 1 cpu and 1 core. What's to do next? I'm not quite understand that what should I do with HAL. Thank you~ – sam Dec 20 '11 at 16:00

According to this blog post all you have to do is

  1. Click the "Enable IO APIC" checkbox in the System settings of your virtual box guest machine.

  2. Run the following in a command prompt inside the windows guest:

    rundll32 syssetup,SetupInfObjectInstallAction ACPIAPIC_MP_HAL 128 %windir%\inf\hal.inf
  3. Reboot the guest twice as prompted.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.