原文: http://www.mydefrag.com/Scripts-VolumeActions.html
更新日: 2010/12/12 (ここで取り扱っている内容の原文をコピーした日付です)
更新日: 2010/12/12 (ここで取り扱っている内容の原文をコピーした日付です)
VolumeActions
VolumeActionキーワードは、VolumeSelect構造体の一部で、選択されたボリュームに対する処理を決めます。
ここから選択できるアクションがいくつかありますが、一番よく使う物はFileSelect構造体です。
ここから選択できるアクションがいくつかありますが、一番よく使う物はFileSelect構造体です。
Example
VolumeSelect .... VolumeActions .... VolumeEnd
Actions
DeleteJournal
- USN(Update Sequence Number) change journalを削除します
このジャーナルはルートにある"$Extend\$UsnJrnl:$J:$DATA"とばれる巨大なファイルに格納されて居ます。これはほとんどのアプリケーションでは見ることは出来ません。Windows 7上では、MyDefragはこのジャーナルを動かしたりデフラグ出来ますが、Win7未満のバージョンでは出来ません。
USN change journalはボリューム上のすべてのファイルの変更点についてのデータベースです。
Windowsはファイルやディレクトリ、その他オブジェクトを追加、削除、変更したときにこのジャーナルにレコードを追加します。プログラムはこのジャーナルに照会することによって、高速に一連のファイルに加えられたすべての変更を決定したり、より効率にタイムスタンプのチェックを行ったり、ファイルの更新の通知を受け取ることが出来ます。
USN change journalはボリューム上のすべてのファイルの変更点についてのデータベースです。
Windowsはファイルやディレクトリ、その他オブジェクトを追加、削除、変更したときにこのジャーナルにレコードを追加します。プログラムはこのジャーナルに照会することによって、高速に一連のファイルに加えられたすべての変更を決定したり、より効率にタイムスタンプのチェックを行ったり、ファイルの更新の通知を受け取ることが出来ます。
- このジャーナルはデフォルトでは無効化されています、そしてインデックスサービス、ファイル複製サービス(FRS)、リモートインストールサービス(RIS)、リモート記憶域( Remote Storage)、といったサービスによって使用され、またそのときに有効化されます。
このジャーナルを消した後、Windowsは自動的に新しいジャーナルを生成し、そこからのボリュームへの変更を記録します。ジャーナルを削除することは、通常 安全ですが、祟りがあるかも知れません。
ジャーナルを使用しているアプリケーションでは、アプリケーションが最後に起動してから、ジャーナルが削除されるまでの間のファイルの変更を知ることが出来ないでしょう。
良くできたアプリケーションはジャーナルが削除されたことを検知し、別の方法で変更されたファイルを検索するでしょう。
ジャーナルを使用しているアプリケーションでは、アプリケーションが最後に起動してから、ジャーナルが削除されるまでの間のファイルの変更を知ることが出来ないでしょう。
良くできたアプリケーションはジャーナルが削除されたことを検知し、別の方法で変更されたファイルを検索するでしょう。
- ノート: ファイル複製サービス(FRS)を使用している場合はレジストリ値の"Enable Journal Wrap Automatic Restore"について調べると良いでしょう。
- 大量のファイルがあるボリュームのジャーナルを削除するには時間がかかるかも知れません。
- ジャーナルはNTFSの機能の一種です。FATやその他ファイルシステムには存在しません。(訳補足:少なくてもWindowsでは)
- ジャーナルはスパースファイルです。Windowsが通知するファイルサイズには使用していないブロックも計算され、実際のディスク上のサイズはMyDefragの"clusters"項でリストされます。
- ジャーナルはfsutilユーティリティによって削除できます(Windows 2003/XP/Vista)。しかしWindows 2000では出来ません。fsutilは管理者権限で実行し、数分で終わります。(例:"fsutil usn deletejournal /n c:")
ファイルが大量にあるボリュームにおいては、ジャーナルの削除に時間がかかります。
Syntax
DeleteJournal()
Example
VolumeSelect ... VolumeActions ... # Delete the USN change journal. DeleteJournal() ... VolumeEnd
ReclaimNtfsReservedAreas
ファイルをNTFS予約領域から普通の領域に移動させます。
Windowsはボリュームの何割かを予約領域として確保します。
予約領域はMFT(Master File Table)などの特殊なNTFSファイルを断片化することなく増殖させるためにあります。
予約領域はMFT(Master File Table)などの特殊なNTFSファイルを断片化することなく増殖させるためにあります。
デフォルトではボリュームの12.5%が予約されます。Windowsはボリュームに秋がなければ、この領域に通常のファイルを置くことが来ます。
このファイルは、十分な通常の領域があいた後でも、ここに放置されます。
このReclaimNtfsReservedAreas()関数は、そういったファイルを探し、通常の領域に移動させ、MFTたちの住みよい環境を作り出します。
このファイルは、十分な通常の領域があいた後でも、ここに放置されます。
このReclaimNtfsReservedAreas()関数は、そういったファイルを探し、通常の領域に移動させ、MFTたちの住みよい環境を作り出します。
- この関数は、Zoneを作りません。ファイルは処理済みとマークされず、以降のアクション時に処理することができます。
- この関数は、色を変更するといった要素にSETTINGSパラメータを受けることが出来ます。
- NTFSのシステムファイルはスキップされ、NTFS予約領域に安置されます。FileBooleanのSelectNtfsSystemFiles()関数を参照してください。
Example
# Reclaim the NTFS reserved areas on all volumes. VolumeSelect All VolumeActions ReclaimNtfsReservedAreas() VolumeEnd
See also:
- SelectNtfsSystemFiles
- PlaceNtfsSystemFiles
- DismountVolume
- VolumeSelect
- VolumeBoolean
- VolumeActions
MakeGap
次のZoneの開始位置を設定します。このコマンドは一般的にZoneの間の溝を作るために使われますが、このコマンドをディスク上のどっかにZoneを追いやるときにも使用できます。
(訳補足: たとえば、普段アクセスしないアーカイブファイルや、速度を必要としない動画ファイルをディスクの内輪部に置く場合など?)
(訳補足: たとえば、普段アクセスしないアーカイブファイルや、速度を必要としない動画ファイルをディスクの内輪部に置く場合など?)
- NUMBER引数で次のZoneの開始位置を指定します。この値はディスク上の絶対位置です。大抵、ZoneBegin+数バイトと言った使い方をしますが、それ以外の数式も利用できます。
- NUMBERにマイナスの値を指定すると、このコマンドは何も実行しません。これはディスク上の絶対位置で、マイナスの値はディスクの先頭を指すためです。
プログラムは自動的に、zoneの終わりからNUMBERまでの間を空けます。"DoNotVacate"オプションが指定されていたり、Zoneの終わりがNUMBERの位置を通り越している場合には、立ち退かせません。(negative gap)
- 次のすべてのzoneが(FileAction:SortByをなどを使用して)ソート済みのzoneであれば、DoNatVacateオプションは使用でき、不必要なデータの移動を抑えます。(If all the next zones are sorted zones (訳に自信なし: using one of the SortBy fileactions) then DoNotVacate can be used, it will save some unnecessary data movements. )
- FastFillやMoveDownFillはファイルを下げるが、上げることが出来ないように、DoNotVacateによって作られるギャップはそのギャップの?(訳わかりません:The FastFill and MoveDownFill fileactions will only move files down, never up, so files that are in a DoNotVacate gap will be left in the gap. )
- ZoneEnd変数とZoneSize変数はこの計算には使用できません。MakeGapはFileSelectの外側、一切ファイルを選択しません。そしてMakeGap後にはZoneSizeは常に0でZoneEndは常にZoneBeginと同じになります。
Syntax
MakeGap(NUMBER [, DoNotVacate])
Example# Make a gap of 1% of the free size of the volume. MakeGap(ZoneBegin + VolumeFree * 0.01)
# Same, but do not vacate. MakeGap(ZoneBegin + VolumeFree * 0.01 , DoNotVacate)
# Start next zone at 30% into the data on the volume. MakeGap(VolumeUsed * 0.3)
# Place next zone at the end of the disk, with some extra maneuvering space. MakeGap(MaxNextZoneBegin - VolumeFree * 0.01)
See also:
- AddGap
- VolumeActions
FileSelect
"FileSelect"キーワードは FileSelect-FileActions-FileEnd構造体のはじめを表します。
そして、VolumeActionsの内部で1つ以上のアイテム(ファイルやディレクトリ)をFileBooleanで選択するために使います。
さらに、それらのアイテムのzoneを作成し、そのアイテムに対してFileActionsを実行します。
そして、VolumeActionsの内部で1つ以上のアイテム(ファイルやディレクトリ)をFileBooleanで選択するために使います。
さらに、それらのアイテムのzoneを作成し、そのアイテムに対してFileActionsを実行します。
大抵、一つのVolumeActionの中に複数の FileSelect-FileActions-FileEnd構造体があるでしょう。
この場合、構造体ごとにzoneが作成され、結果として複数のzoneが作成されます。(超意訳:This will create multiple zones, each zone with it's own items.)
アイテムは最初の有効なzoneに置かれます。つまり、一度、FileBooleanによって選択されたアイテムは、自動的に以降のFileBooleanの選択候補から外されると言うことです。
ExcludeFiles設定で選択されたファイルは自動的に除外され、FileSelect構文にて処理されません。
SyntaxFile
この場合、構造体ごとにzoneが作成され、結果として複数のzoneが作成されます。(超意訳:This will create multiple zones, each zone with it's own items.)
アイテムは最初の有効なzoneに置かれます。つまり、一度、FileBooleanによって選択されたアイテムは、自動的に以降のFileBooleanの選択候補から外されると言うことです。
ExcludeFiles設定で選択されたファイルは自動的に除外され、FileSelect構文にて処理されません。
SyntaxFile
Select .... (FileBoolean) FileActions .... (FileActions) FileEnd
Example
# Select all volumes, all files on those volumes, and defragment those files. VolumeSelect All VolumeActions FileSelect All FileActions Defragment() FileEnd VolumeEnd
See also:
- VolumeActions
- FileBoolean
- FileActions
- Scripts
DismountVolume
ボリュームをアンマウント(そして再マウント)します。
This will prompt Windows to do all the normal housekeeping tasks that are done when mounting a volume, usually only done when booting the computer, such as a quick scan for errors, and on NTFS volumes to re-allocate the NTFS reserved zones.
This will prompt Windows to do all the normal housekeeping tasks that are done when mounting a volume, usually only done when booting the computer, such as a quick scan for errors, and on NTFS volumes to re-allocate the NTFS reserved zones.
警告: このコマンドは、アンマウント対象のボリュームにあるファイルを開いているプログラムをクラッシュさせるかも知れません。
このコマンドを使うと便利なタイミングは、MyDefragがそのボリュームを処理し終えた後に限ります。なので、スクリプトの末端のVolumeEndの耐え前に置くべきです。
このコマンドを使うと便利なタイミングは、MyDefragがそのボリュームを処理し終えた後に限ります。なので、スクリプトの末端のVolumeEndの耐え前に置くべきです。
実際にやっていることは、単にアンマウントするだけです。Windowsは、ボリュームにアクセスできるように自動的にすぐに再マウントするでしょう。
ロックされていない場合に限り、ボリュームをアンマウントすることが出来ます。ボリュームは大抵、ディスク全体にアクセスする特殊なユーティリティ(フォーマッターなど)でのみロックされます。
MyDefragは、アンマウントの成功・失敗にかかわらず、処理を続行します。
ロックされていない場合に限り、ボリュームをアンマウントすることが出来ます。ボリュームは大抵、ディスク全体にアクセスする特殊なユーティリティ(フォーマッターなど)でのみロックされます。
MyDefragは、アンマウントの成功・失敗にかかわらず、処理を続行します。
Syntax
DismountVolume()
Example
VolumeSelect ... VolumeActions ... # Dismount and remount the volume. DismountVolume() VolumeEnd
See also:
- PlaceNtfsSystemFiles
- VolumeActions