VirtualBox - gość XP nie widzi wielu rdzeni / wielu procesorów

13

Środowisko:

  • System operacyjny: Win7 Pro 64bit
  • System operacyjny gościa: WinXP 32bit
  • Wersja VirtualBox: 4.1.4r74291
  • Procesor: Intel Core i7 2630QM z włączoną wirtualizacją

Problem:

Potrzebuję systemu gościa do korzystania z wielu rdzeni. Włączyłem następujące opcje w VirtualBox:

  • IO APIC (karta płyty głównej)
  • PAE / NX (zakładka procesora)
  • VT-x / AMD-V (przyspieszenie)
  • zagnieżdżanie stronicowania (przyspieszenie)

Wszystkie inne opcje w podmenu System są wyłączone. Suwak „procesorów” jest ustawiony na 8.

Problem polega na tym, że system-gość działa poprawnie, ale widoczny jest tylko jeden procesor / rdzeń.

Łbednaszyński
źródło

Odpowiedzi:

7

XP ma 2 różne warstwy HAL, które są używane dla wielu i pojedynczych procesorów. Jeśli zainstalowałeś XP, gdy środowisko wirtualne miało tylko jeden procesor, może być konieczna zmiana HAL lub ponowna instalacja.

Instrukcje dotyczące zmiany warstwy HAL można znaleźć na stronie pomocy technicznej Microsoft .

Musisz wybrać opcję wieloprocesorową ACPI.

Matthew Steeples
źródło
Witryna Microsoft mówi, że WinXP powinien automatycznie zmienić HAL - mój nie. Dziwne, gdy sprawdziłem menedżera urządzeń, było 8 procesorów, ale w menedżerze zadań widziałem tylko 1. Więc ponownie zainstalowałem system i tadam - wszystko w porządku. Dzięki!
lbednaszyński
24

Miałem podobny problem i natknąłem się na to: http://www.nforcementershq.com/forum/updating-the-hal-for-multiprocessor-support-t70331.html

Pobrałem devconnarzędzie z firmy Microsoft i wydałem następujące polecenia:

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

Potem zrestartowałem się i teraz XP może zobaczyć wszystkie 4 rdzenie.

Wykonaj kopię zapasową obrazu przed uruchomieniem na wypadek, gdyby system nie uruchamiał się więcej!

dawez
źródło
4
To działało dla mnie dobrze. Mam wirtualną maszynę wirtualną Box, aby w końcu zobaczyć 2. procesor.
CadentOrange
2
Szybko, łatwo i na WinXP SP3.
Fiasco Labs,
1
Krótka i dobra odpowiedź, dziękuję! Pracowałem dla mnie dwa razy. Uwaga: po wykonaniu tej czynności nie byłem w stanie uruchomić systemu Windows XP, dopóki nie skonfigurowałem maszyny wirtualnej tak, aby miała więcej niż 1 procesor. Możesz także dodać więcej procesorów później i zostaną one poprawnie wykryte.
jlh
Więc jeśli dobrze zrozumiałem, po zrobieniu tego hacka maszyna wirtualna nie będzie działać z 1 procesorem, @jlh?
Sopalajo de Arrierez
3

Podstawowym problemem (przeznaczonym dla pun) jest to, że Windows XP zawiera dwa jądra: jedno-i wielordzeniowy. Prawdopodobnie system operacyjny gościa wykrył tylko 1-rdzeniowy podczas instalacji, a gość Windows XP działa na jednordzeniowym hal i jądrze. Postępuj zgodnie ze wskazówkami poniżej, aby włączyć uruchamianie z wielordzeniowym halem i jądrem.

To zadziałało dla mnie (VirtualBox XP Pro) ...

1) Przejdź do c: \ windows (ścieżka instalacji), wyszukaj sp3.cab. Otwórz ten plik cab za pomocą 7-zip (chociaż odkrywca może być w stanie natywnie otworzyć plik, jeśli nie będzie w stanie pobrać 7-zip z sourceforge).

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

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

3) Edytuj c: \ boot.ini

Uwaga: musisz odznaczyć właściwość Tylko do odczytu, aby zapisać zmiany. Po zakończeniu ustaw ponownie na Tylko do odczytu.

Skopiuj linię, która wygląda następująco:

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

Spraw, aby skopiowany wpis wyglądał tak:

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

Teraz masz opcję podwójnego rozruchu, aby użyć jednego lub wielu rdzeni (TaskManager wyświetli dwa wykresy procesora, jeśli się to powiedzie). Jeśli wielordzeniowy uruchamia się i działa poprawnie, możesz usunąć wpis z jednego rdzenia z boot.ini.

James
źródło