VirtualBox-XPゲストには、複数のコア/複数のプロセッサが表示されません


13

環境:

  • ホストOS:Win7 Pro 64ビット
  • ゲストOS:WinXP 32ビット
  • VirtualBoxバージョン:4.1.4r74291
  • プロセッサー:仮想化を有効にしたIntel Core i7 2630QM

問題:

ゲストシステムで複数のコアを使用する必要があります。VirtualBoxで次のオプションを有効にしました。

  • IO APIC(マザーボードタブ)
  • PAE / NX(プロセッサタブ)
  • VT-x / AMD-V(加速)
  • ネストされたページング(加速)

[システム]サブメニューの他のオプションはすべて切り替えられます。「プロセッサー」スライダーは8に設定されています。

問題は、ゲストシステムが正常に実行されるが、1つのプロセッサ/コアのみが表示されることです。

回答:


7

XPには、マルチプロセッサとシングルプロセッサに使用される2つの異なるHALがあります。仮想環境にプロセッサが1つしかないときにXPをインストールした場合、HALの変更または再インストールが必要になる場合があります。

HALの変更方法については、Microsoftのサポートサイトで説明されています。

ACPIマルチプロセッサオプションを選択する必要があります。


Microsoftのサイトでは、WinXPが自動的にHALを変更すべきだと言っています-私はしませんでした。奇妙なことに、デバイスマネージャーをチェックアウトすると8個のプロセッサがありましたが、タスクマネージャーでは1つしか表示されませんでした。そのため、システムとtadamを再インストールしました。ありがとう!
lbednaszynski

24

私は同様の問題があり、これにつまずいた:http : //www.nforcershq.com/forum/updating-the-hal-for-multiprocessor-support-t70331.html

devconMicrosoftからユーティリティをダウンロードし、次のコマンドを発行しました。

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

その後、再起動すると、XPは4つのコアすべてを見ることができます。

システムが起動しない場合に備えて、開始する前にイメージのバックアップを作成してください


4
これは私にとってはうまくいきました。Virtual Box VMを手に入れて、2番目のCPUを確認しました。
CadentOrange

2
WinXP SP3ですばやく簡単に完了。
Fiasco Labs

1
短くて良い答え、ありがとう!2つの機会に私のために働いた。注:仮想マシンに複数のCPUを設定するまで、これを行った後、Win XPを起動できませんでした。また、後でCPUを追加すると、適切に検出されます。
jlhが

そのため、このハックを行った後、VMが1 CPUで動作しなくなった場合、@ jlhを正しく理解できた場合、
ソパラホデアリエレス

3

コア(しゃれを意図した)問題は、Windows XPに2つのカーネルが含まれていることです:シングルコアとマルチコア おそらく、ゲストOSはインストール中に1コアのみを検出し、Windows XPゲストはシングルコアhalおよびカーネルで実行されています。以下の指示に従って、マルチコアhalおよびカーネルでの起動を有効にします。

これは私のために働いた(VirtualBox XP Pro)...

1)c:\ windows(インストールパス)に移動し、sp3.cabを検索します。このcabファイルを7-zipで開きます(ただし、エクスプローラーがsourceforgeから7-zipをダウンロードできない場合、エクスプローラーはファイルをネイティブで開くことができます)。

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

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

3)c:\ boot.iniを編集します

注:変更を保存できるように、読み取り専用プロパティのチェックを外す必要があります。完了したら、読み取り専用に戻します。

次のような行をコピーします。

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

コピーしたエントリを次のようにします。

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

これで、シングルコアまたはマルチコアを利用するデュアルブートオプションがあります(これが成功した場合、TaskManagerは2つのCPUグラフを表示します)。マルチコアが起動して正常に動作する場合、boot.iniからシングルコアエントリを削除できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.