Windows Server 2003が起動しなくなったでござるの巻

あまりにも更新がないのでたまには本業的なネタでも。いや下書きはいっぱいあるんだが。
Windowsはたまにレジストリがぶっこわれて起動しなくなることがある。ハードウェア的にはまったく問題ないが、レジストリ破損でシステムそのものが完全に起動不能になるという楽しい仕様で、セーフモードすら上がらないというそりゃねーよセニョール状態。これを解決するにはWindowsのインストール用CDからブートして修復セットアップを実行、そしてXP以降なら自動保存されている過去のレジストリファイルのセットをまるごと破損したレジストリに上書きコピーすればたいてい回復してくれる。このへんの情報は以前は錯綜していたが、
http://support.microsoft.com/kb/307545/ja
ここに詳しいのでふつうは解決できる。ただし、これが効くのはHDDがS/ATAとかレガシなSCSIとか、とりあえずHDDが認識できる一般的な構成のときだ。RAIDとかだとHDDが認識できないし、モノがWindows Serverだとさらに問題だ。
客先で運用しているRAID1構成のWindows Server 2003が起動しなくなった。代替機を出して引き取ったところ、やはり上記URL内にあるエラーメッセージ表示で、間違いなくレジストリ破損によるものだった。
Windows Server 2003にはXPのような定期レジストリバックアップの機能がなく、またレジストリファイルは保護されており、コピーも含め通常はアクセスできない。システムツールにある標準のバックアップでレジストリのバックアップは可能なのだが、Windowsが起動しないのに書き戻しなんかできるわけない、という悲しい現実がある。高度なバックアップシステムであるところのVSSも結局はWindowsが起動しないと意味なく、一度Serverを丸々インストールしなおしてからやれとか、おいおい壊れたファイル分かってるのにそれかよふざけんな的手法だ。結局「ファイルは書き出せるが書き戻す手段がない」というアホな現実に対処しなくてはならなくなった。
とりあえずどうにかして起動するようにしなくてはならない。Windows XPのインストールメディアで起動してみたが、RAID1のディスクは認識できなかったのでネットからドライバを落として読み込ませ、とりあえず認識OK。調べたところWindowsディレクトリ内にrepairディレクトリがあり、中に初期セットアップ時のレジストリが保存されているのが分かったので、これを破損レジストリに上書き。再起動したところ、めでたくHDDから起動した。しかし初期状態のため、後からインストールしたプログラムやシステム変更の結果はぜんぶすっ飛んでいる。出荷時にレジストリをバックアップしておけばよかったが、ここは自分のミスで、そこまで気がまわっていなかった。検証用の同一環境サーバがあるのでここから書き戻せばいい話だが、ここでWindows標準バックアップで書き戻す方法ではちょっと芸がないというか、客先でこれまでやったような操作をしてもらうのは無理がある。
そこでRAIDドライバを組み込んだWindowsPEブートCDを作成した。ここから起動してしまえば、現在使用中のレジストリファイルへのアクセスも容易なので、簡単なレジストリ書き出し/書き戻しバッチファイルをHDD内に置いて実験。目論見どおりの動作が確認できたので、とりあえず単純なレジストリ破損には単純な手順で対応できるようになったとさ。
……こんなの標準でサポートしとけよ。セーフモードが正常起動時のレジストリ情報持ってないことがありえないんだが。