単に「レジストリのデフラグ」と言われますが、 実は全く違う2つの操作が含まれています。 が、一般には片方にしか言及されていないことが多いです。
$Keywords: Windows defragment compact registry hive file $
$Id: regdefrag.html,v 1.4 2009-09-18 14:06:01+09 kabe Exp $
レジストリは複数のレジストリ ハイブ ファイルに分かれて格納されており、
ランダムアクセスで更新されるファイルなので、他に比べ フラグメントによる影響は小さいですが、 アップデート直後などは断片が100を超えるのも珍しくないので 機会があればデフラグしましょう。
が、ハイブ ファイルはWindowsが起動している間は
システムが排他ロックしているので、
普通のデフラグツールではデフラグでき
ないことがあります。できなかったら、以下のどれかで対処。
レジストリは階層化してデータを格納できることからもわかるように、 内部は簡単なファイルシステムのような形をとっています。
レジストリ値の追加・削除を繰り返していると、だんだん隙間があいてきたり、 連続データが実際には不連続になったりと要するにフラグメント化していくので、 ハイブ内部のデフラグにも意味はあります。 (ファイルとしてのフラグメント化とは独立)
レジストリは稼動中はメモリに展開されているので、動的なデフラグは 不可能です(システムにそういう機能が無い)。 ので、専用のツールもいくつか出ているようですが、 手持ちのツールだけでも再生できます。
reg.exe save HKLM\SOFTWARE C:\SOFTWARE
などで、
肥大化しているレジストリ ハイブを別ファイルに抽出。
この操作はregedt32.exeでもGUIから可能です。
この時点で、 C:\SOFTWARE のファイルの大きさが %windir%\system32\config\SOFTWARE より 小さくなっているのであれば、ハイブのデフラグは効果ありです。 人によっては半分以下になる場合もあるようです(筆者はそうでもなかったですが)。
Windows 2000 では reg.exe は Support Tools に入っているので、 CD-ROM の TOOLS\ からインストールしましょう。 Windows XP 以降は標準装備です。
(筆者未検証)(←じゃあ書くな)
えーと、結局は回復コンソールでのマニュアル操作が必要です。
CD-ROMの「システムの修復」でのレジストリ修復は、 新規インストール直後のバックアップである %windir%\Repair\ 直下のものが書き戻される (KB238359) ので、 よほどのことが無い限り行いません。
「修復ディスクの作成」にはフロッピードライブが接続されている 必要があるので、USBでもいいのでFDDを用意しましょう。 回避方法は無いようです。 目的は修復ディスク作成ではなく、おまけのレジストリバックアップ機能なのですが
(Windows NT では rdisk.exe /s
でレジストリバックアップだけが可能だった)
ハイブをバイナリダンプをしてみると、4kB を単位とした管理がされています。 ので、ハイブファイルが置かれるブート ドライブ (%SystemDrive%)を フォーマットする際は、 クラスタサイズを 4kB以上にするのがお勧めです。 (デフォルトでは大抵そうなるが、メーカー製のリストアCDではそうでないこともある)