VirtualBox - convidado XP não vê múltiplos núcleos / múltiplos processadores

13

Ambiente:

  • Sistema operacional do host: Win7 Pro 64 bits
  • SO convidado: WinXP 32 bits
  • Versão do VirtualBox: 4.1.4r74291
  • Processador: Intel Core i7 2630QM com virtualização ativada

O problema:

Eu preciso que o sistema convidado use vários núcleos. Eu habilitei as seguintes opções no VirtualBox:

  • IO APIC (guia da placa-mãe)
  • PAE / NX (guia do processador)
  • VT-x / AMD-V (aceleração)
  • paginação aninhada (aceleração)

Todas as outras opções no submenu Sistema são alternadas. O controle deslizante 'processadores' está definido como 8.

O problema é que o sistema convidado é executado corretamente, mas apenas um processador / núcleo é visível.

    
por lbednaszynski 18.10.2011 / 13:21

3 respostas

7

O XP tem 2 HALs diferentes que são usados para multi e processador único. Se você instalou o XP quando o ambiente virtual tinha apenas um processador, talvez seja necessário alterar o HAL ou reinstalá-lo.

Você pode encontrar instruções sobre como alterar o HAL no site de suporte da Microsoft.

Você precisará selecionar a opção de multiprocessador ACPI.

    
por 20.10.2011 / 16:33
24

Eu tive um problema semelhante e me deparei com isso: link

Eu baixei o devcon utilitário da Microsoft e emiti estes comandos:

  1. devcon sethwid @ROOT\ACPI_HALdevcon update c:\windows\inf\hal.inf acpiapic_mp00 := +acpiapic_mp !acpiapic_up
  2. %code%

Então eu reiniciei e agora o XP pode ver todos os 4 núcleos.

Faça um backup da imagem antes de iniciar, caso o sistema não inicialize mais!

    
por 02.08.2012 / 09:24
3

O problema principal é que o Windows XP contém dois kernels: single-core e multi-core. Provavelmente, o sistema operacional convidado detectou apenas um núcleo durante a instalação e o convidado do Windows XP está sendo executado no núcleo e no kernel de um núcleo. Siga as instruções abaixo para ativar a inicialização com o núcleo e kernel multi-core.

Isso funcionou para mim (VirtualBox XP Pro) ...

1) Entre em c: \ windows (seu caminho de instalação), procure por sp3.cab. Abra este arquivo cab com 7-zip (embora o explorador possa abrir o arquivo nativamente, se não conseguir baixar o 7-zip do sourceforge).

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

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

3) Edite c: \ boot.ini

Note: You will need to uncheck the Read-only property so you can save your changes. Set back to Read-only once complete.

Copie a linha que se parece com isso:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn

Faça a entrada copiada com esta aparência:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP MultiCore" /fastdetect /NoExecute=OptIn /kernel=ntkrnlmp.exe /hal=halmacpi.dll

Agora, você tem uma opção de inicialização dupla para utilizar um único ou vários núcleos (o TaskManager mostrará dois gráficos de CPU se isso for bem-sucedido). Se o multicore inicializar e funcionar corretamente, você poderá excluir a entrada de núcleo único do boot.ini.

    
por 25.04.2013 / 07:04