13

Среда:

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

Эта проблема:

Мне нужна гостевая система для использования нескольких ядер. Я включил следующие параметры в VirtualBox:

  • IO APIC (вкладка материнской платы)
  • PAE/NX (вкладка процессора)
  • VT-x/AMD-V (ускорение)
  • вложенный пейджинг (ускорение)

Все остальные параметры в подменю «Система» отключены. Ползунок «Процессоры» установлен на 8.

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

3 ответа3

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 ядра.

Сделайте резервную копию образа перед запуском на случай, если система больше не будет загружаться!

7

XP имеет 2 разных HAL, которые используются для нескольких и одного процессора. Если вы установили XP, когда в виртуальной среде был только один процессор, вам, возможно, придется изменить HAL или переустановить.

Инструкции по изменению HAL можно найти на сайте поддержки Microsoft.

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

3

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

Это сработало для меня (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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .