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

13

Meio Ambiente:

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

O problema:

Eu preciso do sistema convidado para usar vários núcleos. Ativei 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 desativadas. O controle deslizante 'processadores' está definido como 8.

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

lbednaszynski
fonte

Respostas:

7

O XP possui 2 HALs diferentes que são usados ​​para processadores múltiplos e únicos. Se você instalou o XP quando o ambiente virtual tinha apenas um processador, pode ser necessário alterar o HAL ou reinstalar.

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

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

Matthew Steeples
fonte
bem site da Microsoft diz que o WinXP deve alterar automaticamente o HAL - o meu não. Estranho, quando eu verifiquei meu gerenciador de dispositivos, havia 8 processadores, mas no menu de tarefas eu só conseguia ver 1. Então, reinstalei o sistema e o tadam - tudo está bem. Obrigado!
Lllnaszynski 21/10
24

Eu tive um problema semelhante e me deparei com isso: http://www.nforcershq.com/forum/updating-the-hal-for-multiprocessor-support-t70331.html

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

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

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!

dawez
fonte
4
Isto funcionou bem para mim. Eu consegui minha VM Virtual Box para finalmente ver a segunda CPU.
CadentOrange
2
Rápido, fácil e feito no WinXP SP3.
Fiasco Labs
1
Resposta curta e boa, obrigado! Trabalhou para mim em duas ocasiões. Nota: Não foi possível inicializar o Win XP depois de fazer isso até que eu realmente configurei a máquina virtual para ter mais de 1 CPU. Além disso, você pode adicionar mais CPUs posteriormente e elas serão detectadas corretamente.
jlh
Então, se eu entendi direito, depois de fazer isso, a VM não funcionará mais com 1 CPU, @jlh?
Sopalajo de Arrierez
3

O problema principal (trocadilhos) é que o Windows XP contém dois kernels: single-core e multi-core. Provavelmente, o SO convidado detectou apenas um núcleo durante a instalação e o convidado do Windows XP está sendo executado no hal e no núcleo de núcleo único. Siga as instruções abaixo para ativar a inicialização com o halo e o núcleo com vários núcleos.

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

1) Vá para c: \ windows (seu caminho de instalação), pesquise sp3.cab. Abra esse arquivo de táxi com 7-zip (embora o explorer possa abrir o arquivo de forma nativa, se não conseguir fazer o download do 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

Nota: Você precisará desmarcar a propriedade Somente leitura para salvar suas alterações. Volte para Somente leitura quando concluir.

Copie a linha que se parece com isso:

partição multi (0) disco (0) rdisk (0) (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / NoExecute = OptIn

Faça com que a entrada copiada fique assim:

partição multi (0) disco (0) rdisk (0) (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 ou vários núcleos (o TaskManager mostrará dois gráficos de CPU, se isso foi bem-sucedido). Se o multicore inicializar e funcionar corretamente, você poderá excluir a entrada de núcleo único do boot.ini.

James
fonte