VirtualBox - XP-Gast erkennt nicht mehrere Kerne / mehrere Prozessoren

13

Umgebung:

  • Host-Betriebssystem: Win7 Pro 64-Bit
  • Gastbetriebssystem: WinXP 32bit
  • VirtualBox-Version: 4.1.4r74291
  • Prozessor: Intel Core i7 2630QM mit aktivierter Virtualisierung

Das Problem:

Ich brauche das Gastsystem, um mehrere Kerne zu verwenden. Ich habe die folgenden Optionen in VirtualBox aktiviert:

  • IO APIC (Motherboard-Registerkarte)
  • PAE / NX (Prozessorregister)
  • VT-x / AMD-V (Beschleunigung)
  • verschachteltes Paging (Beschleunigung)

Alle anderen Optionen im Untermenü System sind ausgeschaltet. Der Schieberegler "Prozessoren" ist auf 8 eingestellt.

Das Problem ist, dass das Gastsystem korrekt ausgeführt wird, aber nur ein Prozessor / Core sichtbar ist.

lbednaszynski
quelle

Antworten:

7

XP verfügt über 2 verschiedene HALs, die für Mehrfach- und Einzelprozessoren verwendet werden. Wenn Sie XP installiert haben, während die virtuelle Umgebung nur einen Prozessor hatte, müssen Sie möglicherweise die HAL ändern oder neu installieren.

Anweisungen zum Ändern der HAL finden Sie auf der Support-Website von Microsoft .

Sie müssen die ACPI-Multiprozessoroption auswählen.

Matthew Steeples
quelle
Nun, Microsoft Site sagt, dass WinXP die HAL automatisch ändern sollte - meine nicht. Merkwürdige Sache, als ich meinen Gerätemanager auscheckte, gab es 8 Prozessoren, aber im Task-Manager konnte ich nur 1 sehen. Also habe ich System und Tadam neu installiert - alles in Ordnung. Vielen Dank!
Lbednaszynski
24

Ich hatte ein ähnliches Problem und bin auf folgendes gestoßen: http://www.nforcershq.com/forum/updating-the-hal-for-multiprocessor-support-t70331.html

Ich habe das devconDienstprogramm von Microsoft heruntergeladen und die folgenden Befehle ausgegeben:

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

Dann habe ich neu gestartet und jetzt kann XP alle 4 Kerne sehen.

Erstellen Sie vor dem Start eine Sicherungskopie des Images, falls das System nicht mehr startet!

dawez
quelle
4
Das hat bei mir gut funktioniert. Ich habe meine Virtual Box VM bekommen, um endlich die 2. CPU zu sehen.
CadentOrange
2
Schnell, einfach und erledigt mit WinXP SP3.
Fiasco Labs
1
Kurze und gute Antwort, danke! Ich habe zweimal für mich gearbeitet. Hinweis: Ich konnte Win XP danach erst starten, nachdem ich die virtuelle Maschine mit mehr als einer CPU eingerichtet hatte. Sie können später auch weitere CPUs hinzufügen, die ordnungsgemäß erkannt werden.
11.
Wenn ich das richtig verstanden habe, funktioniert die VM nach diesem Hack nicht mehr mit 1 CPU, @jlh?
Sopalajo de Arrierez
3

Das Kernproblem (Wortspiel beabsichtigt) ist, dass Windows XP zwei Kernel enthält: Single-Core und Multi-Core. Wahrscheinlich hat das Gastbetriebssystem während der Installation nur 1-Core erkannt und Ihr Windows XP-Gast wird auf der Single-Core-Version und dem Kernel ausgeführt. Befolgen Sie die nachstehenden Anweisungen, um das Booten mit der Multi-Core-Hal und dem Kernel zu ermöglichen.

Das hat bei mir geklappt (VirtualBox XP Pro) ...

1) Gehen Sie in c: \ windows (Ihr Installationspfad) und suchen Sie nach sp3.cab. Öffnen Sie diese cab-Datei mit 7-zip (obwohl der Explorer die Datei möglicherweise nativ öffnen kann, wenn er 7-zip nicht von sourceforge herunterladen kann).

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

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

3) Bearbeiten Sie die Datei c: \ boot.ini

Hinweis: Sie müssen die schreibgeschützte Eigenschaft deaktivieren, damit Sie Ihre Änderungen speichern können. Nach Abschluss wieder auf schreibgeschützt setzen.

Kopieren Sie die Zeile, die so aussieht:

Multi (0) Disk (0) Rdisk (0) Partition (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / NoExecute = OptIn

Lass den kopierten Eintrag so aussehen:

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

Jetzt haben Sie eine Dual-Boot-Option zur Verwendung von Single- oder Multicore (TaskManager zeigt zwei CPU-Diagramme an, wenn dies erfolgreich war). Wenn Multicore startet und ordnungsgemäß funktioniert, können Sie den Einzelkerneintrag aus der Datei boot.ini löschen.

James
quelle