VirtualBox - XP guest non vede più core / processori multipli


13

Ambiente:

  • Sistema operativo host: Win7 Pro 64 bit
  • Sistema operativo guest: WinXP 32 bit
  • Versione di VirtualBox: 4.1.4r74291
  • Processore: Intel Core i7 2630QM con virtualizzazione abilitata

Il problema:

Ho bisogno che il sistema guest usi più core. Ho abilitato le seguenti opzioni in VirtualBox:

  • IO APIC (scheda della scheda madre)
  • PAE / NX (scheda processore)
  • VT-x / AMD-V (accelerazione)
  • paging nidificato (accelerazione)

Tutte le altre opzioni nel sottomenu Sistema sono disattivate. Il cursore "Processori" è impostato su 8.

Il problema è che il sistema guest funziona correttamente, ma è visibile solo un processore / core.

Risposte:


7

XP ha 2 HAL diversi che vengono utilizzati per processori multipli e singoli. Se XP è stato installato quando l'ambiente virtuale aveva un solo processore, potrebbe essere necessario modificare l'HAL o reinstallare.

Puoi trovare istruzioni su come modificare l'HAL sul sito di supporto di Microsoft .

Dovrai selezionare l'opzione multiprocessore ACPI.


bene il sito Microsoft dice che WinXP dovrebbe cambiare automaticamente l'HAL - il mio no. Cosa strana, quando ho controllato il mio gestore dispositivi c'erano 8 processori, ma nel responsabile attività ho potuto vedere solo 1. Quindi ho reinstallato il sistema e Tadam - tutto bene. Grazie!
lbednaszynski,

24

Ho avuto un problema simile e mi sono imbattuto in questo: http://www.nforcershq.com/forum/updating-the-hal-for-multiprocessor-support-t70331.html

Ho scaricato l' devconutilità da Microsoft e ho emesso questi comandi:

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

Quindi ho riavviato e ora XP può vedere tutti e 4 i core.

Fai un backup dell'immagine prima di iniziare nel caso in cui il sistema non si avvierà più!


4
Questo ha funzionato bene per me. Ho ottenuto il mio Virtual Box VM per vedere finalmente la 2a CPU.
CadentOrange

2
Veloce, facile e fatto su WinXP SP3.
Fiasco Labs,

1
Risposta breve e buona, grazie! Ha lavorato per me in due occasioni. Nota: non sono stato in grado di avviare Win XP dopo averlo fatto fino a quando non ho effettivamente configurato la macchina virtuale per avere più di 1 CPU. Inoltre, è possibile aggiungere più CPU in un secondo momento e verranno rilevate correttamente.
jlh

Quindi, se ho capito bene, dopo aver fatto questo hack la VM non funzionerà più con 1 CPU, @jlh?
Sopalajo de Arrierez,

3

Il problema principale (gioco di parole) è che Windows XP contiene due kernel: single-core e multi-core. Probabilmente, il sistema operativo guest ha rilevato solo 1 core durante l'installazione e il guest Windows XP è in esecuzione su hal e kernel single core. Seguire le istruzioni seguenti per abilitare l'avvio con hal e kernel multi-core.

Questo ha funzionato per me (VirtualBox XP Pro) ...

1) Vai in c: \ windows (il tuo percorso di installazione), cerca sp3.cab. Apri questo file cab con 7-zip (anche se Explorer potrebbe essere in grado di aprire il file in modo nativo, se non può quindi scaricare 7-zip da sourceforge).

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

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

3) Modifica c: \ boot.ini

Nota: è necessario deselezionare la proprietà Sola lettura per poter salvare le modifiche. Torna a Sola lettura una volta completato.

Copia la linea che appare così:

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

Rendi la voce copiata simile a questa:

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

Ora hai un'opzione dual-boot per utilizzare single o multicore (TaskManager mostrerà due grafici della CPU se questo ha avuto successo). Se il multicore si avvia e funziona correttamente, è possibile eliminare la voce single core da boot.ini.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.