トップページコラム > > NMIスイッチでWindowsのシステム・ダンプを取得





NMIスイッチでWindowsのシステム・ダンプを取得

作成日: 2013年1月19日
更新日: (なし)

NMIスイッチ

NMIスイッチをご存じですか? 私は単なる「自爆ボタン」だと思っていましたが、最近になってもう少し上等なボタンであったことを知りました。 このページを見に来られた方はその筋の方ばかりでしょうから中途半端な説明はぶっ飛ばし、本題の設定方法を中心に行かせて頂きます。

マニュアルのNMIスイッチの画像

このページはIBMのIAサーバー(System x)を元に書いています。 実はIBM以外のIAサーバーのNMIスイッチがどうなっているのか知らないのですが、サーバーのハードウェア関係のマニュアルを「NMI」で検索すると目星は付くはずです。 左の画像もIBM System xのマニュアルの抜粋で、「ここに付いてまっせ!」という説明図です。

IBM IAサーバーのNMIスイッチの画像

実物のNMIスイッチの画像です。 青いボタンの右側にある小さな穴がNMIスイッチです。 ここを大型クリップ(必須アイテム)の先でグイっと押してやるとサーバーが自爆します。

画像はIBM System x3650 M3のものです。 IBMのIAサーバーなら大抵このパネルを装備しているので、NMIスイッチはこの位置にあると考えて大丈夫です。 ただ、最小エントリー・モデルのx3250系のサーバー(x3250 M4など)ではこのパネルがないので、NMIスイッチはサーバーの背面のUSBポートの隣に付いています。

Windowsのダンプ出力設定(Windows Server 2003)

Windowsの標準設定ではNMIスイッチを押してもシステム・ダンプが出力されるようにはなっていません。 他のダンプ出力の設定と合わせて、3点の設定を行います。 なお、手順はWindows Server 2003のものです。 2000は2003と同じ設定となりますが、2008からは最初と2つ目の仕様が少しだけ違います。 2008や2012をお使いの方はそこだけ調べ直してください。 3つ目の仕様は2008でも同じことを確認しています(KB927069)。

  • ページング ファイルの設定(KB130536
  • 物理メモリ2GB以上搭載時の完全メモリ ダンプ出力の設定(KB307973
  • NMIスイッチによるダンプ出力設定(KB927069

その1 ページング ファイルの設定

1つ目はページング ファイルの設定です。 NMIスイッチを使う・使わないに関わらず、システム・ダンプ出力の設定としてページング ファイルの容量と場所を確認しておきます。 システム・ダンプは一旦、ページング ファイル(ページング領域)上に書き出された後、システム領域(Cドライブなど)にコピーされます。 そのため、ページング ファイルの容量は物理メモリの容量以上が確保されている必要があります。 KB130536では「物理メモリに1MBを加えたサイズ以上」とありますが、物理メモリ4GB搭載なら1.5倍の6GBくらいを設定しておけば安心でしょう。

また、2003の場合はページング ファイルはシステム領域(%systemroot%)にないといけません。 通常、「%systemroot%」は「Cドライブ」でしょうから、ページング ファイルはCドライブ上に作成していることを確認しておきましょう。

その2 物理メモリ2GB以上搭載時の完全メモリ ダンプ出力の設定

Windows Server 2003のシステムのプロパティ画面の画像

2つ目は物理メモリを2GB以上搭載している場合の設定です。 サーバーに物理メモリが2GB以上構成されていると、デフォルトではGUIメニューから完全メモリ ダンプを設定できなくなっています。

カーネル メモリ ダンプを出力させるのであれば、デフォルトのままで構いません。 完全メモリ ダンプを出力させたいのであれば必要になる設定です。

Windows Server 2003の起動と回復画面の画像1

デフォルトのままだと右の画像のように「完全メモリ ダンプ」の表示が出てきません。 「カーネル メモリ ダンプ」までしか設定できないようになっています。

64bit版などで数十GBの物理メモリが載っているサーバーなら話は別ですが、32bit版の最大4GB構成なら完全メモリ ダンプの設定でも出力にそれほど時間はかかりません。 4GBのダンプ・ファイルをページング ファイルからシステム領域(デフォルトではC:\WINDOWSの直下)にコピーする時間がかかるだけです。 できるだけ全てのダンプ・データを取っておけるように完全メモリ ダンプを設定しておくことをお勧めします。

設定はレジストリの変更とコマンド入力の2通りがあります。 コマンド入力はレジストリを変更するものなので、どちらでやっても同じことです。 今回はコマンド入力の方法を紹介します。 DOSプロンプトから「wmic recoveros set DebugInfoType = 1」を入力します。

C:\>wmic recoveros set DebugInfoType = 1
'\\(コンピュータ名)\ROOT\CIMV2:Win32_OSRecoveryConfiguration.Name="Microsoft Windows Server 2003 Standard Edition|C:\\WINDOWS|\\Device\\Harddisk0\\Partition1"' のプロパティを更新しています
プロパティは正しく更新されました。

C:\>

Windows Server 2003の起動と回復画面の画像2

左の画像は設定後の画面です。 リストに「完全メモリ ダンプ」が表示されるようになっています(コマンド入力後は「完全メモリ ダンプ」の値が設定されます)。

これで完全メモリ ダンプを取得できます。 そんなものと言えばそんなものなのでしょうけども、まどろっこし過ぎます。

あと、この仕様はKB274598のとして公開されていたようですが、MicrosoftのサイトではこのKB274598は見つからなくなっています。 設定自体はKB307973に記載されています。 ただ、そのKB307973からKB274598の言及とリンクが張られていますが、KB274598のページはNot Foundになっています。 Web上を検索してもKB274598のページが見つからなくなっています。 気持ち悪いですね。

その3 NMIスイッチによるダンプ出力設定

3つ目の設定です。 デフォルトではNMIスイッチを押されて割り込みがかけられてもシステム・ダンプを出力する動作にはなりません。 ブルー・スクリーン(BSOD)が表示されてWindowsが再起動するだけです。 NMIスイッチは単なる自爆ボタンでしかありません。 レジストリを変更し、NMIスイッチが押された時にシステム・ダンプを出力する動作になるようにします。

レジストリのNMICrashDump設定の画像

レジストリの場所は「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl」です。

左側のペインで「CrashControl」を選択し、右側ペインで新規の項目を作成します。 右クリックの「新規」から「DWORD値」をクリックし、「NMICrashDump」という項目名を作成します。 「表記」は「16進数」のままにして、「値のデータ」に「1」を設定します。 レジストリの変更後、値を有効にするためWindowsを再起動します。 設定はこれで以上です。

NMIスイッチの押下

NMIスイッチによるブルー・スクリーンの画像

画像は冒頭の物理的なNMIスイッチを押下したところの画面出力をサーバーのリモート・コンソール出力機能を使ってキャプチャーしたものです。 タイトルが「Hardware malfunction.」、「STOP: 0x00000080」のコードでブルー・スクリーンが表示されます。

一連の設定が上手くできていれば、下部に「Beginning dump of physical memory」のメッセージが表示されてダンプ・ファイルの出力が始まります。 もし、単なる自爆スイッチのままならこの「Beginning〜」のメッセージは表示されず、ダンプも出力されないので設定に間違いがないか見直しましょう。

「Dumping physical memory to disk:」で表示される数字が100になれば出力終了です。 ここはディスクの性能によりますが、4GBのダンプをハードウェアRAID1構成のSAS 15,000回転のディスクに出力したところ、約10分程度で終わりました。

完全メモリ ダンプのファイルの画像

デフォルトの設定のままであれば、「C:\WINDOWS」直下にダンプ・ファイルが出力されています。 完全メモリ ダンプを指定しているので、設定が正しければ物理メモリと同じサイズのダンプ・ファイルが出力されます。

画像の環境では物理メモリを4GB搭載していたので、約4GBのダンプ・ファイルが作成されました。 きっちり4GB(4,194,304バイト)ではありませんでしたが、ほぼ4GBというファイル・サイズでした。

今回はNMIスイッチを自爆ボタンからパワーアップさせる設定でした。 設定しても害はないので、他の方法(キーボードによる強制スイッチ)と一緒に設定しておくのがお勧めです。 Windowsがフリーズしてしまった場合に役立つことでしょう。

更新履歴

更新日 更新内容
2013年1月19日 新規作成