VirtualBox: el invitado XP no ve múltiples núcleos / procesadores múltiples

13

Ambiente:

  • SO host: Win7 Pro de 64 bits
  • SO invitado: WinXP 32bit
  • Versión de VirtualBox: 4.1.4r74291
  • Procesador: Intel Core i7 2630QM con virtualización habilitada

El problema:

Necesito el sistema invitado para usar múltiples núcleos. He habilitado las siguientes opciones en VirtualBox:

  • IO APIC (pestaña de la placa base)
  • PAE / NX (pestaña del procesador)
  • VT-x / AMD-V (aceleración)
  • paginación anidada (aceleración)

Todas las demás opciones en el submenú Sistema están desactivadas. El control deslizante 'procesadores' está establecido en 8.

El problema es que el sistema invitado se ejecuta correctamente, pero solo un procesador / núcleo es visible.

lbednaszynski
fuente

Respuestas:

7

XP tiene 2 HAL diferentes que se utilizan para procesadores múltiples y únicos. Si instaló XP cuando el entorno virtual solo tenía un procesador, entonces puede que tenga que cambiar el HAL o reinstalarlo.

Puede encontrar instrucciones sobre cómo cambiar la HAL en el sitio de soporte de Microsoft .

Deberá seleccionar la opción multiprocesador ACPI.

Matthew Steeples
fuente
bueno, el sitio de Microsoft dice que WinXP debería cambiar automáticamente la HAL; Algo extraño, cuando revisé mi administrador de dispositivos había 8 procesadores, pero en el administrador de tareas solo pude ver 1. Así que reinstalé el sistema y Tadam, todo bien. ¡Gracias!
lbednaszynski
24

Tuve un problema similar y me topé con esto: http://www.nforcershq.com/forum/updating-the-hal-for-multiprocessor-support-t70331.html

Descargué la devconutilidad de Microsoft y emití estos comandos:

  1. devcon sethwid @ROOT\ACPI_HAL\0000 := +acpiapic_mp !acpiapic_up
  2. devcon update c:\windows\inf\hal.inf acpiapic_mp

Luego reinicié y ahora XP puede ver los 4 núcleos.

¡Haga una copia de seguridad de la imagen antes de comenzar en caso de que el sistema no arranque más!

dawez
fuente
44
Esto funcionó bien para mí. Obtuve mi Virtual Box VM para finalmente ver la segunda CPU.
CadentOrange
2
Rápido, fácil y hecho en WinXP SP3.
Fiasco Labs
1
Respuesta corta y buena, gracias! Trabajó para mí en dos ocasiones. Nota: No pude arrancar Win XP después de hacer esto hasta que configuré la máquina virtual para tener más de 1 CPU. Además, puede agregar más CPU más adelante y se detectarán correctamente.
jlh
Entonces, si entendí correctamente, después de hacer este hack, la VM ya no funcionará con 1 CPU, @jlh?
Sopalajo de Arrierez
3

El problema principal (juego de palabras) es que Windows XP contiene dos núcleos: núcleo único y núcleo múltiple. Probablemente, el SO invitado solo detectó 1 núcleo durante la instalación y su invitado de Windows XP se está ejecutando en el núcleo y el núcleo de un solo núcleo. Siga las instrucciones a continuación para habilitar el arranque con el núcleo y el núcleo de múltiples núcleos.

Esto funcionó para mí (VirtualBox XP Pro) ...

1) Vaya a c: \ windows (su ruta de instalación), busque sp3.cab. Abra este archivo de cab con 7-zip (aunque el explorador puede abrir el archivo de forma nativa, si no puede descargar 7-zip de sourceforge).

2) a) Extract halmacpi.dll to c:\windows\system32

si) Extract ntkrnlmp.exe to c:\windows\system32

3) Editar c: \ boot.ini

Nota: Deberá desmarcar la propiedad de solo lectura para poder guardar sus cambios. Vuelva a configurar Solo lectura una vez completado.

Copie la línea que se ve así:

partición de disco múltiple (0) (0) disco (0) (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / NoExecute = OptIn

Haga que la entrada copiada se vea así:

partición de disco múltiple (0) (0) disco (0) (1) \ WINDOWS = "Microsoft Windows XP MultiCore" / fastdetect / NoExecute = OptIn /kernel=ntkrnlmp.exe /hal=halmacpi.dll

Ahora tiene una opción de arranque dual para utilizar uno o varios núcleos (TaskManager mostrará dos gráficos de CPU si esto fue exitoso). Si multinúcleo arranca y funciona correctamente, puede eliminar la entrada de núcleo único de boot.ini.

James
fuente