VirtualBox - XP гість не бачить декілька ядер / декілька процесорів


13

Середовище:

  • Хост ОС: Win7 Pro 64bit
  • Гостьова ОС: WinXP 32bit
  • Версія VirtualBox: 4.1.4r74291
  • Процесор: Intel Core i7 2630QM з включеною віртуалізацією

Проблема:

Мені потрібна гостьова система, щоб використовувати кілька ядер. Я ввімкнув наступні параметри у VirtualBox:

  • IO APIC (вкладка материнської плати)
  • PAE / NX (вкладка процесора)
  • VT-x / AMD-V (прискорення)
  • вкладені підкачки (прискорення)

Усі інші параметри в підменю «Система» увімкнено. Повзунок "процесори" встановлено на 8.

Проблема полягає в тому, що гостьова система працює правильно, але видно лише один процесор / ядро.

Відповіді:


7

У XP є 2 різних HAL, які використовуються для декількох і одного процесора. Якщо ви встановили XP, коли у віртуальному середовищі був лише один процесор, можливо, вам доведеться змінити HAL або перевстановити.

Ви можете знайти інструкції щодо зміни HAL на сайті підтримки Microsoft .

Вам потрібно буде вибрати опцію мультипроцесора ACPI.


ну сайт Microsoft говорить, що WinXP повинен автоматично змінити HAL - мій не зробив. Дивна річ, коли я перевірив свого диспетчера пристроїв, було 8 процесорів, але в диспетчері завдань я міг бачити лише 1. Отже, я перевстановив систему і тадам - ​​все добре. Спасибі!
lbednaszynski

24

У мене була подібна проблема, і я натрапив на це: http://www.nforcershq.com/forum/updating-the-hal-for-multiprocessor-support-t70331.html

Я завантажив devconутиліту від Microsoft і видав наступні команди:

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

Потім я перезавантажився і тепер XP може бачити всі 4 ядра.

Зробіть резервну копію зображення перед запуском у випадку, якщо система більше не завантажиться!


4
Це добре спрацювало для мене. Я отримав свою віртуальну коробку VM, щоб нарешті побачити другий процесор.
CadentOrange

2
Швидко, просто та зроблено на WinXP SP3.
Лабораторії Фіаско

1
Коротка та добра відповідь, дякую! Працював для мене два рази. Примітка: я не зміг завантажувати Win XP після цього, поки я фактично не встановив віртуальну машину, щоб мати більше 1 процесора. Крім того, згодом ви можете додати більше процесорів, і вони будуть належним чином виявлені.
jlh

Отже, якщо я правильно зрозумів, після цього зламу VM більше не працюватиме з 1 процесором, @jlh?
Sopalajo de Arrierez

3

Основна проблема (призначена для каламбура) полягає в тому, що Windows XP містить два ядра: одноядерне та багатоядерне. Ймовірно, гостьова ОС виявила лише 1-ядерний процес встановлення, а ваш гість Windows XP працює на одноядерних hal та ядрах. Дотримуйтесь вказівок, щоб увімкнути завантаження із багатоядерним hal та ядром.

Це працювало для мене (VirtualBox XP Pro) ...

1) Зайдіть у c: \ windows (ваш шлях встановлення), знайдіть sp3.cab. Відкрийте цей файл кабіни за допомогою 7-zip (хоча Explorer може мати можливість відкрити файл, якщо він не зможе завантажити 7-zip з sourceforge).

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

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

3) Відредагуйте c: \ boot.ini

Примітка. Потрібно зняти прапорець властивості лише для читання, щоб зберегти зміни. Поверніться до завершення лише для читання.

Скопіюйте такий рядок:

мульти (0) диск (0) rdisk (0) розділ (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / NoExecute = OptIn

Зробіть скопійований запис таким чином:

multi (0) диск (0) rdisk (0) розділ (1) \ WINDOWS = "Microsoft Windows XP MultiCore" / fastdetect / NoExecute = OptIn /kernel=ntkrnlmp.exe /hal=halmacpi.dll

Тепер у вас є можливість подвійного завантаження для використання одиночного або багатоядерного (TaskManager покаже два графіки процесора, якщо це було успішним). Якщо багатоядерні черевики і працюють належним чином, ви можете видалити єдиний основний запис із boot.ini.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.