环境:
- 主机操作系统:Win7 Pro 64位
- 客户操作系统:WinXP 32位
- VirtualBox 版本:4.1.4r74291
- 处理器:Intel Core i7 2630QM,启用虚拟化
问题:
我需要客户系统使用多个核心。我在 VirtualBox 中启用了以下选项:
- IO APIC(主板标签)
- PAE/NX(处理器选项卡)
- VT-x/AMD-V(加速)
- 嵌套分页(加速)
系统子菜单上的所有其他选项均已关闭。“处理器”滑块设置为 8。
问题是客户系统运行正确,但只有一个处理器/核心可见。
答案1
XP 有 2 种不同的 HAL,分别用于多处理器和单处理器。如果您在虚拟环境只有一个处理器时安装了 XP,那么您可能需要更改 HAL 或重新安装。
您可以在 Microsoft 的支持站点。
您需要选择 ACPI 多处理器选项。
答案2
我遇到了类似的问题,我偶然发现了这一点: http://www.nforcershq.com/forum/updating-the-hal-for-multiprocessor-support-t70331.html
我下载了devcon
来自 Microsoft 的实用程序并发出以下命令:
devcon sethwid @ROOT\ACPI_HAL\0000 := +acpiapic_mp !acpiapic_up
devcon update c:\windows\inf\hal.inf acpiapic_mp
然后我重新启动,现在 XP 可以看到所有 4 个核心。
进行备份启动之前先查看一下图像,以防系统无法启动!
答案3
核心(双关语)问题是 Windows XP 包含两个内核:单核和多核。可能,客户操作系统在安装过程中仅检测到 1 个内核,而您的 Windows XP 客户机正在单核 hal 和内核上运行。按照以下说明启用多核 hal 和内核的启动。
这对我有用(VirtualBox XP Pro)...
1) 进入 c:\windows(您的安装路径),搜索 sp3.cab。使用 7-zip 打开此 cab 文件(尽管 explorer 可能能够本机打开该文件,但如果不能,请从 sourceforge 下载 7-zip)。
2)a)Extract halmacpi.dll to c:\windows\system32
b)Extract ntkrnlmp.exe to c:\windows\system32
3)编辑c:\boot.ini
注意:您需要取消选中“只读”属性,以便保存更改。完成后重新设置为只读。
复制如下行:
多 (0) 磁盘 (0) rdisk (0) 分区 (1) \WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn
使复制的条目看起来像这样:
多 (0) 磁盘 (0) rdisk (0) 分区 (1) \WINDOWS="Microsoft Windows XP MultiCore" /fastdetect /NoExecute=OptIn /kernel=ntkrnlmp.exe /hal=halmacpi.dll
现在,您有一个双启动选项,可以使用单核或多核(如果成功,TaskManager 将显示两个 CPU 图表)。如果多核启动并正常工作,那么您可以从 boot.ini 中删除单核条目。