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
Это хорошо сработало для меня. Я получил свою виртуальную виртуальную машину, чтобы наконец увидеть второй процессор.
CadentOrange

2
Быстро, просто и сделано на WinXP SP3.
Fiasco Labs

1
Короткий и хороший ответ, спасибо! Работал для меня два раза. Примечание. После этого я не смог загрузить Win XP, пока не установил виртуальную машину на более чем 1 процессор. Кроме того, вы можете добавить больше процессоров позже, и они будут обнаружены правильно.
JLH

Итак, если я правильно понял, после этого взлома виртуальная машина больше не будет работать с 1 процессором, @jlh?
Сопалахо де Арриерес

3

Основная (каламбурная) проблема заключается в том, что Windows XP содержит два ядра: одноядерное и многоядерное. Скорее всего, гостевая ОС обнаружила только одно ядро ​​во время установки, а ваша гостевая система Windows XP работает на одноядерном компьютере и ядре. Следуйте инструкциям ниже, чтобы включить загрузку с многоядерным hal и ядром.

Это сработало для меня (VirtualBox XP Pro) ...

1) Зайдите в c: \ windows (ваш путь установки), найдите sp3.cab. Откройте этот cab-файл с помощью 7-zip (хотя проводник может открыть файл самостоятельно, если не может загрузить 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

Сделайте скопированную запись похожей на это:

многодисковый (0) дисковый (0) раздел (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.