▼レジストリのデフラグ方法▼

[regedt32]

単に「レジストリのデフラグ」と言われますが、 実は全く違う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が起動している間は システムが排他ロックしているので、 普通のデフラグツールではデフラグでき
ないことがあります。できなかったら、以下のどれかで対処。

とりあえず PageDefrag はおすすめですが、通常のデフラグと併用しないと うまくいかないこともあるようです。


レジストリ内部のデフラグ

レジストリは階層化してデータを格納できることからもわかるように、 内部は簡単なファイルシステムのような形をとっています。

レジストリ値の追加・削除を繰り返していると、だんだん隙間があいてきたり、 連続データが実際には不連続になったりと要するにフラグメント化していくので、 ハイブ内部のデフラグにも意味はあります。 (ファイルとしてのフラグメント化とは独立)

レジストリは稼動中はメモリに展開されているので、動的なデフラグは 不可能です(システムにそういう機能が無い)。 ので、専用のツールもいくつか出ているようですが、 手持ちのツールだけでも再生できます。

・手動でハイブ抽出する方法

  1. 可能ならセーフモードなど、余計なものが動いていない環境で起動。

  2. 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 以降は標準装備です。

  3. 回復コンソールから、 作った C:\SOFTWARE などを %windir%\system32\config にコピーします。 回復コンソールはレジストリを握っていないので、この操作が可能。

  4. 再起動。起動できることを確認したら、 ファイルとしてのデフラグを適宜行います。

・ntbackup.exeを使う方法

(筆者未検証)(←じゃあ書くな)

えーと、結局は回復コンソールでのマニュアル操作が必要です。

  1. ntbackup.exe (プログラム→アクセサリ→システム ツール→バックアップ) から、「システム修復ディスクの作成」を選ぶと、 %windir%\Repair\RegBack\ 以下にレジストリのバックアップが作られます。 これは新規作成ハイブなので、ハイブ的にはデフラグされています。
  2. 回復コンソールを起動し、 %windir%\Repair\RegBack\ の該当するハイブファイルを %windir%\system32\config\ にコピーします。

CD-ROMの「システムの修復」でのレジストリ修復は、 新規インストール直後のバックアップである %windir%\Repair\ 直下のものが書き戻される (KB238359) ので、 よほどのことが無い限り行いません。

「修復ディスクの作成」にはフロッピードライブが接続されている 必要があるので、USBでもいいのでFDDを用意しましょう。 回避方法は無いようです。 目的は修復ディスク作成ではなく、おまけのレジストリバックアップ機能なのですが

(Windows NT では rdisk.exe /sでレジストリバックアップだけが可能だった)


ハイブをバイナリダンプをしてみると、4kB を単位とした管理がされています。 ので、ハイブファイルが置かれるブート ドライブ (%SystemDrive%)を フォーマットする際は、 クラスタサイズを 4kB以上にするのがお勧めです。 (デフォルトでは大抵そうなるが、メーカー製のリストアCDではそうでないこともある)


かべ@sra-tohoku.co.jp