I used to run 32bit Mint on a dual core Pentium with 4GB of RAM that I threw together for $500 in 2009. Because the OS was 32bit and the CPU didn’t have VT-X, I could never have multiple cores in my virtual machines. With only 2 cores and 4GB of ram, there wasn’t much point anyway as the 6 VMs I was running by the time I upgraded were always too busy struggling with their tiny rations of RAM to be able to use more CPU power. (They all ran from an SSD, so a little bit of swapping, while slow, wasn’t total game over.
I recently replaced the motherboard with something more modern, allowing me to fit a Core i5 quad CPU and 16GB of RAM with free slots to allow upgrading to 32 one day. I did a fresh install of 64bit Ubuntu Server since I’ve grown out of needing a gui. I bumped up all the VMs to 2 CPU cores and increased their RAM 50-100%, which caused them all to fly. The XP VM however, only recognised one of the cores. This is because when I installed the OS, it only had one so a single processor hardware address layer was installed. Luckily despite M$’ recommendations to reinstall, there is a very simple way to force a change to a multiprocessor HAL.
- Create a snapshot of your VM (just in case things go bad)
- Ensure that IO APIC is enabled in the motherboard tab of virtual box.
- Increase the number of CPU cores to more than 1 and start up the VM. You should see all the cores listed under processors in the device manager, but only 1 in Task Manager.
- Execute the following command from a DOS prompt and allow a reboot:
Execrundll32 syssetup,SetupInfObjectInstallAction ACPIAPIC_MP_HAL 128 %windir%\inf\hal.inf
Thanks to Alex Klink for this.