「system32\ntoskrnl.exe」が壊れている

Windows 2000で、よくお目にかかります

次のファイルが存在しないかまたは壊れているため、
Windowsを起動できませんでした:
<Windows root>\system32\ntoskrnl.exe.
上記のファイルをインストールし直してください。

パソコン起動直後に、このようなエラー表示が出て停止します。
特に、Windows 2000でよく見られる症状です。
エラー表示をうのみにすると、「ntoskrnl.exe」そのものに問題がありそうです。
でも、本当の原因は、必ずしもそこにはありません。

「ntoskrnl.exe」とは

そのまんまのファイル名ですが、Windows NT系OSのカーネルファイルです。
カーネルとは、ハードウェアとソフトウェアの架け橋みたいなもので、
OSの基礎となっている部分です。※参考: Wikipedia

カーネルという基礎部分があるから、各種ソフトウェアがその上で動作することができます。
Windows NT系のOSにとって、「ntoskrnl.exe」は、
カーネルを構成するための主要なファイルになります。

カーネルが動作していなければ、OSも何もあったもんじゃありませんから、
Windowsが起動するとすぐ、「ntoskrnl.exe」ファイルが読み込まれます。
表題のエラーは、その時点で「ntoskrnl.exe」ファイルが見つからなかったことを意味します。
当然、Windowsを起動することなどできるはずがありません。

「ntoskrnl.exe」エラーの原因

エラー表示そのものは、カーネルが破損していることを示しているので、
かなり深刻なWindowsのエラーだということになります。

しかし、起動直後に「ntoskrnl.exe」ファイルが見つからなかっただけで、
すべてこのエラー表示になる
という点に注意が必要です。

これは、「hal.dll」エラーと似ています。
というか、原因は一緒です。
エラー表示が違うのは、Windowsのバージョンによってファイルを読みに行く順番が違うからです。

Windows 2000 「ntoskrnl.exe」エラー
Windows XP 「hal.dll」エラー

みたいな感じです。

つまり、Windowsを起動する際、「ntoskrnl.exe」がたまたま早い段階で読み込まれるので、
「ntoskrnl.exe」エラーが表示されているだけのことで、
「ntoskrnl.exe」エラーが表示されるのは、
Windowsそのものを見つけられていない可能性が高い
のです。

Windowsそのものが見つからないというのは、例えば、
Windowsがインストールされていないパーティションから起動してたりとか、
そういうことです。

そうなってしまう主な原因は、「boot.ini」ファイルにあります。
「boot.ini」ファイルとは、
どのハードディスクの、どのパーティションから、どのように起動するかを記述した、
Windowsの設定ファイルです。

問題のある「boot.ini」をどのように修正すべきかについては、下記ページにまとめてみました。

「boot.ini」の編集

おそらく、「boot.ini」を正しく編集し直すだけで、
「ntoskrnl.exe」エラーからの復旧ができるはずです。