次の方法で共有


ユーティリティ スポットライトPageDefrag

Lance Whitney

この記事で使用しているコードのダウンロード: PageDefrag (70KB)

標準の Windows® デフラグ ツールを使えば、ハード ディスク上のほとんどのファイルを最適化できますが、ほとんどのデフラグ ツールでは処理できないアイテムもあります。たとえば、開かれているファイルや、Windows ページ ファイルやレジストリ ハイブなどの排他的に使用する目的でロックされているファイルは、組み込みの Windows デフラグ ツールまたはサードパーティ製ユーティリティでは通常、処理されません。標準の Windows API では、これらの使用中のファイルのデフラグはサポートされていません。さいわい、Sysinternals のために Mark Russinovich が開発した PageDefrag ユーティリティは、他のツールで処理できないアイテムをデフラグしてくれます。

PageDefrag では、Windows ページ ファイル、レジストリ ハイブ、イベント ログ、および休止状態ファイル (ノート パソコンが休止状態になったときにメモリ内容が保存されるディスク上の領域) をデフラグできます。これらのファイルが最適化されるのは、PC の起動シーケンス中であり、ファイルの使用前です。

PageDefrag を実行するには、pagedfrg.exe ファイルをダブルクリックするだけです。実行すると、デフラグ可能な各ファイルの名前が表示されます (図 1 を参照)。ページ ファイルは pagefile.sys です。レジストリ ハイブは、ハイブ (DEFAULT、SAM、SECURITY、SOFTWARE、および SYSTEM) ごとに個別のファイルとして表示されます。イベント ログも、ハイブごとに個別のファイルとして表示されます。たとえば、AppEvent.evt はアプリケーション ログ、SecEvent.evt はセキュリティ ログ、SysEvent.evt はシステム ログです。最後に、休止状態ファイルは Hiberfil.sys です。

図 1 PageDefrag により、処理可能な各ファイルの名前が表示される

図 1** PageDefrag により、処理可能な各ファイルの名前が表示される **(画像を拡大するには、ここをクリックします)

各ファイル名の横に [Clusters] (クラスタ) 列と [Fragments] (フラグメント) 列があります。[Clusters] (クラスタ) 列には、そのファイルに割り当てられているディスク上のクラスタの数が表示されます。[Fragments] (フラグメント) 列には、ディスク上に散在するフラグメント (ファイルの非連続部分) の数が表示されます。このデータに基づいて、ファイルをデフラグするかどうかを判断できます。

2 つのオプションがあり、ファイルを次回の起動時にデフラグするか、または起動のたびにデフラグするかを選択できます。ファイルの使用頻度が高い場合や、PC がほとんど再起動されることがないサーバーなどのコンピュータである場合を除いて、次回の起動時にデフラグを実行することをお勧めします。カウントダウンを有効にすることもできます。有効にすると、PC の起動開始直後に、デフラグの実行を取り消すことができます。

次回コンピュータを再起動すると、標準の chkdsk コマンドが実行され、その後に PageDefrag が実行されます。既に連続クラスタで構成されているファイルについては、デフラグは実行されません。断片化されているファイルは、1 つずつ最適化されます。デフラグ中の各アイテムの名前が表示され、デフラグが成功したかどうかがわかります。また、デフラグの前後でそのファイルに割り当てられているクラスタの数も表示されます。

PC の空きディスク領域が少なすぎる場合、または空き領域自体が断片化されすぎている場合は、PageDefrag でファイルを最適化できないことがあります。このような場合は、より多くの領域を確保し、Windows 標準のデフラグ ツールを実行して空き領域を最適化してから、PageDefrag をもう一度実行します。

PageDefrag は、処理するファイル数が少ないので、通常はすぐに実行が完了します。ただし、ファイルの断片化の程度が高い場合は、少なくとも初回は完了までに時間がかかることがあります。PageDefrag の処理が完了すると、Windows が通常どおり読み込まれます。その後、PageDefrag プログラムをもう一度開いて、各ファイルが 1 つのフラグメントになっていることを確認できます。

PageDefrag を非対話的に実行するには、コマンド ラインまたはスクリプトで、pagedfrg.exe に -e (起動のたびにデフラグを実行する)、-o (デフラグを一度だけ実行する)、-n (デフラグを実行しない)、-t (カウントダウンを指定した秒数に設定する) などのオプションを使用します。

PageDefrag の詳細情報およびダウンロードについては、microsoft.com/technet/sysinternals/FileAndDisk/PageDefrag.mspx を参照してください。

Lance Whitney は、IT コンサルタントであり、トレーナーであり、テクニカル ライターでもあります。Windows のワークステーションおよびサーバーをカスタマイズすることに数えきれないほどの時間を費やしてきました。元々はジャーナリストでしたが、15 年前、IT 業界への転向を実現しました。

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; 許可なしに一部または全体を複製することは禁止されています.