Dabits

サーバサイドから運営まで何でもやるエンジニア系DJ

手動でACPIマルチプロセッサのHALをいれなおす

ネットブックデュアルブート化の際、誤ってHALを削除してしまうという大失態を犯し、 以降通常のhal.dllでしか起動しなくなってしまいました。 Atomマルチプロセッサとして動作するので、そのようにHALを入れなおす必要があります。 今回はその修復メモ。

##前提環境

WindowsXP Home Edition SP3 ディスクブートなOS(Knoppixなど)

##修復方法

・使用されていたHALを探す まずセットアップのログを見て、どのようなHALがインストールされていたのかアタリをつけます。 C:\WINDOWS\repair\setup.log をhal.dllで検索すると、下記のようにヒットするはずです。

\WINDOWS\system32\hal.dll = "halmacpi.dll","2812c"
\WINDOWS\system32\ntkrnlpa.exe = "ntkrpamp.exe","1f1bd2"
\WINDOWS\system32\ntoskrnl.exe = "ntkrnlmp.exe","217c37"

私の環境では、halmacpi.dllが使われている模様でした。 続いて、ntkrnlpa.exeやntoskrnl.exeの欄も見ておきます。 マルチプロセッサだとこのファイルが変わるためです。これらのファイル名をメモっておきます。

・サービスパックのパッケージからファイルを抽出する 上記でメモしたファイルを、サービスパックのパッケージから抽出します。 SP3を改めて導入してしまった場合、下記のファイルにhalが入っている模様です。 C:\WINDOWS\Driver Cache\i386\sp3.cab このファイルを展開し、メモしたファイルたちを探し出して適当なフォルダに入れておきます。 ファイル名はsetup.logに書かれていたように変更しておきます。 たとえば、halmacpi.dllならhal.dllのようにしておきます。

・システムファイルを置換する マシンを再起動し、ディスクブートなOSで適当に起動します。 あとはhal.dllたちを入れ替えるだけです。C:\Windows\system32の中に入っているので、 hal.dll、ntkrnlpa.exe、ntoskrnl.exeのバックアップをとり、ファイルを置換します。


こんな感じで修復できました!よかった!