図1●このようなエラー・ログを残してサーバーがいつの間にかリブートしてしまうことがある
Q

知らない間にWindows 2000 Serverがリブートしてしまったようです。イベント・ビューアでシステム・ログを確認したところ図1のようなエラー・ログが残っていました。そのため,リブートしたことは確かですが,ダンプ・ファイルも作成されていません。どうやらクラッシュしたわけでもないのに再起動してしまったようです。いったい何が起こったのでしょうか?

A

その時刻にコンソールを見ていないと正確には分かりませんが,まずはワトソン博士のログ・ファイルをチェックしてください。ログ・ファイルの保存場所はdrwtsn32.exeを起動すると確認できます。デフォルトではC:\Documents and Settings\All Users\Documents\DrWatson\drwtsn32.logです。

 その中でOS がリブートしてしまったと思われる日時にlsass.exe,winlogon.exe,csrss.exeといったプロセスがアプリケーション・エラーを起こして異常終了していないか確認してください。これらはシステム稼働に必須のプロセスで,Windows 2000/XPではカーネルが常に実行状態をチェックしています。何らかの原因で異常終了し存在しなくなると,OSそのものを強制的に停止しようとします。


図2●lsass.exeを強制終了するとシャットダウンを通知するメッセージを表示し30秒後に再起動する

 この停止処理が強制リブートであればダンプ・ファイルは作成されませんし,クラッシュ(BugCheck)であればダンプ・ファイルを作成してSave Dumpプロセスによるシステム・ログが残ります。例えば,プロセスを強制終了するkill.exeを使って,実行中のlsass.exeのプロセスを終了させると,コンソール上にダイアログをポップアップし,60秒のカウントダウンをした後に,いきなり再起動する様子を確認できます(図2)。

 一方,Windows NT 4.0ではlsass.exeが終了しても強制リブートはしません。lsass.exeを使った認証を必要とする操作をしない限り,そのまま利用し続けることができます。しかし,ログオフ後に再度ログオンを試みると,ドメイン名を選択するリストボックスがログオン画面から消えてしまいます。ローカル・ログオンしようとしても[ログオンできません]というエラーが出てログオン不能になります。

 こういったlsass.exeが停止した際の動作に関してはマイクロソフトのサポート技術情報というWebサイト(該当サイト)の「文書番号220946(英語版)」の記事に記述があります。

全く手掛かりが残らないケースも
 lsass.exeではなく,winlogon.exeが異常終了した場合,Windows 2000は何の警告もなく瞬時にリブートします。60秒の猶予期間がないためワトソン博士の出力も間に合わずに,全く手掛かりが残らない可能性があります。  NT 4.0でwinlogon.exeが異常終了した場合は[STOP 0xC000021A(STATUS_SYSTEM_PROCESS_TERMINATED)]というSTOPエラーになり,メモリーのダンプ・ファイルも作成されます。

 ちなみに,csrss.exeが異常終了した場合もwinlogon.exeと同様の動作になります。サポート技術情報(313045)によるとWindows 2000も同様のSTOPエラーとなるのが正しい動作のはずですが,実際にはWindows 2000では証拠を残さずリブートしてしまうケースが多いので注意が必要になります。

小森博司