2015年7月のWindows Updateで起動できなくなった!
既にWindows Server 2003はサポートが終了になりましたが、その終了する前日に「KB3067505」というのがアップデートされました。これがなんと、Windows Server 2003+SCSI HDD環境だと、クラッシュしてしまうのだそうです。そんなん、知らなんだわ!
http://blog.livedoor.jp/nichepcgamer/archives/1034243447.html
クラッシュしてから、いろいろ調べてこれが判明しました。「KB3067505」を単独でインストールすると問題ないとの噂ですが、そんなの後の祭りです。ハードウェアのサポートが来年まであるのと、OS更新でソフトウェアのバージョンアップが勿体ないから当分は2003で使用する方針でした。これが裏目に出たか!?
で、サーバなんで、壊れたら大変。ミラーサーバも同じ環境なので、同じように潰れてくれて、滅茶苦茶大変。バックアップはあるけど、確実に数日は停止する。無理。
なので、必死こいて修復に取り掛かりました。結論からして、修復できましたので、記載しておきます。分かってしまえば大したこと無いんですが、Windows Server 2003
って、やっぱり古いOSなのねと感じ得ません。
手がかりは、ブルースクリーン
STOP: c0000139 {Entry point Not Found}
The procedure entry point I_RpcBindingIsServerLocal Could not be located in the dynamic link library RPCRT4.dll.
これを手がかりに、RPCRT4.dllの更新日付を見ると、最新のもの(2015/06/27)よりも古いものが入っていました。つまり、Windows UpdateでRPCRT4.dllのファイル更新に失敗したってことですね。
用意するもの
(1)DVDドライブ(USBでよい)
もちろん、メディアがCDの場合はCDドライブでも良いと思います。
(2)フロッピーディスクドライブ(USBでよい)
もう持ってる人少ないですね。持っててもいざというときに壊れてるって感じ。
(3)空のフロッピーディスク
(4)Windows Server 2003のインストールメディア(x64とx86があるから注意)
(5)空のCDもしくはDVDメディア
(6)Write at OnceのCDが焼けるパソコン(Windows 8.1とかの追記型のCDは使えませんでした)
(7)RAIDコントローラのドライバ(メーカのダウンロードサイトにて入手)
(8)最新のRPCRT4.dllファイル。
今のところ、RPCRT4.dll自体のダウンロードがありません。なので、同じWindows Serer 2003で
正常にアップデートできたものからコピーする必要があります。x64とx86があるので注意。
要するに、「回復コンソール」を使います。で、回復コンソールを使ってRPCRT4.dllを最新にします。
回復コンソールの使い方は、ネットで検索したらわんさか出てくるのでここでは割愛。
空のCDもしくはDVDには、最新のRPCRT4.dllを焼いてください。
必ずWrite at Onceにしてください。このファイルのサイズは1.5MBほど
ありまして、フロッピーが使えません。かといってUSBメモリなんか使えませんから、
CDにします。
空のフロッピーディスクには、RAIDコントローラのドライバを入れておきます。
手順はこんな感じ。
(1)サーバ本体に、DVDドライブとフロッピーディスクドライブを接続します。DVDにはWindows Serverメディアをセットし、フロッピーは挿入しません。
(2)DVDドライブで起動します。起動したらすぐに「F6」キーを押します。
(3)「S」キーを押して、RAIDコントローラドライバをフロッピーディスクから読み取ります。
(4)「R」キーを押して、回復コンソールに移ります。
(5)「1」を選択、その後、Administratorのパスワードを入力します。
(6) DVDを入れ替え、c:\windows\system32\rpcrt4.dllを最新に入れ替えます。
(7) exitと入力します。
(8) 再起動が始まりますので、DVDとフロッピーディスクを抜きます。
(9) 起動後に「KB3067505」が更新に上がりますので、念のため、単独でインストール。
以上で完了です。お試しあれ!