Hewlett Packard Z800 Workstation筆者の私物でメインマシン。サイドパネルその他を外して動作チェック作業中の姿。

結論「ファイルサルベージは重要だ」~Windows環境復旧記~

  • このエントリーをはてなブックマークに追加

by [2014年8月19日]

それは、終戦記念日を明日に控えた8月14日夜半のことでございました。

もの書きの端くれを自称している筆者がどうにかその日提出する予定だった原稿を書き上げて提出し、やれやれ、これであと1本短い原稿を明日の夕方までに書いて提出すれば郷里に帰省するなり有明で開催される年に2度のお祭りに行くなりできそうだ、などと思いつつ愛用のメインマシンのWindowsをいったん再起動し、さきほどから何度も表示されていた脅迫めいた文言の並ぶ再起動要求ダイアログに従うことにしたそのとき、今思えばまさにその瞬間に、この悲劇は幕を開けていたのでございます。

▼のちに知ることになるWindows Update問題
(ノTДT)ノ俺の原稿返せ!オタクを襲ったWindows Updateの悲劇

悲劇の始まり

「STOP: 0x00000050」
「PAGE_FAULT_IN_NONPAGED_AREA」

一旦POST画面が表示されてメモリなどが初期化された後、快調に起動シーケンスを進めていた我がマシンのディスプレイ上でWindows起動時に使用される汎用のSVGAグラフィックドライバからこのマシンに搭載されているグラフィックカードのネイティブドライバに画面管理が切り替わった直後、突如見るもおぞましく名状しがたいほどに蒼々と輝く画面に、上に記した2組の呪いの言葉を含んだ白い文字列が無情に並んでいました。

「Blue Screen of Death(BSOD)」

日本語では見た目そのままに「青画面」と呼ばれる致命的エラーを通告するエラー表示画面の内、一旦起きるとおそらく最も対処の面倒な、デバイスドライバあるいはメインメモリに起因すると想定される、メモリのページング処理にかかるエラーが筆者のメインマシンで生じていることをそのメッセージは示していたのです。

対処

こうなった場合の対処法はそれほど多くありません。

筆者の場合、この再起動以前、その前にWindowsをシャットダウンし立ち上げた後にデバイスドライバ関係をいじった記憶はありませんでしたから、これらのメッセージが表示されたとして最も確度が高いと推定される原因はメインメモリ関係の不具合ということになります。

そして不運なことに、筆者のメインマシンは少々特殊な作りのためそういうメモリ周りのエラーに敏感で、実際にもこの夏に入って気温が急上昇したあたりから、少々そうしたエラーを警告するダイアログがBIOSによって表示されていました。

つまりその時点、この問題が日本のあちこちで発生し始めていたと考えられるものの、それに対するMicrosoft社によるアナウンスや情報提供が未だ行われていなかった8月14日の夜の時点で判断する限り、メモリ周りのトラブルと推定するのがもっとも蓋然性の高い状況にあったわけです。

それゆえ、筆者が採った対処策は「メモリ周りで何らかの問題が起きている」という前提に立ったものとならざるをえませんでした。

筆者のメインマシン環境

Hewlett Packard Z800 Workstation
筆者の私物でメインマシン。サイドパネルその他を外して動作チェック作業中の姿。

さて、ここで筆者のメインマシンがどのような構成であったのかをお伝えしておきましょう。

筆者が使用しているのは、Hewlett Packard社製のいわゆるワークステーション機である「Z800 Workstation」、その中でもIntelのXeon W5590という3.33GHz駆動で4コア8スレッド構成のプロセッサを2基搭載した、5年ほど前の機種です。

この機種にはメインメモリとしてECC Registeredタイプというエラー検出と訂正の仕組み(ECC:Error Check and Correction)と同一バス上の多数のメモリチップに安定的にアクセスするための仕組み(Registered buffer)をもった特殊なDIMMが搭載してありました。

先ほどお話しした「エラーを警告するダイアログ」というのは、まさに起動時のPOST画面で初期化時のテスト中に、あるDIMM上でメモリのデータ化けが検出され、自動でそのDIMMの切り離し処理が行われた=その分使用できるメインメモリ容量が減ったことを警告するものだったのです。

ちなみにこのZ800 Workstationに搭載のメインメモリは現状で8 GBのDIMMが3枚と4 GBのDIMMが9枚で合わせて12枚で60 GBとなっていて、DIMMの1枚や2枚が無効になったとしても大して困らない、という冗長性の権化のような構成(※そのためインストールされているWindows 7 Professionalは当然に64ビット版)でした。それをいいことにして忙しいこの時期、杜撰なのは承知でとりあえず時々このエラーが出ても無視して使用し続けていたことから、筆者としてはこの問題を真っ先に原因として疑わざるをえない状況にあったのです。

原因究明の断念

Windows 7のインストールDVDに含まれるシステム回復オプション
スタートアップ修復では原因不明で修復できず、システムの復元も適用できない状況にあった。なお、メモリ診断の結果はここでも正常と報告された。

メモリが疑わしいとなると、行うべきはたった一つ、全DIMMを対象にした総ざらえのメモリチェックとなります。

しかし、メモリテストツールを使用し延々と動作チェックを行ってみた結果は、幸か不幸かどのDIMMも特に問題が無いという予想外のものでした。

そこで外したDIMMをすべてZ800に戻し、Windows 7をセーフモードで起動してみることにしました。が、驚いたことにはWindows起動開始時にF8キーを押して表示されるすべてのオプションを試してみても、どのセーフモードであっても、Windows 7が起動しません。必ずBSODを表示してリセットがかかってしまうのです。

それならば、と試してみたスタートアップ修復やシステムの復元もだめで、何をどうしようが全くどうにもなりません。

通常、Windows 7でセーフモード起動ができない手も足も出ない状況というのは、カーネルが壊れていたりレジストリに致命的な破損があったりと割と危機的な状況であることが大半です。

そのため、この段階で筆者はこのWindows 7の復旧をあきらめ、このOS上で作成したり保存したりした個人的なファイル群の救出を優先するよう、方針転換しました。

過去の経験から、ここで余計なことをしてシステムHDDのパーティションを吹き飛ばし回収できるファイルまで回収できなくなる方がよほど手痛い打撃になるし、この状況でああだこうだ悩んで試してみたところで時間の無駄にしかならない、と思い知らされていたためです。

個人ファイルの回収

Windows 7の「更新プログラムのアンインストール」
疑わしいアップデートを削除するにはこの画面の一覧から選ぶ必要があるのだが、そのためにはまずWindowsが起動しなければならない。

そこで、Windows 7とは別パーティションにインストールしてデュアルブート構成としていたWindows 8.1 Proを起動し、これを用いて各種ファイルの回収を試みることにしました。

幸いなことに、このWindows 8.1 Proは何事もなかったかのようにするすると起動してくれたのですが、ここで一つの推論が思い浮かびました。

メモリテストの結果が正常で、しかもWindows 7以上にハードウェア要件が厳しく機能的にもより高度なハードウェア機能を要求するこのOSが正常動作するということは、今回のこれはZ800のハードウェアの瑕疵が原因で起きたトラブルではなく、Windows 7自体の何らかのソフトウェア的な破損によるトラブルである可能性がきわめて高い、と結論せざるをえません。

さらにそれまで正常に動作していて特にエラーも起きていなかったことを踏まえると、再起動直前に行われたWindows Updateが怪しい、ということになります。

にもかかわらず、そのWindows Updateのアンインストールは起動しなくなったWindows 7の上でしか行えないのです。

こうなってくると、いよいよ問題のWindows 7は一旦削除し、インストール先パーティションを初期化して新規にインストールし直した方が賢明です。

しかし、そうなると問題のパーティションに保存されている各種の個人的に作成した、あるいは保存したファイル群をパーティションフォーマット前に何が何でも回収せねばなりません。

一般的には、ユーザーフォルダに含まれる「デスクトップ」「ドキュメント」「ピクチャ」といった各個人フォルダやアドレス帳、あるいは「お気に入り」などが回収対象となるのですが、筆者の場合、インストール作業を行わずフォルダに解凍した実行ファイルを実行するだけのタイプのフリーソフトなどをProgram Filesとは別に収めたフォルダや、未だに愛用している「Quick Launch」フォルダ、あるいはそれと同様にユーザーフォルダ直下の不可視属性フォルダであるAppDataに含まれるインストール済みアプリの各種設定ファイルなども回収して、別のHDDに一旦保存しました。

ささいなことですが、この手の設定ファイルや実行ファイル、あるいはショートカットなどをを残しておくと、アプリの再インストール時に保存先フォルダの指定などの情報をいちいち入力し直さなくても済む場合が増えたり、どのアプリが再インストールされていないかが一目で確認できたりするのです。

このあたり、普通はWindows バックアップのようなバックアップツールで行うことなのですが、今回のようなトラブルの場合、バックアップデータから安易に復元したら個人的な仕事データまで旧版に戻されてしまう恐れがあるため、こうしたWindowsの再インストールの場合、筆者は使えるバックアップデータの有無にかかわらず必ず別途現状最終状態の個人フォルダの中身を一式回収するようにしています。

別OS環境での起動、あるいは別PCへのシステムHDDの接続による作業が必要で相応の手間がかかりますが、こうすることで少なくともエラー直前に保存された個人的なファイルを喪失して仕事にならない、という状況に陥ることだけはなくなります。

新規インストール

Windows 7のインストールCD起動直後
できれば何度も拝みたくない画面の一つである。


ここまで来ると後は簡単です。

Windows 7のインストールディスクを光学ドライブに入れてこのディスクから起動し、壊れたWindowsの格納されていたパーティションを一旦フォーマットしてからそのパーティションにインストールを行い、これまでインストールしていた各アプリケーションソフトを順次インストールしていくだけで、その作業そのものに取り立てて書くようなことはありません。

ちなみに、筆者の場合は手元にあるインストールディスク自体が初期出荷のWindows 7のもので、一通り「枯れた」=問題の無いアップデートやサービスパックを適用したDVDを作成してあったためそれを利用し、今回のようなトラブル発生による再インストール時には落ち着くまでWindows Updateを極力利用しないで済むようにしています。

一通り日常的に使用するアプリの再インストールが終わったところで先ほどバックアップしておいた個人データの書き戻しを行い、とりあえずトラブル発生前と同様に仕事ができる体制と、直前まで扱っていた個人データファイルの復旧が一応完了しました。

終わりに

以上、Windows Updateによって「STOP: 0x00000050」エラーを引き起こされた筆者のマシンの復旧状況をご説明しました。

こちらの記事によればあちこちの同人作家さんたちが再インストールなどで直前まで作業を行っていたファイルを喪ったとのことですが、ここまでで記したとおり、Windowsの場合あらかじめ別のWindowsがマルチブートで起動できる環境にしてあればハードウェア的なトラブルで無い限り、メインで使っているOSが壊れたり壊されたりして起動できなくなったような場合でもディスク内容が暗号化されてさえいなければ、一旦そちらの別Windowsから起動して必要データをサルベージすることが可能ですし、Windowsがインストールされたマシンが他に手元にあれば、そちらにトラブルの起きたマシンのシステムHDDを接続してサルベージするのもまた可能です。

これまで何度も痛い目に遭ってきた筆者としては、バックアップ取得の重要性は今更言うまでもありませんが仕事で使用するようなマシンでWindowsが起動しなくなったような場合には、バックアップを書き戻してしまう前に「今際の際」にHDDに書き込まれた個人ファイルの回収をまず行っておくことを特に強くおすすめしておきたいと思います。

仕事などで使っている場合、「半日前のバックアップでも何ら役に立たない」ことはざらで、「ついさっき書いたあのテキスト」がどうしてもほしいというのはよくあることなのですから。

コメントは受け付けていません。

PageTopへ