● 真のレジストリバックアップ
大変重要な事だが、レジストリの再構成を行う前後でレジストリの内部は変化し、中に含まれる個々のキーやデータは同じだとしても、結果として得られるハイブは元のハイブとは違うものとなる。フラグメンテーションや無駄な領域が無くなり、ハイブサイズも縮小することは、喜ぶべき変化として素直に受け止められるかもしれない。
しかし、システム標準の機能でレジストリ保存(再構成)を行っているからとは言え、100%常にエラー無く完了するとは限らない。例えば「幽霊キー(NT 系にも存在するかはまだ分からないが、例ということで)」のような特殊な内部状態に出くわしたことで、あるいは、偶発的な OS 内部のエラーによってレジストリ保存過程に異常が生じたら、生成したレジストリは正常ではなく、危険なものとなる。再構成後にエラーメッセージが出なくても、である。
RegCon を使っていて、一部のレジストリキーを失ったり、幽霊キーを発見したために、再構成が停止する状況に遭遇した方も、まれに居られるだろう。レジストリ保存は API で行うため、どんな原因かを突き止めるのは容易ではな上、Win9x の運用環境に依存するところも大きいのでは、開発者の手元では再現することもできず、バックアップを取った上で再構成を強行してみては、と勧めるしかない。
ここでもう1つ、当たり前だが重要なことを再認識して頂こう。「バックアップ」とは問題発生時に「復旧」できる準備をしておくことである。「復旧」とは「旧い(元の)状態に復元する(戻す)」ことである。
Win9x 系ではレジストリの「バックアップ」は容易であった。システム稼働中でも、エクスプローラや DOS 窓の COPY コマンドでハイブファイルのコピーができたからだ。DOS の上で動作する OS なので、Win9x でなく DOS を起動してもレジストリをバックアップできた。DOS でレジストリを扱えることで、レジストリの復旧も簡単なにレジストリハイブの上書きだけで済んだ。
WinNT 系では、過去の節の繰り返しになるが、終始レジストリはロックされ、ハイブのコピーは禁止されている。レジストリの保存を行っても、上述のように万が一ハイブ書き出しに失敗していればバックアップとして当てにならない。
危惧しているのは、修復ディスク作成過程で生成するハイブや、レジストリ保存機能で作成したハイブを、再構成済みのレジストリとして扱うのはよいが、もしも、障害を含んだ再構成済みのレジストリを置き換えてしまい、OS が起動できなくなったらどうするのか、ということだ。復旧するために用いる「再構成前と全く同じレジストリ」はどこにあるのだろうか。
WinNT 系で本当の「レジストリ・バックアップ」をするなら、運用中のレジストリハイブを「複写」できる環境を用意しなければならない。
NT 向けのバックアップソフトでレジストリもバックアップできるようだが、手順が複雑なことから、万人にあまりお勧めできるものではない。
だが Win2000、WinXP には実に好都合な環境(ツール?)が標準で添付され、システムに追加して組み込むことができる。「回復コンソール」を導入するとレジストリをロックしていない環境でシステムを起動できるのだ。言うまでもないが、レジストリの「バックアップ」さえあれば、回復コンソールでレジストリを「復旧」もできる。
くどくどと「真のバックアップ」の必要性を書いてきた。
それは、WinNT 系は障害時の対処が Win9x よりも難しいので、システムの根幹に関わる操作を Win9x と同じ感覚で行いたくないし、行ってほしくないからだ。WinNT において真のバックアップ無しに安易にレジストリ再構成を行うことは、構内で電動カートやリフトの運転に慣れた人が、経験の少ない大型車を運転して高速道路を走るようなものだ。本人としては同じ感覚で操作しているつもりでも注意が至らないであろうことは自明であるし、事故が起きないことを前提にしているため、万が一にも事故が起これば悲惨な結果を招くだろう。