[System Environment] | |||||||||||||
現在使用されているHALのファイル名を調査する
|
|||||||||||||
|
解説 |
ハードウェアの更新や廃棄などのために、既存のWindows OSがインストールされた環境を新しいシステムへ移行させたいことがある。OSを新規インストールせず、既存のディスク(もしくはその内容を丸ごとコピーしたもの)をそのまま新しいシステムへ装着して起動できれば一番簡単だが、ハードウェアの構成によってはシステムの起動に失敗し、いわゆる「ブルー・スクリーン(致命的なエラーの発生を示す青い画面)」が表示されることがある。特に、何年も前のシステムから最新のシステムへ移行させようとした場合に、このような状態になることが多い。
|
Windows OSではシステムの構成に応じて何種類かのHALが使い分けられている。具体的には次のようなHALタイプがあり、それぞれ別のHALモジュール(DLLファイル)が利用される(TIPS「Windows 2000で選択可能なHALのシステム タイプ」も参照。このTIPSは対象はWindows 2000となっているが、ほかのOSでもほとんど同じである)。
システムのタイプ | ファイル名 | 内容 |
標準 PC | hal.dll | ACPIなしで、MPSなし(シングルコア)のPC |
MPS ユニプロセッサ PC | halapic.dll | ACPIなしで、MPSあり(シングルコア)のPC |
MPS マルチプロセッサ PC | halmps.dll | ACPIなしで、MPSあり(マルチコア)のPC |
ACPI (Advanced Configuration and Power Interface) PC | halacpi.dll | ACPIありで、MPSなし(シングルコア)のPC |
ACPI ユニプロセッサ PC | halaacpi.dll | ACPIありで、MPSあり(シングルコア)のPC |
ACPI マルチプロセッサ PC | halmacpi.dll | ACPIありで、MPSあり(マルチコア)のPC |
Windows OSでサポートされているシステムのタイプ(主なもの) | ||
システムのタイプに応じて利用するHALが変わる。これはWindows XP Professionalのインストール時などに表示されるシステムのタイプ名。MPSとはマルチプロセッサ・システムを利用するための仕様の名称。 |
HALの選択は、基本的にはWindows OSのインストール時に行われる。そのため、ディスク・イメージの丸ごとコピーによるシステム移行ではHALは更新されない(逆に言えば、HALタイプが変わらないような移行ならば、ディスク・イメージのコピーによる移行でも成功する可能性が高いとも言える)。ただし最近のWindows OS(Windows Vista/Windows Server 2008以降)では、起動時に自動的にシステムをチェックして、適切なHALをロード機能があるので、HALの違いによるブルー・スクリーンは発生しにくくなっている。
HALの違いに起因する起動失敗を避けるには、OSを新規インストールもしくはアップグレード・インストールするのが最も望ましいが、時間や手間がかかる。そこで応急措置的な対応として、HALモジュールを強制的に入れ替えてしまうという方法もある(ただしこのようなアップグレード方法はサポートの対象外となる)。インストール済みのOSイメージに対して、適切なHALモジュールを上書きするのである。
上の表を見ると分かるように、HALのタイプに応じてそれぞれ別のDLLファイルが用意されている。マルチコア・システムへの移行に起因するエラーならば、マルチコア用のHALに変更すれば、問題を解消できる可能性がある。
これを行うためには、まず現在どのHALモジュールが利用されているかを知る必要があるだろう。だが現在使用中のHALモジュールは(デフォルトでは)常にHAL.DLLという名前になっている。OSのインストール時に適切なHALモジュールを選択後、HAL.DLLという名前でシステム・フォルダにコピーしているからだ。
そこで本TIPSでは、オリジナルのHALモジュールの名前を調べる簡単な方法を紹介する。
操作方法 |
HAL.DLLのオリジナルのファイル名を知るには、HAL.DLLファイルのプロパティを調べるとよい。まずエクスプローラでWindowsのシステム・フォルダを開き(デフォルトではC:\WINNTやC:\Windowsなど)、System32フォルダの中にあるHAL.DLLファイルを右クリックして、ポップアップ・メニューから[プロパティ]を選択する。そして表示させたプロパティ画面で[バージョン情報]タブを選択し、「項目」の一覧から「正式ファイル名」の値を表示させる。ここに表示されているのが、コピー前のオリジナルのHALのファイル名である。
HAL.DLLファイルのプロパティ例 | |||||||||
これは、あるWindows XP Professional SP3システムにインストールされているHAL.DLLファイルのプロパティ画面の例。元々は別のファイル名だったが、OSのインストール時にHAL.DLLという名前でシステム・フォルダにコピーされている。 | |||||||||
|
この例では「halaacpi.dll」と表示されているので、これはシングルコア対応のACPI PCシステムであることが分かる。マルチコア環境へ移行するなら、マルチコア対応のACPI PCシステム向けHALである「halmacpi.dll」を利用すれば、そのまま起動できる可能性が高いといえる。HALの入れ替え方法については、今後別TIPSで紹介する。
なおHAL.DLL以外にも、NTOSKRNL.EXEというカーネル・モジュールも、システム環境に応じてオリジナル・ファイルをリネームしてコピーされている。これも同様に、ファイルのプロパティを使って確認できる。
この記事と関連性の高い別の記事
- システムが現在使用しているHALを確認する方法(TIPS)
- インストール時に強制的にシステム タイプを指定する方法(TIPS)
- Windows 2000で選択可能なHALのシステム タイプ(TIPS)
- アップグレード インストールに潜む危険性(TIPS)
- Windows Updateのファイルを個別にダウンロードする(1)(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|