読者です 読者をやめる 読者になる 読者になる

ぐるっとぐりっど

日曜プログラマがいろいろ試してみたことを、後の自分のためにまとめておく場所

Windows10へのアップグレードでPAGE_FAULT_IN_NONPAGED_AREAで失敗する原因を調査する

はじめに

Windows 10がリリースされて、はや一か月。僕も自分のWindows 7を10にバージョンアップしようと挑戦するも、アップデート途中に、PAGE_FAULT_IN_NONPAGED_AREAというエラーメッセージのブルースクリーン(BSOD)とともにロールバックされてしまっていた。
失敗時のメッセージにある、「0xC1900101 - 0x40017」というメッセージでぐぐってもいい対処法が出てこない。

ちょっとずつ構成を変えてみてはアップデートに挑戦して、失敗して、1回の試行の度にもろもろ3時間程度浪費する始末。そんな状態から、一気に解決の糸口を見つけ、無事Windows10にバージョンアップできたのでメモ。

お約束

書いてある通りにやっても、どんな環境でもうまくいくとは限らないので自己責任で。特にメーカー製のPCの場合はサポートが受けられなくなる可能性があるので、メーカー製PCでうまくいかない場合は、公式にアナウンスが出るまで待つのが無難。

(といいつつ、せいぜい3年以内に発売された機器以外は、メーカーもまともに対応しないよなーとは思う)

環境

5年ぐらい前にかった、DELLのInspiron 580。テレビチューナー増設、メモリ増設、それ以外は特に変更なし

事象

バージョンアップ前に実行できる、環境のチェックでは、Windows Media Centerが10では使えないよ、と言われるぐらいで問題なし(テレビチューナーがWindows Media Center経由でテレビを見るやつなので、地味に痛かったけど、最近nasneを買ったので問題なし)。
なのに、バージョンアップを進めていると、デバイスの更新の91%ぐらいでいきなりリブートされ、ブルースクリーン(PAGE_FAULT_IN_NONPAGED_AREA)になってしまう。

いろいろな人がハマってるらしく、エラーメッセージでググるといろいろ出てくる

  • CPUとメモリをチェックしろ
  • スキャンディスクしろ
  • ドライバは全部最新のものにしろ
  • USBデバイスはすべて(キーボードとマウス以外)はずせ
  • キーボード、マウスもはずせ
  • LANは無効にしろ

全部やった。

が・・・・駄目っ・・・・・!

所詮一般論。こんなん信じてたら何にもわからないよ。
これでうまくいった人はおめでとう!

じゃあどうするか

ログをチェックしよう。
10にバージョンアップしようとして、ロールバックされてしまうと、下記のフォルダが作られているはず

C:\$Windows.~BT

これをたどっていくと、
C:\$Windows.~BT\Sources\Panther\setupact.log に求めるログがある。

けどこれはお勧めしない。ログファイルは所詮作った人が読むためのもの。無関係の僕らが読んだって何が書いてあるのか大まかにはわかっても、原因特定につなげるのは難しい。(ググったらこのログみて解決してた人もいた。すごい)

では、どうするか。

実は、
C:\$Windows.~BT\Sources\Rollback
に、setupmem.dmpというファイルがある。これ、ブルースクリーンになったときのクラッシュダンプなのだ。

そして、このクラッシュダンプは、WinDbgというツールで簡単に解析できる。

僕はVisual Studioについてきたのを使っているのだけど、たぶん下記ページからダウンロードできるはず。msdn.microsoft.com

WinDbgをインストールしたらあとは簡単。たった5ステップでPAGE_FAULT_IN_NONPAGED_AREAとなった原因を特定できる。

  1. WinDbgを起動して、メニューバーの「File」→「Open Crash Dump...」で、先ほどのsetupmem.dmpを読み込む。
  2. 読み込み後表示されるウィンドウの、コンソール欄に「!analyze -v」と入力してエンターf:id:grugrut:20150830214908p:plain
  3. そうするといろいろとメッセージがでるけど、出力された内容の上のほうに、PAGE_FAULT_IN_NONPAGED_AREAと表示されていることが確認できる。f:id:grugrut:20150830214912p:plain
  4. そして、そのしたには該当するエラーになったときに読み込まれたモジュール名などが表示されるけど、これだけだとよくわからないので、MODULE_NAME横のリンクをクリックするf:id:grugrut:20150830214915p:plain
  5. すると、モジュールの詳細情報が表示される。f:id:grugrut:20150830214917p:plain

僕の環境では、DiXiM Media Serverとかいうアプリが悪さをしていたようだ。調べてみると、テレビチューナーについてきたアプリのようだ。テレビチューナーははずしてしまったので、問題なしとばっさりアンインストール。

その結果、
Windows 10にばーじょんあっぷかくにん、よかった!

これでもダメなひとは、再度クラッシュダンプをチェックして、状況が変わっているかどうかを確認するのがよいでしょう

まとめ

ブルースクリーンはクラッシュダンプを確認すれば、問題の追跡・撲滅、いずれも・・・・マッハ!!!

てか、事前チェックでアプリやドライバの互換性チェックしてるんだから、そこではじいてくれよ。。。