PREV | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

| スポンサー広告 | --:-- | comments(-) | trackbacks(-) | TOP↑

≫ EDIT

VMware Player で XP Mode をマルチコア起動させる方法

VMware Player 3 になったことで XP Mode を VMware 上で扱うことができるようになりましたので、使い慣れたインターフェイスだったりDirectXが使えない問題も解決したりマルチコア動作設定ができたり便利です。ホストOSからワンクリックでXP上のアプリを起動することにメリットを感じない人はこちらの方がいいかもしれません。
が、実際にやった人は分かると思いますが、VMware でマルチコアに設定して起動しようとすると、BSOD(ブルースクリーン)になります。これは、本来 XP Mode は仮想環境内でシングルコアで動作するように作られているからで、いきなりマルチコア要求の起動はできない訳です。(Virtual PC 上でもシングルコアでゲストOS(XP Mode)が動作しています。)
VMware 内での BSOD なので意外とシュールで面白いんですが面白いだけでは困るので、そこでなんとかする方法の紹介です。
hal.dll(ハードウェアとドライバに対してとても近く深い関係を取り持っているDLL)というものが関係してくるのですが、HAL(ハードウェア アブストラクション レイヤ)に関して難しいことは良く分かりません。なのでもう少し専門的に知りたければ以前某巨大掲示板で、

このhalの変更ってどうやるの?
halmacpi.dll を system32 に置いて
boot.ini に
/hal=halmacpi.dll を付加した multi(0)disk(0)rdisk(0)partition(1)\WINDOWS を
書き足して次回起動時に選べばいいの?

と質問した時に返していただいた、

手順は間違ってないが、多分halmacpiを読み込んでも起動しない。一度halaacpiで立ち上げれ。
あと、一度きちんと認識させたら、boot.iniの内容は戻してもOK。

http://support.microsoft.com/kb/309283/ja
↑hal.dll, halaacpi.dll, halmacpi.dllの説明

このお返事で紹介されているマイクロソフトのサポートページを読んで見るといいと思います。各HALの正式名称とか性質に詳しくなれそう。

話を進めます。
このサポートページに書いてあることと、XP Mode の標準構成の状態とを織り交ぜて適当に書くと、

今回関係するHALHALの種類特徴
XP Mode デフォルトのHALACPI (Advanced Configuration and Power Interface) PC、ACPI PIC HAL (halacpi.dll)シングルコア用
マルチコア用のHALに
変更する前に経由させるHAL
ACPI ユニプロセッサ PC、ACPI APIC UP HAL (halaacpi.dll)シングルコアも
マルチコアも認識可能
最終的に読み込ませたいHALACPI マルチプロセッサ PC、ACPI APIC MP HAL (halmacpi.dll) マルチコア用

こんな感じ。
間違っていること受け合いなので、つっこみ歓迎。
デフォルトで OS は hal.dll というものを読み込んで起動します。何もしてない今では hal.dll の中身は halacpi.dll ということになります。目標は hal.dll の中身を halmacpi.dll にすることです。

上での質問で言っていますが、boot.iniに追記してマルチ用のを読み込ませればいいんだろうなぁと単純に考えましたがそれでは上手くいかないので、教えてもらった通り halaacpi.dll を先に読み込ませる必要があります。
なんでそんな必要が?なんて疑問が出ますが、私流のテキトーな解釈だと、まず両方の器を持った halaacpi を読み込ませて「ACPI マルチプロセッサ PC」で動作させるドライバを先にインストールしておかないといけなく、いきなり halmacpi へは行けないという感じです。実際にこれを読み込ませてやると、起動後に「ドライバをインストールしています・・・」といった内容のメッセージが表示され、マルチコア用のドライバ?がインストールされます。それで使えるようになります。
haacpi.dll で起動した後に halmacpi.dll を指定すればいいのか~と次に考えつきますが、どうやら halaacpi.dll でマルチコア要求での起動が完了すれば hal.dll の中身が halmacpl.dll に自動で置き換わるので、boot.ini を元通りにして再起動すればもう完了のようです。
では手順に行きましょう。
の前に、これらの操作は当然ですが自己責任でお願いします。
boot.ini をいじるのでそこら辺の理解は十分にしておきましょう。

手順
1. XP Mode を VMware で起動する。
2. halaacpi.dll と halmacpi.dll を用意する。
本来の XP のインストールディスク内のフォルダ「i386」は XP Mode 内に存在するのでそこから持ってくる。具体的には C:\Windows\Driver Cache\i386\sp3.cab 内に共にあるので両方 C:\Windows\System32\ に放り込んでおく。
3. Boot.ini を表示させる。
boot.ini の表示方法 ⇒「C:\」をエクスプローラーで表示させたら、メニューバーの「ツール」→「フォルダオプション」を起動して、「表示」タブ内の一番下の「保護されたオペレーティング システム ファイルは表示しない(推奨)」のチェックを外せば見えるようになる。
参考画像↓
200912067.jpg
4. Boot.ini を弄る。
弄るといっても追記するだけ。元からある記述に変更を加えると万が一が起こったとき大変なので。
追記する内容(点線はいらない)
---------------------------------------------------------------------------------------
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional (halaacpi.dll) " /noexecute=optin /fastdetect /hal=halaacpi.dll
---------------------------------------------------------------------------------------
同じような記述が元からあるので、そのすぐ下の行にでも丸ごとコピペして保存する。
ちなみに、ダブルクォーテーション内の記述は自分の好きな文字列に変えてもいい。
5. XP をシャットダウンする。
6. VMware の仮想マシン設定のプロセッサの項目で「プロセッサ コアの数」を 2 以上に設定して、XP Mode を起動する。
7. OS の起動方法を問われるので、先ほど boot.ini に追記した方の「Microsoft Windows XP Professional (halaacpi.dll)」を選んで、Enter。
問題がなければ無事にドライバがインストールされ再起動を要求される。⇒再起動
8. 再起動が完了し OS が立ちあがったら、タスクマネージャを開いてマルチコアになっているか確認する。CPU 覧で波形が2個(Core2の場合)とかになっていれば成功。
9. boot.ini に追記した部分はもう不要なので、該当部分を削除して保存。
なお、hal.dll の中身は halmacpi.dll となっているので、この2つのファイルサイズやハッシュ値を比較すれば同じ中身であることが確認できます。

以上。お疲れさまでした。


HAL についての説明はとっても不安だったので、何かないか検索したところヒットしたこちらのサイト様方を大いに参考にしました。
WindowsXPでのHyperThreading有効化
naba日記(仮)
あとで気付いたんですが、掲示板で質問に答えてくださった方は naba日記(仮)の管理者様だったりしたのかな?とか勝手に妄想してたりしてなかったり。
とにかくとても分かりやすい解説記事ありがとうございました。

| Soft & Tool | 07:50 | comments:3 | trackbacks:0 | TOP↑

COMMENT

> 掲示板で質問に答えてくださった方は naba日記(仮)の管理者様だったりしたのかな?
> とか勝手に妄想してたりしてなかったり。
そういえばそんなレスした気がしますねー。

今でも結構アクセスがあるようでびっくりです。

| なば | 2011/03/01 04:28 | URL |

Re: タイトルなし

おお、なば様!やはりでしたか。1年以上前でしたね、
あの的確なレスと記事ほんと助かりました。

やはりあの青いエラーを見たらhalについて調べざるを得ないのでしょうねー。

| ALF | 2011/03/01 13:24 | URL | ≫ EDIT

やったぁ!
ここに記載されている通りで
xpmodeがマルチコアになりました。

ありがとうございます。

| kuw | 2011/06/03 23:50 | URL |















非公開コメント

TRACKBACK URL

http://ashiato1.blog62.fc2.com/tb.php/30-f7eae959

TRACKBACK

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。