Download - PA053879

BSEK (Backup/copy Software Evaluation Kit)の詳細情報 : Vector ソフトを探す!

-> [Go to the download page] -> [Download Now]

The Latest Snapshot - BSEK

Subject:  Windows システムをファイルコピー型バックアップする検討内容


  以下が題目についての検討内容 (目標・評価状況・要望などを含む) です。

$ 1.  要件


  次に示すソフトのいずれかが、下記「1.1 目標…」を実現可能なこと。

- ファイラ (・アーカイバ)
- ファイルコピー型バックアップ/コピーソフト
 (cf. 候補は下記「7.3 ファイルコピー型バックアップ用ソフトの候補…」)

$ 1.1 目標 (ファイルシステムサポート基準 - NTFS/FAT32/FAT)


  次に示す項目が目標。

- Windows システムを含むディレクトリ・ファイル構成をバックアップすること
- 上記が同時に、ブート可能な代替システムを作成/更新する操作でもあること
- バックアップ方法は、イメージ/アーカイブ型ではなく、ファイルコピー型
 (cf. 疑問に思う場合は下記「1.3 背景…」を参照)

- Windows7 32bit(x86)/64bit(x64)および NTFS/FAT32/FAT に対応していること
- 最大パス長 32,767 文字 (Unicode, \\?\ prefix) に対応していること (NTFS)
- FAT32/FAT が対象 (コピー先) なら、ディレクトリエントリ順に処理可能なこと
 (cf. 詳細は下記「1.4 条件」を参照)

  そして、システムを構成する各ディレクトリエントリによって示される内容と、
その付属情報を、極力忠実に保持したままコピーすること。なお、付属情報には次
の項目が含まれること。

- 作成日時と最終書き込み日時 (更新日時)
- 基本ファイル属性  (NTFS/FAT32/FAT 共通属性)
- 拡張ファイル属性  (NTFS 固有属性)
- 各種ファイルシステムリンク (エントリおよび関連情報)
- アクセスコントロールリスト (ACL)
- オルタネートデータストリーム (ADS)

  付属情報について、詳細は下記「2.〜4.付属情報…」を参照。

 (参照)
Naming Files, Paths, and Namespaces (Windows)
http://msdn.microsoft.com/en-us/library/aa365247.aspx#maxpath

$ 1.2 評価状況


  検討の過程の中では順番が前後するが、次に評価状況を示す。
  基本的には、下記の表によって示される各問題が解決されることを、各ソフトに
対する要望とする。
 (cf. 「7.ファイルコピー型バックアップ用ソフトの候補に対する要望」を参照)

動作チェックリスト/コピー処理時        FV6 WFM Far Rob Ric FC2 FFC
 (付属情報などが保持されるか否か etc.)  D/F D/F D/F D/F D/F D/F D/F Remark
---------------------------------------+---+---+---+---+---+---+---+------
表示・操作系の日本語対応                 1   1   0   1   1   1   1
Windows 用 64bit(x64) 版対応             0   1   1   1   1   1   0
最大パス長 32,767 文字対応 (NTFS)        0   0*  1   1   0   1   0  *a
ディレクトリエントリ順 (FAT32/FAT)       1   1   1   0   1   0   0
{01} 作成日時                           1/0 1/* 0/0 */1 1/1 1/1 */1 *b-d
{03} 最終書き込み日時 (更新日時)        1/1 1/1 0/* */1 */1 1/1 */1 *e-h
{00-00001} R:読み取り専用属性           X/X X/X X/X X/X X/X X/X X/X
{00-00002} H:隠しファイル属性           X/X X/X X/X X/X X/X X/X X/X
{00-00004} S:システム属性               X/X X/X X/X X/X X/X X/X X/X
{00-00010} D:ディレクトリ               X/- X/- X/- X/- X/- X/- X/-
{00-00020} A:アーカイブ属性             X/1 X/* X/1 X/X X/X X/1 X/X *i
{00-00080} N:ノーマル (他属性が非設定)  -/0 -/* -/0 -/X -/X -/0 -/X *j
{00-00100} T:一時ファイル属性           -/X -/X -/X -/X -/X -/X -/0
{00-00200} P:スパースファイル           -/0 -/0 -/0 -/* -/0 -/0 -/0 *k
{00-00400} L:リパースポイント           0/0 0/0 */* */0 0/0 X/X */0 *l-n
{00-00800} C:圧縮属性                   0/0 0/0 X/0 0/0 X/X 0/0 0/0
{00-01000} O:オフライン属性             X/0 X/X X/0 X/X X/X X/X 0/0
{00-02000} I:非インデックス対象属性     X/0 X/X X/0 X/X X/X X/X 0/0
{00-04000} E:暗号化属性                 ?/? ?/? ?/? ?/? ?/? ?/? ?/?
{00-10000} V:仮想化ファイル属性         ?/? ?/? ?/? ?/? ?/? ?/? ?/?
ハードリンク (NumberOfLinks)            -/0 -/0 -/0 -/0 -/0 -/1 -/0
ボリュームマウントポイント (VMP)        0/- 0/- 0/- 0/- 0/- 1/- 1/-
ジャンクションポイント                  0/- 0/- 1/- 0/- 0/- 1/- 1/-
シンボリックリンク                      0/0 0/0 1/* 1/0 0/0 1/1 */0 *o-p
アクセスコントロールリスト (ACL)        0/0 0/0 0/0 */* 0/0 */* 0/0 *q-r
- Discretionary Access Control List     0/0 0/0 0/0 0/0 0/0 1/1 0/0
- Group (group_sid)                     0/0 0/0 0/0 1/1 0/0 1/1 0/0
- Owner (owner_sid)                     0/0 0/0 0/0 1/1 0/0 1/1 0/0
- System Access Control List            0/0 0/0 0/0 0/0 0/0 0/0 0/0
オルタネートデータストリーム (ADS)      0/1 0/1 1/* */1 0/0 */* */1 *s-v
---------------------------------------+---+---+---+---+---+---+---+------
Notes;
- FV6: FileVisor6, WFM: WinFM2008, Far: Far Manager, Rob: Robocopy,
  Ric: RichCopy, FC2: FastCopy 2, FFC: Fire File Copy
- D/F: Directory/File
- 1/0: True / False (General) or 1/0/X: Set / Reset / Normal Copy (Attr.),
  *: Remark, -: Unavailable, ?: Untested

Remarks;
*a: パス長485 (2+1+2+1+239+1+239) 文字のディレクトリで判定 (WFM 以外)
    WFM はパス長261 (2+1+2+1+255) 文字のディレクトリで判定 (WFM で作成)
*b: WFM は読み取り専用属性のファイルがNG
*c: Rob はボリュームマウントポイントとディレクトリのシンボリックリンクがNG
*d: FFC はディレクトリのリパースポイント 3種がNG
*e: Far はディレクトリと、ファイルのシンボリックリンクがNG
*f: Rob はボリュームマウントポイントがNG
*g: Ric はボリュームマウントポイントがNG
*h: FFC はディレクトリのリパースポイント 3種がNG
*i: WFM はシンボリックリンク以外のファイルがアーカイブ属性の強制セット:NG
*j: WFM はシンボリックリンク以外のファイルがノーマル属性の強制リセット:NG
*k: Rob は小さいサイズのスパースファイル (属性) が保持されない場合あり
*l: Far はVMP とファイルの読み取り専用属性のシンボリックリンクがNG
*m: Rob はディレクトリのシンボリックリンク以外のリパースポイントがNG
*n: FFC はディレクトリ (GUI 起動時) とファイルの、シンボリックリンクがNG
*o: Far はファイルの読み取り専用属性のシンボリックリンクがNG
*p: FFC はディレクトリ (GUI 起動時) とファイルがNG
*q: Rob はDACL(Discretionary ACL) とSACL (System ACL) がNG
*r: FC2 はSACL (System ACL) がNG
*s: Far はファイルの読み取り専用属性のシンボリックリンクがNG
*t: Rob はジャンクションポイントがNG
*u: FC2 はジャンクションポイント以外のディレクトリと大スパースファイルがNG
*v: FFC はジャンクションポイント以外のディレクトリがNG

Related Script (Batch File);
cf. "xcpt.bat"  コピーテスト用スクリプト
cf. "xcp.bat"   汎用コピースクリプト

 (参考)
フリーのファイルバックアップソフト比較(GUIタイプ) - qqqq111備忘録
http://sites.google.com/site/qqqq111bibouroku/freefilebackupsoft

$ 1.3 背景 (参考)


  例えば、インストールしたソフトのアンインストール後や、ウイルスに感染して
それを駆除した後でも、システムの動作が不安定な場合がある。
  各種リスク軽減のために、Windows システムを含むドライブ/パーティションの
ディレクトリ・ファイル構成について、短期保存バックアップと、代替システムの
更新を頻繁に行いたい。
  イメージ/アーカイブ型バックアップを検討すると、次のような長所がある。

- ディレクトリエントリ付属情報の再現性 (元の情報を保持する忠実度) が高い
- 圧縮すれば保存容量が削減される
- エラー訂正情報を付加すれば、バックアップデータの再現性が向上する
- 長期保存に向いている

  しかし、短期保存バックアップ等を頻繁に行う場合には、次のような短所が無視
できない。

- バックアップ・リストア共に、時間がかかり遅い (長時間を消費する)
- 中間媒体が必要で BD/DVD 等の保存媒体やディスク領域を消費し、コストも増加
- 保存媒体などの管理が面倒 (特に差分/増分バックアップを頻繁に行う場合)

  特に、遅い要因としては、次のような項目が考えられる。

- 元の構成を再現するには、バックアップとリストアという二回の操作が必要
- 圧縮・解凍というオーバヘッドがある
- 物理的に読み書きの遅い、保存媒体を使用する場合が多い

  なお、所持している有料の著名なソフトには、ドライブ/パーティション単位で
コピーする機能もあるが、次のような欠点があるため積極的には使用したくない。

- ブートマネージャの構成情報などが、ユーザへの確認なく勝手に「修正」される
- パーティションテーブルのエントリ順序が制御不可で、勝手に変わる場合がある
- 当然、ディレクトリ/ファイル単位のコピーは不可

  これらの方法に対して、ファイルコピー型バックアップでは、次のような利点が
期待できる。

- 高速なコピーによるバックアップ (上記のような遅い要因がないため)
- 中間媒体とその管理が不要、保存媒体がむやみに増えない、コストも発生しない
- システムのバックアップが可能ならデータ (のみ) のバックアップにも対応可
- ディレクトリ・ファイルなどの選択や書き込み順をユーザが制御可能
- ディレクトリ・ファイルなどのシーケンシャルな書き込みによる、デフラグ効果
- その他、上記のような欠点がない (またはユーザ制御可)

  容量の大きいディレクトリ・ファイルなどをコピーする際は、それをコピーする
前後でデフラグを実行することにより、デフラグ効果をさらに最適化できる。
  イメージ/アーカイブ型では、このような操作はできない。
  一方、ファイルコピー型バックアップには、次のような短所がある。

- 長期保存に向いていない
- 世代管理に向いていない (世代管理すると元のシステム構成の維持が困難)

  ただ、これらについては、イメージ/アーカイブ型バックアップを併用 (間隔を
置いて時々実施) することで補完可能と考えられる。

  以上のように検討した結果、バックアップ方法は、イメージ/アーカイブ型では
なく、ファイルコピー型が望ましい。
  よって、ファイルコピー型バックアップの可能なソフトの探索が必要。
  しかし問題は、ディレクトリエントリ付属情報を忠実に保持して再現するソフト
がほとんど存在しないことである。

$ 1.4 条件


  例えば、同じディレクトリの下にある各々のディレクトリ/ファイルについて、
ディレクトリ・ファイル構成を維持したまま、いくつかのグループに分類したり、
また、任意の (ランダムな) 順番に処理して、その処理済/未処理の状態を直感的
に認識したい状況にしばしば直面する。

  メールソフトの場合、各メールにタグを付けることにより、いくつかのグループ
に分類したり、また、マークを設定することにより、既読/未読の状態を直感的に
認識できる。アドレス帳では、メールアドレスの順番を変更して、格上から格下の
順に並び替えることができる。これらと同様の状況が、ディレクトリ・ファイルに
ついても想定される。

  FAT32/FAT のファイルシステムでは、ディレクトリエントリのレコードの順番を
書き換えることによって、ディレクトリ・ファイルの並び順を変更可能である。
  デフォルトのファイルシステムが NTFS になる前の各種ファイラは、デフォルト
設定で、ディレクトリエントリをソートしないで表示する機能が一般的であった。
それに加えて、高機能なファイラには、ディレクトリエントリの順番を並び替えて
書き込む機能が実装されている。
  これらの機能を利用することにより、上記状況への対応がある程度可能となる。

  少なくとも、ディレクトリ・ファイルなどをコピーする際は、FAT32/FAT が対象
 (コピー先) なら、ディレクトリエントリ順 (「コマンド プロンプト」の "dir"
コマンドで表示される順番) に処理可能なことが期待される。一般に、ソートなし
で取得可能な各リストについては、ソートしないで処理可能なことが期待される。

  さらに、ファイラは、次のような機能を実装していることが期待される。

- ディレクトリエントリをソートしないで表示/処理する機能 (FAT32/FAT)
- ディレクトリエントリの順番を任意に並び替えて書き込む機能 (FAT32/FAT)

  同様に、アーカイバは、次のような機能を実装していることが期待される。

- アーカイバ内のエントリをソートしないで表示/処理する機能

【補足】
  その一方、ファイルシステムが NTFS の場合、ディレクトリエントリのレコード
はソート済みのものが取得されてしまうため、上記の機能は事実上利用できない。
  この困難を回避するには、例えばブート・システムドライブ/パーティションと
データドライブ/パーティションを明確に分離し、FAT32/FAT にフォーマットした
データドライブ/パーティションに対してのみ適用するという方法がある。
 (cf. 詳細は下記「6.動作環境…」を参照)

  なお、このようなストレージ構成の利点は、システムの動作が不安定になっても
ブート・システムドライブ/パーティションだけ復旧すれば良いことである。
  ユーザデータ、つまりデータドライブ/パーティションまで復旧する必要がない
ので、平均復旧時間 (MTTR: Mean Time To Repair)  が大幅に短縮される。

  Windows Vista 以降の OS では、Windows システム内でジャンクションポイント
 (ディレクトリジャンクション) が使用されるようになったので、この困難を回避
する目的で、システムを含むドライブ/パーティションを、FAT32/FAT に変換する
という方法が推奨できなくなった。

  それより前の OS では、ブート/システム/データの別に関係なく、ドライブ/
パーティションを、FAT32/FAT に変換するという方法により、この困難を回避して
上記の機能を利用し、上記状況への対応が可能であった。
  また、この方法を実施すれば、上記の「1.1 目標…」は NTFS などに係わる項目
を除けば、既に実現されていた。

  上記状況へ NTFS が対応できるように、例えばデータベースのプライマリキーに
相当するようなフィールドや、数値やフラグを自由にユーザ設定できるフィールド
を設けるべきだったと思われる。

  次善の策としては、同様の機能をファイラが実装するという方法が考えられる。
ただし、そのファイラ上でしか有効でなく、それをアンインストールすれば、管理
情報は失われる。

  いずれにしても、現状の NTFS ドライブ/パーティションでは、ディレクトリ・
ファイルなどの名前を、最初に数値を付けたものにするなど、不本意な方法で管理
せざるをえない。しかも、この方法は名前を自由に付けられる場合に限られる。

$ 2.  付属情報 − 日時・属性・ファイルシステムリンク


  ファイルシステムが NTFS の場合、ファイラやバックアップ/コピーソフトは、
下記に示すディレクトリエントリ付属情報を、保持したままコピーする動作が期待
される。
  さらに、ファイラは、下記に示すディレクトリエントリ付属情報に関して、次の
ような機能を実装していることが期待される。

- 検索: 付属情報を条件にした、ディレクトリ/ファイルなどの検索
- 表示: ディレクトリ・ファイルリストにおける、付属情報の表示
- 操作: 付属情報の設定/解除または作成/削除、および変更
- 保持: ディレクトリ/ファイルなどのコピー/移動における、付属情報の保持

  同様に、アーカイバは、下記に示すディレクトリエントリ付属情報に関して、

- 圧縮: 付属情報を含めた、ディレクトリ/ファイルなどの圧縮
- 表示: 付属情報を含めた、ディレクトリ/ファイルなどの表示
- 解凍: 付属情報を含めた、ディレクトリ/ファイルなどの解凍

などの機能を実装していることが期待される。

- ディレクトリエントリ付属情報:

{00} dwFileAttributes   ファイル属性 (属性)
{01} ftCreationTime     作成日時
{03} ftLastWriteTime    最終書き込み日時 (更新日時)
{06} dwReserved0        リパースタグ

{00-00001} FILE_ATTRIBUTE_READONLY              R:読み取り専用属性
{00-00002} FILE_ATTRIBUTE_HIDDEN                H:隠しファイル属性
{00-00004} FILE_ATTRIBUTE_SYSTEM                S:システム属性
{00-00020} FILE_ATTRIBUTE_ARCHIVE               A:アーカイブ属性
{00-00080} FILE_ATTRIBUTE_NORMAL                N:ノーマル (他属性が非設定)
{00-00100} FILE_ATTRIBUTE_TEMPORARY             T:一時ファイル属性
{00-01000} FILE_ATTRIBUTE_OFFLINE               O:オフライン属性
{00-02000} FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   I:非インデックス対象属性

{00-00010} FILE_ATTRIBUTE_DIRECTORY             D:ディレクトリ
{00-00200} FILE_ATTRIBUTE_SPARSE_FILE           P:スパースファイル
{00-00400} FILE_ATTRIBUTE_REPARSE_POINT         L:リパースポイント
{00-00800} FILE_ATTRIBUTE_COMPRESSED            C:圧縮属性
{00-04000} FILE_ATTRIBUTE_ENCRYPTED             E:暗号化属性

{00-10000} FILE_ATTRIBUTE_VIRTUAL               V:仮想化ファイル属性

※一時ファイル属性が、Windows システム内で使用されていることを確認済

  なお、上記の動作に伴って、ディレクトリエントリによって示される内容などが
付属情報 (特に、スパースファイル、リパースポイント、圧縮属性、暗号化属性)
との間に矛盾を生じないことが必要。

  コピーするエントリについて、リパースポイントが真、かつリパースタグの値が
次のいずれかの場合は、そのリンクが指す実体ではなく、リンク機能自体をコピー
する動作が期待される。

{06-03} IO_REPARSE_TAG_MOUNT_POINT      マウントポイント
{06-0C} IO_REPARSE_TAG_SYMLINK          シンボリックリンク

- 対応するリンク
--- マウントポイント
----- ボリュームマウントポイント (マウントフォルダ)
----- ジャンクションポイント (ディレクトリジャンクション)
--- シンボリックリンク

  また、ハードリンクの場合は、複数のリンクが一つの実体を指す状態を、そして
結果的に「ハードリンクの数」を、保持したままコピーする動作が期待される。

{11} FILE_STANDARD_INFO
        NumberOfLinks  (ハードリンクの数) etc.

  なお、ハードリンク、ボリュームマウントポイント、ジャンクションポイント、
およびシンボリックリンクは、互いに区別して操作 (検索、表示、操作、保持など)
できることが期待される。

  以下の各セクションは、付属情報に関する参照/参考情報。

$ 2.1 WIN32_FIND_DATA 構造体


 (参照)
FindFirstFile Function (Windows)
http://msdn.microsoft.com/en-us/library/aa364418.aspx
WIN32_FIND_DATA Structure (Windows)
http://msdn.microsoft.com/en-us/library/aa365740.aspx

- FindFirstFile() などで使用される:

{00} dwFileAttributes   ファイル属性 (属性)
{01} ftCreationTime     作成日時
{02} ftLastAccessTime   最終アクセス日時 (アクセス日時)
{03} ftLastWriteTime    最終書き込み日時 (更新日時)
{04} nFileSizeHigh      ファイルサイズの上位32ビット
{05} nFileSizeLow       ファイルサイズの下位32ビット
{06} dwReserved0        リパースタグ
{07} dwReserved1        未使用
{08} cFileName          ファイル名
{09} cAlternateFileName 8.3形式ファイル名

$ 2.2 ファイル属性


  各条件下でサポートされるファイル属性は次のようになっている。

$ 2.2.1 ファイル属性 − 取得


 (参照)
Retrieving and Changing File Attributes (Windows)
http://msdn.microsoft.com/en-us/library/aa365522.aspx
GetFileAttributes Function (Windows)
http://msdn.microsoft.com/en-us/library/aa364944.aspx
File Attributes (Windows)
http://msdn.microsoft.com/en-us/library/ee332330.aspx

- GetFileAttributes(), GetFileInformationByHandle() などで取得可:

{00-00001} FILE_ATTRIBUTE_READONLY              R:読み取り専用属性
{00-00002} FILE_ATTRIBUTE_HIDDEN                H:隠しファイル属性
{00-00004} FILE_ATTRIBUTE_SYSTEM                S:システム属性
{00-00010} FILE_ATTRIBUTE_DIRECTORY             D:ディレクトリ
{00-00020} FILE_ATTRIBUTE_ARCHIVE               A:アーカイブ属性
{00-00040} FILE_ATTRIBUTE_DEVICE?               ?:未使用?
{00-00080} FILE_ATTRIBUTE_NORMAL                N:ノーマル (他属性が非設定)
{00-00100} FILE_ATTRIBUTE_TEMPORARY             T:一時ファイル属性
{00-00200} FILE_ATTRIBUTE_SPARSE_FILE           P:スパースファイル
{00-00400} FILE_ATTRIBUTE_REPARSE_POINT         L:リパースポイント
{00-00800} FILE_ATTRIBUTE_COMPRESSED            C:圧縮属性
{00-01000} FILE_ATTRIBUTE_OFFLINE               O:オフライン属性
{00-02000} FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   I:非インデックス対象属性
{00-04000} FILE_ATTRIBUTE_ENCRYPTED             E:暗号化属性
{00-10000} FILE_ATTRIBUTE_VIRTUAL               V:仮想化ファイル属性

$ 2.2.2 ファイル属性 − 設定


 (参照)
SetFileAttributes Function (Windows)
http://msdn.microsoft.com/en-us/library/aa365535.aspx

- SetFileAttributes() などで設定可:

{00-00001} FILE_ATTRIBUTE_READONLY              R:読み取り専用属性
{00-00002} FILE_ATTRIBUTE_HIDDEN                H:隠しファイル属性
{00-00004} FILE_ATTRIBUTE_SYSTEM                S:システム属性
{00-00020} FILE_ATTRIBUTE_ARCHIVE               A:アーカイブ属性
{00-00080} FILE_ATTRIBUTE_NORMAL                N:ノーマル (他属性が非設定)
{00-00100} FILE_ATTRIBUTE_TEMPORARY             T:一時ファイル属性
{00-01000} FILE_ATTRIBUTE_OFFLINE               O:オフライン属性
{00-02000} FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   I:非インデックス対象属性

- SetFileAttributes() 以外の方法で作成/設定可:

{00-00010} FILE_ATTRIBUTE_DIRECTORY             D:ディレクトリ
{00-00040} FILE_ATTRIBUTE_DEVICE?               ?:未使用?
{00-00200} FILE_ATTRIBUTE_SPARSE_FILE           P:スパースファイル
{00-00400} FILE_ATTRIBUTE_REPARSE_POINT         L:リパースポイント
{00-00800} FILE_ATTRIBUTE_COMPRESSED            C:圧縮属性
{00-04000} FILE_ATTRIBUTE_ENCRYPTED             E:暗号化属性

- 設定方法が不明または無し (要調査):

{00-10000} FILE_ATTRIBUTE_VIRTUAL               V:仮想化ファイル属性

 (参考)
徒然なるままに
http://blogs.wankuma.com/shannon/archive/2007/12/11/112561.aspx
仮想化されたファイルのフルパス名
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+201009/10090010.txt
マイクロソフト株式会社 デベロッパー&プラットフォーム統括本部 エバンジェリスト 井上章
http://download.microsoft.com/download/E/3/7/E375A046-3B57-44AD-9940-F584ACF5C131/BS2.pdf#page=82
Microsoft Windows
http://itref.fc2web.com/windows/#uac
Windows7 Tips - goungoun技術系雑記帳
http://goungoun.dip.jp/app/fswiki/wiki.cgi/devnotebook?page=Windows7+Tips#p27
ユーザー アカウント制御 (UAC User Account Control) - Windows 7 対応アプリケーションの互換性
http://msdn.microsoft.com/ja-jp/windows/dd883236.aspx
リソースの管理 - Windows 7 対応アプリケーションの互換性
http://msdn.microsoft.com/ja-jp/windows/dd882533.aspx

- FILE_ATTRIBUTE_VIRTUAL  による仮想化元と仮想化先の対応 (環境変数展開前):

管理者権限の領域        リダイレクト後の標準権限の領域
 (ローミングなし)
%ProgramFiles%          %LOCALAPPDATA%\VirtualStore\Program Files
%ProgramData%           %LOCALAPPDATA%\VirtualStore\ProgramData
%windir%                %LOCALAPPDATA%\VirtualStore\Windows
 (ローミングあり)
%ProgramFiles%          %APPDATA%\VirtualStore\Program Files
%ProgramData%           %APPDATA%\VirtualStore\ProgramData
%windir%                %APPDATA%\VirtualStore\Windows
 (レジストリ)
HKLM\Software           HKCU\Software\Classes\VirtualStore\Machine\Software

- FILE_ATTRIBUTE_VIRTUAL  による仮想化元と仮想化先の対応 (環境変数展開例):

管理者権限の領域        リダイレクト後の標準権限の領域
 (ローミングなし)
C:\Program Files        C:\Users\USERNAME\AppData\Local\VirtualStore\Program Files
C:\ProgramData          C:\Users\USERNAME\AppData\Local\VirtualStore\ProgramData
C:\Windows              C:\Users\USERNAME\AppData\Local\VirtualStore\Windows
 (ローミングあり)
C:\Program Files        C:\Users\USERNAME\AppData\Roaming\VirtualStore\Program Files
C:\ProgramData          C:\Users\USERNAME\AppData\Roaming\VirtualStore\ProgramData
C:\Windows              C:\Users\USERNAME\AppData\Roaming\VirtualStore\Windows

ProgramFiles=C:\Program Files
ProgramData=C:\ProgramData
windir=C:\Windows
LOCALAPPDATA=C:\Users\USERNAME\AppData\Local
APPDATA=C:\Users\USERNAME\AppData\Roaming

$ 2.2.3 属性文字 (Windows7 Explorer)


  Windows7 Explorer では「フォルダーオプション」→「表示」→「詳細設定」で
「隠しファイル、隠しフォルダー、および隠しドライブを表示する」を有効にし、
「保護されたオペレーティングシステムファイルを表示しない (推奨) 」を無効に
することが推奨される。

  Windows7 Explorer では「詳細表示の設定」で最終書き込み日時 (更新日時) 、
ファイル属性 (属性) 、最終アクセス日時 (アクセス日時) 、作成日時などを表示
させることが推奨される。また、属性欄では属性文字と属性が次のように対応して
いると見られる。

{00-00001} FILE_ATTRIBUTE_READONLY              R:読み取り専用属性
{00-00002} FILE_ATTRIBUTE_HIDDEN                H:隠しファイル属性
{00-00004} FILE_ATTRIBUTE_SYSTEM                S:システム属性
{00-00010} FILE_ATTRIBUTE_DIRECTORY             D:ディレクトリ
{00-00020} FILE_ATTRIBUTE_ARCHIVE               A:アーカイブ属性
{00-00080} FILE_ATTRIBUTE_NORMAL                N:ノーマル (他属性が非設定)
{00-00100} FILE_ATTRIBUTE_TEMPORARY             T:一時ファイル属性
{00-00200} FILE_ATTRIBUTE_SPARSE_FILE           P:スパースファイル
{00-00400} FILE_ATTRIBUTE_REPARSE_POINT         L:リパースポイント
{00-00800} FILE_ATTRIBUTE_COMPRESSED            C:圧縮属性
{00-01000} FILE_ATTRIBUTE_OFFLINE               O:オフライン属性
{00-02000} FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   I:非インデックス対象属性
{00-04000} FILE_ATTRIBUTE_ENCRYPTED             E:暗号化属性
{00-10000} FILE_ATTRIBUTE_VIRTUAL               V:仮想化ファイル属性

  なお、属性文字の表示順序は、定義定数の値を昇順に (小から大の順に) 並べた
ものになっていると見られる。実際はありえないが、例えば仮にこれら全ての属性
がセットされた場合、属性欄には "RHSDANTPLCOIEV" が表示されると思われる。
  この順序にすることによって、ソースコードがスマートになり、コードサイズや
実行時間を削減する効果が期待できるので、この実装は理にかなっている。

  したがって、属性を表示する部分は、上記に準じてコーディングすることが期待
される。できれば、M:ボリュームマウントポイント、J:ジャンクションポイント、
L:シンボリックリンクは、このように別個の属性文字を対応させ、互いに区別して
表示することが望ましい。

$ 2.2.4 ファイル属性操作コマンド/ソフト (参考)


  コピー動作を検証するためにコピー元のファイル属性を設定/解除する際、次の
コマンド/ソフトを使用して、ファイル属性を操作できる。

 (参考)
Windows Vista/Windows Server 2008のエクスプローラにおけるファイルの「N」属性とは? − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/1134attribn/attribn.html
        attrib.exe (all Windows)

- Windows7 Explorer の属性欄では、N:ノーマル、I:非インデックス対象属性
- attrib.exe (Windows7 HP 上) で設定/解除/表示可能な属性:

{00-00001} FILE_ATTRIBUTE_READONLY              R:読み取り専用属性
{00-00002} FILE_ATTRIBUTE_HIDDEN                H:隠しファイル属性
{00-00004} FILE_ATTRIBUTE_SYSTEM                S:システム属性
{00-00020} FILE_ATTRIBUTE_ARCHIVE               A:アーカイブ属性
{00-02000} FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   I:非インデックス対象属性

 (参考)
VA007219 ソフトウェアの配布 dfd64, diskmap, dkclear, SDFMach
http://hp.vector.co.jp/authors/VA007219/
http://hp.vector.co.jp/authors/VA007219/sdfw.zip
        fileinfo.exe (Windows NT4 or later)

- fileinfo.exe Ver10 2008/05/13 in SDFMach: sdfw.zip (freeware, 32bit)
- fileinfo.exe (Windows7 HP 上) で表示可能な属性 (設定/解除不可):

{00-00001} FILE_ATTRIBUTE_READONLY              R:読み取り専用属性
{00-00002} FILE_ATTRIBUTE_HIDDEN                H:隠しファイル属性
{00-00004} FILE_ATTRIBUTE_SYSTEM                S:システム属性
{00-00010} FILE_ATTRIBUTE_DIRECTORY             D:ディレクトリ
{00-00020} FILE_ATTRIBUTE_ARCHIVE               A:アーカイブ属性
{00-00100} FILE_ATTRIBUTE_TEMPORARY             T:一時ファイル属性
{00-00200} FILE_ATTRIBUTE_SPARSE_FILE           P:スパースファイル
{00-00400} FILE_ATTRIBUTE_REPARSE_POINT         L:リパースポイント
{00-00800} FILE_ATTRIBUTE_COMPRESSED            C:圧縮属性
{00-01000} FILE_ATTRIBUTE_OFFLINE               O:オフライン属性
{00-02000} FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   I:非インデックス対象属性
{00-04000} FILE_ATTRIBUTE_ENCRYPTED             E:暗号化属性
{00-10000} FILE_ATTRIBUTE_VIRTUAL               V:仮想化ファイル属性

 (参考)
Far Manager Official Site : download
http://www.farmanager.com/download.php?p=64
Far Manager Official Site : open source
http://www.farmanager.com/opensource.php
svn - Revision 5067: /trunk/unicode_far
http://farmanager.com/svn/trunk/unicode_far/

- Far Manager v2.0 build 1666 x64 (2010-09-10) (freeware, 64bit)
- Far Manager  (Windows7 HP 上) でファイルに設定/解除可能な属性:

{00-00001} FILE_ATTRIBUTE_READONLY              R:読み取り専用属性
{00-00002} FILE_ATTRIBUTE_HIDDEN                H:隠しファイル属性
{00-00004} FILE_ATTRIBUTE_SYSTEM                S:システム属性
{00-00020} FILE_ATTRIBUTE_ARCHIVE               A:アーカイブ属性
{00-00080} FILE_ATTRIBUTE_NORMAL                N:ノーマル (他属性が非設定)
{00-00100} FILE_ATTRIBUTE_TEMPORARY             T:一時ファイル属性
{00-00200} FILE_ATTRIBUTE_SPARSE_FILE           P:スパースファイル
{00-00800} FILE_ATTRIBUTE_COMPRESSED            C:圧縮属性
{00-01000} FILE_ATTRIBUTE_OFFLINE               O:オフライン属性
{00-02000} FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   I:非インデックス対象属性

- Far Manager  (Windows7 HP 上) でディレクトリに設定/解除可能な属性:

{00-00001} FILE_ATTRIBUTE_READONLY              R:読み取り専用属性
{00-00002} FILE_ATTRIBUTE_HIDDEN                H:隠しファイル属性
{00-00004} FILE_ATTRIBUTE_SYSTEM                S:システム属性
{00-00020} FILE_ATTRIBUTE_ARCHIVE               A:アーカイブ属性
{00-00800} FILE_ATTRIBUTE_COMPRESSED            C:圧縮属性
{00-01000} FILE_ATTRIBUTE_OFFLINE               O:オフライン属性
{00-02000} FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   I:非インデックス対象属性

- Far Manager  (Windows7 HP 上) で表示可能な属性:

{00-00001} FILE_ATTRIBUTE_READONLY              R:読み取り専用属性
{00-00002} FILE_ATTRIBUTE_HIDDEN                H:隠しファイル属性
{00-00004} FILE_ATTRIBUTE_SYSTEM                S:システム属性
{00-00020} FILE_ATTRIBUTE_ARCHIVE               A:アーカイブ属性
{00-00100} FILE_ATTRIBUTE_TEMPORARY             T:一時ファイル属性
{00-00200} FILE_ATTRIBUTE_SPARSE_FILE           P:スパースファイル
{00-00400} FILE_ATTRIBUTE_REPARSE_POINT         L:リパースポイント
{00-00800} FILE_ATTRIBUTE_COMPRESSED            C:圧縮属性
{00-01000} FILE_ATTRIBUTE_OFFLINE               O:オフライン属性
{00-02000} FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   I:非インデックス対象属性
{00-04000} FILE_ATTRIBUTE_ENCRYPTED             E:暗号化属性
{00-10000} FILE_ATTRIBUTE_VIRTUAL               V:仮想化ファイル属性

 (参考)
フリー ユーティリティ: RoboCopy の高度な代替ツール、RichCopy
http://technet.microsoft.com/ja-jp/magazine/2009.04.utilityspotlight.aspx

- RichCopy Version: 4,0,217,0 (freeware, 32/64bit)
- RichCopy (Windows7 HP 上) のコピーでファイルに設定/解除可能な属性:

{00-00001} FILE_ATTRIBUTE_READONLY              R:読み取り専用属性
{00-00002} FILE_ATTRIBUTE_HIDDEN                H:隠しファイル属性
{00-00004} FILE_ATTRIBUTE_SYSTEM                S:システム属性
{00-00020} FILE_ATTRIBUTE_ARCHIVE               A:アーカイブ属性
{00-00080} FILE_ATTRIBUTE_NORMAL                N:ノーマル (他属性が非設定)
{00-00100} FILE_ATTRIBUTE_TEMPORARY             T:一時ファイル属性
{00-00800} FILE_ATTRIBUTE_COMPRESSED            C:圧縮属性
{00-01000} FILE_ATTRIBUTE_OFFLINE               O:オフライン属性
{00-02000} FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   I:非インデックス対象属性

- RichCopy (Windows7 HP 上) のコピーでディレクトリに設定/解除可能な属性:

{00-00001} FILE_ATTRIBUTE_READONLY              R:読み取り専用属性
{00-00002} FILE_ATTRIBUTE_HIDDEN                H:隠しファイル属性
{00-00004} FILE_ATTRIBUTE_SYSTEM                S:システム属性
{00-00020} FILE_ATTRIBUTE_ARCHIVE               A:アーカイブ属性
{00-00800} FILE_ATTRIBUTE_COMPRESSED            C:圧縮属性
{00-01000} FILE_ATTRIBUTE_OFFLINE               O:オフライン属性
{00-02000} FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   I:非インデックス対象属性

 (参考)
より強力なファイル管理のために Robocopy について理解する
http://technet.microsoft.com/ja-jp/magazine/ee851678.aspx
Robocopyでフォルダをコピー | Sunvisor Lab.
http://www.sunvisor.net/win/robocopy

- Robocopy in Windows7 Home Premium, 64-bit Version 6.1 (Build 7600)
- Robocopy (Windows7 HP 上) の指定では、N:非インデックス対象属性
- ファイルにR:読み取り専用属性と同時にはC:圧縮属性をセットできないバグあり
- Robocopy (Windows7 HP 上) のコピーでファイルに設定/解除可能な属性:

{00-00001} FILE_ATTRIBUTE_READONLY              R:読み取り専用属性
{00-00002} FILE_ATTRIBUTE_HIDDEN                H:隠しファイル属性
{00-00004} FILE_ATTRIBUTE_SYSTEM                S:システム属性
{00-00020} FILE_ATTRIBUTE_ARCHIVE               A:アーカイブ属性
{00-00080} FILE_ATTRIBUTE_NORMAL                N:ノーマル (他属性が非設定)
{00-00100} FILE_ATTRIBUTE_TEMPORARY             T:一時ファイル属性
{00-00800} FILE_ATTRIBUTE_COMPRESSED            C:圧縮属性
{00-02000} FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   I:非インデックス対象属性

- Robocopy (Windows7 HP 上) のコピーでディレクトリに設定/解除可能な属性:

{00-00001} FILE_ATTRIBUTE_READONLY              R:読み取り専用属性
{00-00002} FILE_ATTRIBUTE_HIDDEN                H:隠しファイル属性
{00-00004} FILE_ATTRIBUTE_SYSTEM                S:システム属性
{00-00020} FILE_ATTRIBUTE_ARCHIVE               A:アーカイブ属性
{00-00800} FILE_ATTRIBUTE_COMPRESSED            C:圧縮属性
{00-02000} FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   I:非インデックス対象属性

Related Script (Batch File);
cf. "xat.bat"   拡張 attrib コマンドスクリプト

$ 2.3 リパースタグ


 (参照)
Reparse Point Tags (Windows)
http://msdn.microsoft.com/en-us/library/aa365511.aspx
IsReparseTagNameSurrogate Macro (Windows)
http://msdn.microsoft.com/en-us/library/aa365197.aspx
2.1.2.1 Reparse Tags
http://msdn.microsoft.com/en-us/library/dd541667.aspx

- FindFirstFile() などで使用されるリパースタグの値:

{06-00} IO_REPARSE_TAG_RESERVED_ZERO?   未使用?
{06-01} IO_REPARSE_TAG_RESERVED_ONE?    未使用?
{06-03} IO_REPARSE_TAG_MOUNT_POINT      マウントポイント
{06-04} IO_REPARSE_TAG_HSM              旧 Hierarchical Storage Manager 用
{06-05} IO_REPARSE_TAG_DRIVER_EXTENDER  Home Server Drive Extender用
{06-06} IO_REPARSE_TAG_HSM2             旧 Hierarchical Storage Manager 用
{06-07} IO_REPARSE_TAG_SIS              Single Instance Storage 用
{06-0A} IO_REPARSE_TAG_DFS              Distributed File System 用
{06-0B} IO_REPARSE_TAG_FILTER_MANAGER   Filter Manager Test Harness 用
{06-0C} IO_REPARSE_TAG_SYMLINK          シンボリックリンク
{06-12} IO_REPARSE_TAG_DFSR             Distributed File System 用

$ 2.4 ファイル情報


  各条件下でサポートされるファイル情報は次のようになっている。

$ 2.4.1 ファイル情報 − 取得


 (参照)
GetFileInformationByHandle Function (Windows)
http://msdn.microsoft.com/en-us/library/aa364952.aspx
BY_HANDLE_FILE_INFORMATION Structure (Windows)
http://msdn.microsoft.com/en-us/library/aa363788.aspx
        nNumberOfLinks (ハードリンクの数) etc.

 (参照)
GetFileInformationByHandleEx Function (Windows)
http://msdn.microsoft.com/en-us/library/aa364953.aspx
FILE_INFO_BY_HANDLE_CLASS Enumeration (Windows)
http://msdn.microsoft.com/en-us/library/aa364228.aspx

- GetFileInformationByHandleEx()  で取得可:

{10} FILE_BASIC_INFO
        ChangeTime (付属情報の変更日時?), FileAttributes etc.
{11} FILE_STANDARD_INFO
        NumberOfLinks  (ハードリンクの数) etc.
{12} FILE_NAME_INFO
{17} FILE_STREAM_INFO
{18} FILE_COMPRESSION_INFO
{19} FILE_ATTRIBUTE_TAG_INFO
        FileAttributes, ReparseTag
{1A} FILE_ID_BOTH_DIR_INFO
        ChangeTime (付属情報の変更日時?) etc.
{1D} FILE_REMOTE_PROTOCOL_INFO

$ 2.4.2 ファイル情報 − 設定


 (参照)
SetFileInformationByHandle Function (Windows)
http://msdn.microsoft.com/en-us/library/aa365539.aspx

- SetFileInformationByHandle()  で設定可:

{10} FILE_BASIC_INFO
        ChangeTime (付属情報の変更日時?), FileAttributes etc.
{13} FILE_RENAME_INFO
{14} FILE_DISPOSITION_INFO
{15} FILE_ALLOCATION_INFO
{16} FILE_END_OF_FILE_INFO
{1C} FILE_IO_PRIORITY_HINT_INFO

$ 2.5 ファイルシステムリンク (NTFS)


  ファイルシステムリンクは次のような階層で分類できる。

- ハードリンク
- リパースポイント
--- マウントポイント
----- ボリュームマウントポイント (マウントフォルダ)
----- ジャンクションポイント (ディレクトリジャンクション)
--- シンボリックリンク
--- その他

$ 2.5.1 ハードリンク


【注意】Windows システム内で使用されていることを確認済 (Windows7 etc.)

  例えば、IME 辞書、フォント、共有DLL などに使用されている。
  よって、ディレクトリ・ファイル構成を維持するため、元の状態を保持したまま
コピーする動作が期待される。

 (参照)
Hard Links and Junctions (Windows)
http://msdn.microsoft.com/en-us/library/aa365006.aspx
CreateHardLink Function (Windows)
http://msdn.microsoft.com/en-us/library/aa363860.aspx
Backing Up and Restoring Hard Links (Windows)
http://msdn.microsoft.com/en-us/library/bb968796.aspx
BackupRead Function (Windows)
http://msdn.microsoft.com/en-us/library/aa362509.aspx
BackupWrite Function (Windows)
http://msdn.microsoft.com/en-us/library/aa362511.aspx

$ 2.5.2 リパースポイント (マウントポイント/シンボリックリンク等)


【注意】Windows システム内で使用されていることを確認済 (Windows7 etc.)

  例えば、ジャンクションポイントやシンボリックリンクとして使用されている。
  よって、ディレクトリ・ファイル構成を維持するため、元の状態を保持したまま
コピーする動作が期待される。

 (参照)
Reparse Points (Windows)
http://msdn.microsoft.com/en-us/library/aa365503.aspx
Reparse Point Operations (Windows)
http://msdn.microsoft.com/en-us/library/aa365507.aspx
FSCTL_GET_REPARSE_POINT Control Code (Windows)
http://msdn.microsoft.com/en-us/library/aa364571.aspx
REPARSE_DATA_BUFFER Structure (Windows Driver Kit)
http://msdn.microsoft.com/en-us/library/ff552012.aspx
        MountPointReparseBuffer
        SymbolicLinkReparseBuffer
2.1.2.5 Mount Point Reparse Data Buffer
http://msdn.microsoft.com/en-us/library/cc232007.aspx
2.1.2.4 Symbolic Link Reparse Data Buffer
http://msdn.microsoft.com/en-us/library/cc232006.aspx

$ 2.5.3 ボリュームマウントポイント (マウントフォルダ)


 (参照)
Mounted Folders (Windows)
http://msdn.microsoft.com/en-us/library/aa365733.aspx
Working with Mounted Folders and Reparse Points (Windows)
http://msdn.microsoft.com/en-us/library/aa384987.aspx
Creating Mounted Folders (Windows)
http://msdn.microsoft.com/en-us/library/aa365237.aspx
Creating a Mounted Folder (Windows)
http://msdn.microsoft.com/en-us/library/aa365238.aspx
GetVolumeNameForVolumeMountPoint Function (Windows)
http://msdn.microsoft.com/en-us/library/aa364994.aspx
SetVolumeMountPoint Function (Windows)
http://msdn.microsoft.com/en-us/library/aa365561.aspx
Deleting a Mounted Folder (Windows)
http://msdn.microsoft.com/en-us/library/aa365717.aspx
Determining Whether a Directory Is a Mounted Folder (Windows)
http://msdn.microsoft.com/en-us/library/aa363940.aspx
Mounted Folder Functions (Windows)
http://msdn.microsoft.com/en-us/library/aa365735.aspx

$ 2.5.4 ジャンクションポイント (ディレクトリジャンクション)


【注意】Windows システム内で使用されていることを確認済 (Windows7 etc.)

  例えば、"\Documents and Settings" などに使用されている。
  よって、ディレクトリ・ファイル構成を維持するため、元の状態を保持したまま
コピーする動作が期待される。

 (参照)
Junction Points (Windows)
http://msdn.microsoft.com/en-us/library/bb968829.aspx
Application Compatibility: Junction Points and Backup Applications
http://msdn.microsoft.com/en-us/library/bb756982.aspx

 (参考)
[Mingw-users] Support for Native Symlink : 1st step
http://lists-archives.org/mingw-users/16632-support-for-native-symlink-1st-step.html
ディレクトリジャンクション - Entering Passive Mode
http://fireball.loafer.jp/kes/article_327.html
ディレクトリジャンクションを作成する - Entering Passive Mode
http://fireball.loafer.jp/kes/article_328.html

$ 2.5.5 シンボリックリンク


【注意】Windows システム内で使用されていることを確認済 (Windows7 etc.)

  例えば、 "\Users\All Users" などに使用されている。
  よって、ディレクトリ・ファイル構成を維持するため、元の状態を保持したまま
コピーする動作が期待される。

 (参照)
Symbolic Links (Windows)
http://msdn.microsoft.com/en-us/library/aa365680.aspx
Creating Symbolic Links (Windows)
http://msdn.microsoft.com/en-us/library/aa363878.aspx
CreateSymbolicLink Function (Windows)
http://msdn.microsoft.com/en-us/library/aa363866.aspx
Symbolic Link Effects on File Systems Functions (Windows)
http://msdn.microsoft.com/en-us/library/aa365682.aspx
CopyFileEx Function (Windows)
http://msdn.microsoft.com/en-us/library/aa363852.aspx

$ 2.5.6 ファイルシステムリンク操作コマンド (参考)


  コピー動作を検証するためにコピー元を作成/設定する際、次のコマンドを使用
して、各種ファイルシステムリンクを作成できる。

 (参考)
ファイルへの別名を割り当てるハードリンクを作成する − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/982hardlink/hardlink.html
        fsutil.exe (Windows XP or later)
        mklink.exe (Windows Vista or later)
ジャンクション機能を使ってディスク・ボリュームをマウントする − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/985junction/junction.html
        mountvol.exe (Windows XP or later)
        mklink.exe (Windows Vista or later)
ジャンクション機能を使ってフォルダをマウントする − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/991fjunction/fjunction.html
        linkd.exe (Windows 2000 or later, cf. Resource Kit Tools)
        mklink.exe (Windows Vista or later)
Windows Vista/Windows Server 2008でシンボリック・リンクを作成する − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/988symlink/symlink.html
        mklink.exe (Windows Vista or later)

$ 2.6 スパースファイル (スパース属性)


【注意】データベースソフトなどで使用される可能性あり

  データベースソフトなどを使用する場合は、スパースファイルがサポートされて
いると、ディスク容量を大幅に節約できる可能性がある。
  よって、元の状態を保持したままコピーする動作が期待される。

 (参照)
Sparse Files (Windows)
http://msdn.microsoft.com/en-us/library/aa365564.aspx
Sparse File Operations (Windows)
http://msdn.microsoft.com/en-us/library/aa365566.aspx
FSCTL_SET_SPARSE Control Code (Windows)
http://msdn.microsoft.com/en-us/library/aa364596.aspx

$ 2.6.1 スパースファイル操作コマンド (参考)


  コピー動作を検証するためにコピー元を作成/設定する際、次のコマンドを使用
して、ファイルにスパース属性を設定できる。

 (参考)
@IT:Windows XPの正体 強化されたコマンドライン・ツール(中編)
 2.ディスク/ファイル関連ツール(2)
http://www.atmarkit.co.jp/fwin2k/xp_feature/013commandtool/commandtool3.html
        fsutil.exe (Windows XP or later)

$ 2.7 ファイル圧縮 (圧縮属性)


【注意】Windows システム内で使用されていることを確認済 (Windows7 etc.)

  例えば、エラー報告ファイル、プリフェッチファイルなどに使用されている。
  よって、ディレクトリ・ファイル構成を維持するため、元の状態を保持したまま
コピーする動作が期待される。

 (参照)
File Compression and Decompression (Windows)
http://msdn.microsoft.com/en-us/library/aa364219.aspx
Compression Attribute (Windows)
http://msdn.microsoft.com/en-us/library/aa363848.aspx
Compression State (Windows)
http://msdn.microsoft.com/en-us/library/aa363849.aspx
FSCTL_GET_COMPRESSION Control Code (Windows)
http://msdn.microsoft.com/en-us/library/aa364567.aspx
FSCTL_SET_COMPRESSION Control Code (Windows)
http://msdn.microsoft.com/en-us/library/aa364592.aspx

$ 2.7.1 ファイル圧縮操作コマンド (参考)


  コピー動作を検証するためにコピー元を作成/設定する際、次のコマンドを使用
して、ディレクトリ/ファイルに圧縮属性を設定できる。

 (参考)
[HOW TO] Windows 2000 でファイルとフォルダの圧縮および圧縮解除を行う方法
http://support.microsoft.com/kb/314958/ja
        compact.exe (Windows 2000 or later)

$ 2.8 ファイル暗号化 (暗号化属性)


  暗号化ファイルシステム (EFS)  は、Windows7 Home Premium 上などで完全には
サポートされていないようなので、対応する優先順位は低くてもよい。

 (参照)
File Encryption (Windows)
http://msdn.microsoft.com/en-us/library/aa364223.aspx
Handling Encrypted Files and Directories (Windows)
http://msdn.microsoft.com/en-us/library/aa365005.aspx
EncryptFile Function (Windows)
http://msdn.microsoft.com/en-us/library/aa364021.aspx
Backup and Restore of Encrypted Files (Windows)
http://msdn.microsoft.com/en-us/library/aa363783.aspx

$ 2.8.1 ファイル暗号化操作コマンド (参考)


  コピー動作を検証するためにコピー元を作成/設定する際、次のコマンドを使用
して、ディレクトリ/ファイルに暗号化属性を設定できる。

 (参考)
Windows 2000キーワード:EFS
http://www.atmarkit.co.jp/fwin2k/keyword/efs/efs.html
        cipher.exe (Windows 2000 or later)

$ 2.9 日時・属性・ファイルシステムリンク操作ソフト (参考)


  コピー動作を検証するためにコピー元やコピー先を条件検索する際、次のような
ソフトを使用して、ディレクトリ/ファイルなどを検索できるかもしれない。

 (参考)
FSL downloads
http://fsl.sytes.net/download.html

- Super Finder XT 1.6.2.1 (freeware, 32bit)
- 次の属性を条件にした、ディレクトリ/ファイルなどの検索が可能:

{00-00001} FILE_ATTRIBUTE_READONLY              R:読み取り専用属性
{00-00002} FILE_ATTRIBUTE_HIDDEN                H:隠しファイル属性
{00-00004} FILE_ATTRIBUTE_SYSTEM                S:システム属性
{00-00020} FILE_ATTRIBUTE_ARCHIVE               A:アーカイブ属性
{00-00100} FILE_ATTRIBUTE_TEMPORARY             T:一時ファイル属性
{00-01000} FILE_ATTRIBUTE_OFFLINE               O:オフライン属性

{00-00010} FILE_ATTRIBUTE_DIRECTORY             D:ディレクトリ
{00-00200} FILE_ATTRIBUTE_SPARSE_FILE           P:スパースファイル
{00-00400} FILE_ATTRIBUTE_REPARSE_POINT         L:リパースポイント
{00-00800} FILE_ATTRIBUTE_COMPRESSED            C:圧縮属性
{00-04000} FILE_ATTRIBUTE_ENCRYPTED             E:暗号化属性

- 現状では、次の属性を条件にした、ディレクトリ/ファイルなどの検索に未対応:

{00-00080} FILE_ATTRIBUTE_NORMAL                N:ノーマル (他属性が非設定)
{00-02000} FILE_ATTRIBUTE_NOT_CONTENT_INDEXED   I:非インデックス対象属性
{00-10000} FILE_ATTRIBUTE_VIRTUAL               V:仮想化ファイル属性

 (参考)
Duplicate & Same Files Searcher
http://malich.ru/duplicate_searcher.aspx

- Duplicate & Same Files Searcher 1.6.5.1 (freeware, 32bit)
- 内容が同じファイルの検索によりファイルシステムリンクとその候補を検索可能
- 現状では、ハードリンク以外のファイルシステムリンクに未対応
- 他にファイルシステムリンクを直接検索できるソフトがあれば、それの方が良い

$ 3.  付属情報 − アクセスコントロールリスト (ACL)


【注意】Windows システム内で使用されていることを確認済 (Windows7 etc.)

  よって、ディレクトリ・ファイル構成を維持するため、元の状態を保持したまま
コピーする動作が期待される。
  また、ファイラ・アーカイバについては、上記「2.付属情報…」に示したような
機能を実装していることが期待される。

  Microsoft の RichCopy では、次に示すセキュリティ情報の各項目ごとにコピー
するか否かを設定できる (ただし、期待した動作をするかどうかは別) 。例えば、
グループ・オーナー情報を含めて、または除外してコピーしたいような状況が想定
される。したがって、これらの各項目ごとにコピーするか否かを選択できることが
期待される。
 (cf. RichCopy  は「7.3 ファイルコピー型バックアップ用ソフト…」を参照)

- Discretionary Access Control List (dacl_flags/string_ace?)
- Group (group_sid?)
- Owner (owner_sid?)
- System Access Control List (sacl_flags/string_ace?)

 (参照)
Access Control Lists (Windows)
http://msdn.microsoft.com/en-us/library/aa374872.aspx
How DACLs Control Access to an Object (Windows)
http://msdn.microsoft.com/en-us/library/aa446683.aspx
Creating a DACL (Windows)
http://msdn.microsoft.com/en-us/library/ms717798.aspx
Security Descriptor Definition Language (Windows)
http://msdn.microsoft.com/en-us/library/aa379567.aspx
Security Descriptor String Format (Windows)
http://msdn.microsoft.com/en-us/library/aa379570.aspx
Audit Generation (Windows)
http://msdn.microsoft.com/en-us/library/aa375723.aspx
SACL Access Right (Windows)
http://msdn.microsoft.com/en-us/library/aa379321.aspx
Getting Information from an ACL (Windows)
http://msdn.microsoft.com/en-us/library/aa446659.aspx
Creating or Modifying an ACL (Windows)
http://msdn.microsoft.com/en-us/library/aa446596.aspx
SHFileOperation Function (Windows)
http://msdn.microsoft.com/en-us/library/bb762164.aspx
SHFILEOPSTRUCT Structure (Windows)
http://msdn.microsoft.com/en-us/library/bb759795.aspx
IFileOperation Interface (Windows)
http://msdn.microsoft.com/en-us/library/bb775771.aspx
IFileOperation::SetOperationFlags Method (Windows)
http://msdn.microsoft.com/en-us/library/bb775799.aspx

$ 3.1 アクセスコントロールリスト操作コマンド (参考)


  コピー動作を検証するためにコピー元を作成/設定する際、次のコマンドを使用
して、アクセスコントロールリストを設定できる。

 (参考)
caclsコマンドの出力の見方 − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/704cacls/cacls.html
caclsコマンドでACLを編集する − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/718edtcacls/edtcacls.html
セキュリティ設定を記述するSDDL文字列とは? − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/725sddl/sddl.html
caclsコマンドでACLを編集する(SDDL編) − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/726caclssddl/caclssddl.html
        cacls.exe (Windows 2000 or later)
        xcacls.exe (Windows 2000 or later, cf. Support Tools 2003)
icaclsコマンドでファイルのアクセス制御リストACLを保存/復元する − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/1316icacls/icacls.html
        icacls.exe (Windows Server 2003 SP2 or later)
subinaclコマンドでオブジェクトのセキュリティ情報を表示させる(subinaclの基本) − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/1328subinacl/subinacl.html
Download details: SubInACL (SubInACL.exe)
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e8ba3e56-d8fe-4a91-93cf-ed6985e3927b&displaylang=en
        subinacl.exe (Windows 2000 or later, cf. Microsoft Download Center)

$ 4.  付属情報 − オルタネートデータストリーム (ADS)


【注意】Windows システム内で使用されていることを確認済 (Windows7 etc.)

  例えば、 ZoneId (IE でダウンロードしたファイルのゾーン情報) の保存などに
使用されている。
  よって、ディレクトリ・ファイル構成を維持するため、元の状態を保持したまま
コピーする動作が期待される。
  また、ファイラ・アーカイバについては、上記「2.付属情報…」に示したような
機能を実装していることが期待される。

  ファイラがオルタネートデータストリームの操作機能を実装する方式としては、
例えば次のようなタイプが考えられる (参考) 。

- アーカイバ型 (ファイラが外部ツールを呼び出すような方式)
- 仮想フォルダ型 (ディレクトリ・ファイルリスト内に展開されるような方式)

 (参照)
11.1 NTFS Streams
http://msdn.microsoft.com/en-us/library/ff469210.aspx
Files and Clusters (Windows)
http://msdn.microsoft.com/en-us/library/aa364056.aspx
File Streams (Windows)
http://msdn.microsoft.com/en-us/library/aa364404.aspx
WIN32_STREAM_ID Structure (Windows)
http://msdn.microsoft.com/en-us/library/aa362667.aspx
CopyFileEx Function (Windows)
http://msdn.microsoft.com/en-us/library/aa363852.aspx

$ 4.1 オルタネートデータストリーム操作ソフト (参考)


  コピー動作を検証するためにコピー元やコピー先を条件検索する際、次のような
ソフトを使用して、オルタネートデータストリームを検索できるかもしれない。

 (参考)
Frank Heyne Software - LADS
http://www.heysoft.de/en/software/lads.php?lang=EN
        lads.exe (Windows NT4 or later)

- LADS - List Alternate Data Streams 4.10 (freeware, 32bit)
- オルタネートデータストリームの検索が可能 (リダイレクト保存可)

 (参考)
lfnutils
http://www.monyo.com/technical/products/lfnutils/

- lfnutils (Long File Name Utilities) 1.0 (freeware, 32bit)
- オルタネートデータストリームの検索・操作が可能 (リダイレクト保存不可)
- ディレクトリのオルタネートデータストリームが検索されないことがあり非推奨

$ 5.  ボリュームシャドウコピーサービス (VSS)


  要検討。

 (参考)
@IT:特集 Windows Server 2003完全ガイド
  可用性を向上させるボリューム・シャドウ・コピー・サービス
  1.可用性を向上しTCOを削減するVSS
http://www.atmarkit.co.jp/fwin2k/dnsvrguide/vss/vss_01.html
@IT:特集 Windows Server 2003完全ガイド
  可用性を向上させるボリューム・シャドウ・コピー・サービス
  2.ハードウェア転送スナップショットの概要
http://www.atmarkit.co.jp/fwin2k/dnsvrguide/vss/vss_02.html

$ 6.  動作環境 (参考)


  次に示すストレージ構成の例は、ドライブ文字を最大限に使用できるように想定
されている。

- ストレージ構成とドライブ文字割り当ての例:

ドライブ A,B    2 フロッピーディスク (FD)
ドライブ C,M,N  3 ブート・システムドライブ/パーティション (HD:NTFS)
ドライブ D-L    9 データドライブ/パーティション (HD:NTFS/FAT32)
ドライブ V-O    8 ネットワークドライブ/パーティション
ドライブ Z-W    4 大容量リムーバブルディスク (BD/DVD/CD etc.)
┌─┬─┐┏━┯━┯━┳━┯━┯━┓┌─┬─┐┌─┬─┐
│A:│B:│┃C:/M:/N:┃D:│E:│…┃│…│V:││…│Z:│
└─┴─┘┗━┷━┷━┻━┷━┷━┛└─┴─┘└─┴─┘

  上記の例では、3 つのブート・システムドライブ/パーティションを設けること
によって、2 つの非アクティブなブート・システムドライブ/パーティションを、
データドライブ/パーティションと同様に操作できる。
  よって、2 つの非アクティブなブート・システムドライブ/パーティションを、
コピー元/コピー先にすれば、これらのドライブ/パーティションをバックアップ
できると考えられる。
                                    ┌─┐
                      Backup/Restore↓  ↓Data
┏B0━━━━━┯B1━━━┯B2━━━┳L0┯L1┯━┓
┃C:/M:/N:    │M:/C:   │N:/C:   ┃D:│E:│…┃
┗━━━━━━┷━━━━┷━━━━┻━┷━┷━┛
  ↑Backup/Restore↑Boot/System ↑
  └───────┴──────┘

  アクティブなブート・システムドライブ/パーティションを切り替えて、コピー
を繰り返せば、3 つのブート・システムドライブ/パーティションをバックアップ
できることになる。
  これにより、短期保存バックアップとブート可能な代替システムの更新を、同時
に実現できると考えられる。
                                    ┌─┐
                      Backup/Restore↓  ↓Data Drive/Partition
┏B0━━━━━┯B1━━━┯B2━━━┳L0┯L1┯L2━━┯L3━━┯L4━━┯━┓
┃C:/M:/N:/H: │M:/C:/G:│N:/C:/F:┃D:│E:│F:/C: │G:/C: │H:/C: │…┃
┗━━━━━━┷━━━━┷━━━━┻━┷━┷━━━┷━━━┷━━━┷━┛
  ↑Backup/Restore  ↑        ↑              ↑      ↑      ↑
  │Boot/System     │        └───────┘      │      │
  │Drive/Partition └────────────────┘      │
  └─────────────────────────────┘

  3 つのデータドライブ/パーティションを拡張し、各ドライブ/パーティション
を3 つのブート・システムドライブ/パーティションにそれぞれ対応させれば、各
ブート・システムドライブ/パーティションに異なるシステムをインストールして
バックアップ/リストアできるようになる。

Related Script (Batch File);
cf. "bcde.bat"  ブート構成データBCD (Boot Config. Data) 生成スクリプトの例

 (参考)
NTFS、FAT、および exFAT の既定のクラスター サイズ
http://support.microsoft.com/kb/140365

$ 6.1 ドライブ/パーティション管理ソフト (参考)


  ドライブ/パーティションをバックアップするために、次のようなソフトを使用
して、ドライブ/パーティションの領域を操作できる。

 (参考)
Free Download Magic Partition Manager Software - Partition Wizard Online
http://www.partitionwizard.com/download.html

- Partition Wizard Home Edition 5.2 Full version (freeware, 32/64bit)
- パーティションの作成/削除/変更などが可能
- ドライブ/パーティション単位でコピーが可能

$ 6.2 マルチブート管理ソフト (参考)


  ドライブ/パーティションをバックアップするために、次のようなソフトを使用
して、ブートさせるドライブ/パーティションを設定できる。

 (参考)
ELM - マルチ・ブート・マネージャ
http://elm-chan.org/fsw/mbm/mbm.html

- Multiple Boot Manager: MBM R0.39 (freeware)
- MS-DOS/V 6.2 からWindows7 まで安定動作実績を誇るマルチブートマネージャ
- ブートさせるドライブ/パーティションを電源投入時に設定して即起動可能

$ 7.  ファイルコピー型バックアップ用ソフトの候補に対する要望


  上記「1.2 評価状況」によって示される各問題が解決されることを、各ソフト
に対する要望とする。

$ 7.1 評価報告・要望 − ファイラ (・アーカイバ)


- FileVisor6
- WinFM2008
- Far Manager

$ 7.1.1 FileVisor6に対する評価報告・要望


  次に示す各問題が解決されることを期待します。

- コピー処理時など:

#01 最大 32,767 文字の非常に長いパスが処理されない
#02 作成日時が保持されない [dir./FILE]
#03 A:アーカイブ属性が強制セットされる [dir./FILE]
    A:アーカイブ属性は保持、または保持/強制セット選択可のいずれかにすべき
#04 N:ノーマル (属性) が強制リセットされる [FILE]
    N:ノーマル (属性) の動作はA:アーカイブ属性などの動作の副作用
#05 P:スパースファイル (属性) が保持されない [FILE]
#06 L:リパースポイント (属性) が保持されない [DIR./FILE]
#07 C:圧縮属性が保持されない [DIR./FILE]
#08 O:オフライン属性が保持されない [dir./FILE]
#09 I:非インデックス対象属性が保持されない [dir./FILE]
#10 E:暗号化属性が保持されるか不定 [DIR./FILE] (未評価)
#11 V:仮想化ファイル属性が保持されるか不定 [DIR./FILE] (未評価)
#12 ハードリンク自体が保持されない [FILE]
#13 ボリュームマウントポイント自体が保持されない [DIR.]
#14 ジャンクションポイント自体が保持されない [DIR.]
#15 シンボリックリンク自体が保持されない [DIR./FILE]
#16 アクセスコントロールリストが保持されない [DIR./FILE]
#17 DACL(Discretionary ACL) が保持されない [DIR./FILE]
#18 Group (group_sid) が保持されない [DIR./FILE]
#19 Owner (owner_sid) が保持されない [DIR./FILE]
#20 SACL (System ACL) が保持されない [DIR./FILE]
#21 オルタネートデータストリームが保持されない [DIR./file]

- 属性セット/リセット処理時:

#22 R/H/S/A 以外の属性セット/リセットの機能がサポートされていない
    T:一時ファイル属性とP:スパースファイルはディレクトリに対しマスクすべき

- その他:

#23 リパースポイント各種の処理対象を自体/実体のいずれにするか選択できない
    意図に反する処理 (例えばVMP 配下の全削除など) が実行される危険性がある
#24 コマンドライン起動時、"/CONT" オプションが正常に動作しない (Windows7)
#25 コマンドライン起動時、"/FORCE folder" オプションが正常に動作しない
#26 コマンドライン起動時、リダイレクトするとオプションが正常に動作しない

Notes; DIR.(upper)/dir.(lower): NG/OK, FILE(upper)/file(lower): NG/OK

Related Script (Batch File);
cf. "xcpt.bat"  コピーテスト用スクリプト
cf. "xcp.bat"   汎用コピースクリプト
cf. "xat.bat"   拡張 attrib コマンドスクリプト

$ 7.1.2 WinFM2008 に対する評価報告・要望


  次に示す各問題が解決されることを期待します。

- コピー処理時など:

#01 最大 32,767 文字の非常に長いパスが処理されない
#02 R:読み取り専用属性のエントリの作成日時が保持されない [dir./FILE]
#03 シンボリックリンク以外でA:アーカイブ属性が強制セットされる [dir./FILE]
    A:アーカイブ属性は保持、または保持/強制セット選択可のいずれかにすべき
#04 シンボリックリンク以外でN:ノーマル (属性) が強制リセットされる [FILE]
    N:ノーマル (属性) の動作はA:アーカイブ属性などの動作の副作用
#05 P:スパースファイル (属性) が保持されない [FILE]
#06 L:リパースポイント (属性) が保持されない [DIR./FILE]
#07 C:圧縮属性が保持されない [DIR./FILE]
#08 E:暗号化属性が保持されるか不定 [DIR./FILE] (未評価)
#09 V:仮想化ファイル属性が保持されるか不定 [DIR./FILE] (未評価)
#10 ハードリンク自体が保持されない [FILE]
#11 ボリュームマウントポイント自体が保持されない [DIR.]
#12 ジャンクションポイント自体が保持されない [DIR.]
#13 シンボリックリンク自体が保持されない [DIR./FILE]
#14 アクセスコントロールリストが保持されない [DIR./FILE]
#15 DACL(Discretionary ACL) が保持されない [DIR./FILE]
#16 Group (group_sid) が保持されない [DIR./FILE]
#17 Owner (owner_sid) が保持されない [DIR./FILE]
#18 SACL (System ACL) が保持されない [DIR./FILE]
#19 オルタネートデータストリームが保持されない [DIR./file]

- 属性セット/リセット処理時:

#20 R/H/S/A/C/E 以外の属性セット/リセットの機能がサポートされていない
    T:一時ファイル属性とP:スパースファイルはディレクトリに対しマスクすべき

- その他:

#21 リパースポイント各種の処理対象を自体/実体のいずれにするか選択できない
    意図に反する処理 (例えばVMP 配下の全削除など) が実行される危険性がある

Notes; DIR.(upper)/dir.(lower): NG/OK, FILE(upper)/file(lower): NG/OK

Related Script (Batch File);
cf. "xcpt.bat"  コピーテスト用スクリプト
cf. "xcp.bat"   汎用コピースクリプト
cf. "xat.bat"   拡張 attrib コマンドスクリプト

$ 7.1.3 Reports and Requests for Far Manager


  I wish the following problems would be fixed.

- Case of copying process etc.

#01 Creation Time not copied for DIR./FILE
#02 Last Write Time not copied for DIR. and Symbolic Links of FILE
#03 Attr:A (ARCHIVE) not copied, be set forcibly for FILE (copied for DIR.)
#04 Attr:N (NORMAL) not copied, be reset forcibly for FILE
#05 Attr:P (SPARSE_FILE) not copied for FILE
#06 Attr:L (REPARSE_POINT) may not be copied for DIR./FILE
#07 Attr:C (COMPRESSED) not copied for FILE (copied for DIR.)
#08 Attr:O (OFFLINE) not copied for FILE (copied for DIR.)
#09 Attr:I (NOT_CONTENT_INDEXED) not copied for FILE (copied for DIR.)
#10 Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
#11 Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
#12 Hard Links themselves not copied for FILE
#13 Volume Mount Points themselves not copied for DIR. (and DIR. recurs)
#14 Symbolic Links themselves with Attr:R (READONLY) not copied for FILE
#15 ACL (Access Control Lists) not copied for DIR./FILE
#16 DACL (Discretionary ACL) not copied for DIR./FILE
#17 Group SID (Security ID) not copied for DIR./FILE
#18 Owner SID (Security ID) not copied for DIR./FILE
#19 SACL (System ACL) not copied for DIR./FILE
#20 ADS not copied for Symbolic Links of FILE with Attr:R (READONLY)

- The others

#21 DIR./FILE in Reparse Points or themselves not selectable in deleting
#22 Displays not shown normally in the other code pages (e.g. cp932 etc.)

※日本語コードページcp932 などでも正常に表示されるように改変する有志が必要
※言語ファイルとヘルプファイルを日本語化する有志が必要
※日本語ディレクトリ/ファイルのコピー自体は現状で可能

$ 7.2 評価報告・要望 − ファイルコピー型バックアップ/コピーソフト


- Robocopy
- RichCopy
- FastCopy
- Fire File Copy

$ 7.2.1 Robocopyに対する評価報告・要望


  次に示す各問題が解決されることを期待します。

- コピー処理時など:

#01 ディレクトリエントリ順に処理されない (FAT32/FAT からFAT32/FAT へ)
    (FAT32/FATから) FAT32/FAT の場合ディレクトリエントリ順の処理可にすべき
#02 VMP とシンボリックリンクの作成日時が保持されない [DIR./file]
#03 ボリュームマウントポイントの最終書き込み日時が保持されない [DIR./file]
#04 小さいサイズだとP:スパースファイル (属性) が保持されない [FILE]
#05 L:リパースポイント (属性) が保持されるか不定 [DIR./FILE]
#06 C:圧縮属性が保持されない [DIR./FILE]
#07 E:暗号化属性が保持されるか不定 [DIR./FILE] (未評価)
#08 V:仮想化ファイル属性が保持されるか不定 [DIR./FILE] (未評価)
#09 ハードリンク自体が保持されない [FILE]
#10 ボリュームマウントポイント自体が保持されない [DIR.]
#11 ジャンクションポイント自体が保持されない [DIR.]
#12 シンボリックリンク自体が保持されない [dir./FILE]
#13 アクセスコントロールリストが保持されるか不定 [DIR./FILE]
#14 DACL(Discretionary ACL) が保持されない [DIR./FILE]
#15 SACLが保持されない ("S:AINO_ACCESS_CONTROL" が設定される) [DIR./FILE]
#16 ジャンクションポイントのADS が保持されない [DIR./file]

- 削除処理時など:

#17 リパースポイント各種の実体が削除されてしまう [DIR./file]
#18 ボリュームマウントポイントの実体が削除されてしまう [DIR.]
#19 ジャンクションポイントの実体が削除されてしまう [DIR.]
#20 シンボリックリンクの実体が削除されてしまう [DIR./file]

- 属性セット/リセット処理時:

#21 T/P/O などの属性セット/リセットの機能がサポートされていない
    T:一時ファイル属性とP:スパースファイルはディレクトリに対しマスクすべき
#22 T:一時ファイル属性と共に各属性が正常に設定されない [DIR./file]
    T:一時ファイル属性とP:スパースファイルはディレクトリに対しマスクすべき
#23 R:読み取り専用属性と共にC:圧縮属性がセットされない [dir./FILE]

- その他:

#24 リパースポイント各種の処理対象を自体/実体のいずれにするか選択できない
    意図に反する処理 (例えばVMP 配下の全削除など) が実行される危険性がある

Notes; DIR.(upper)/dir.(lower): NG/OK, FILE(upper)/file(lower): NG/OK

Related Script (Batch File);
cf. "xcpt.bat"  コピーテスト用スクリプト
cf. "xcp.bat"   汎用コピースクリプト
cf. "xat.bat"   拡張 attrib コマンドスクリプト

$ 7.2.2 RichCopyに対する評価報告・要望


  次に示す各問題が解決されることを期待します。

- コピー処理時など:

#01 最大 32,767 文字の非常に長いパスが処理されない
#02 ボリュームマウントポイントの最終書き込み日時が保持されない [DIR./file]
#03 P:スパースファイル (属性) が保持されない [FILE]
#04 L:リパースポイント (属性) が保持されない [DIR./FILE]
#05 E:暗号化属性が保持されるか不定 [DIR./FILE] (未評価)
#06 V:仮想化ファイル属性が保持されるか不定 [DIR./FILE] (未評価)
#07 ハードリンク自体が保持されない [FILE]
#08 ボリュームマウントポイント自体が保持されない [DIR.]
#09 ジャンクションポイント自体が保持されない [DIR.]
#10 シンボリックリンク自体が保持されない [DIR./FILE]
#11 アクセスコントロールリストが保持されない [DIR./FILE]
#12 DACL(Discretionary ACL) が保持されない [DIR./FILE]
#13 Group (group_sid) が保持されない [DIR./FILE]
#14 Owner (owner_sid) が保持されない [DIR./FILE]
#15 SACL (System ACL) が保持されない [DIR./FILE]
#16 オルタネートデータストリームが保持されない [DIR./FILE]

- 削除処理時など:

#17 リパースポイント各種の実体が削除されてしまう [DIR./file]
#18 ボリュームマウントポイントの実体が削除されてしまう [DIR.]
#19 ジャンクションポイントの実体が削除されてしまう [DIR.]
#20 シンボリックリンクの実体が削除されてしまう [DIR./file]
#21 リパースポイント各種が削除されない [DIR./file]
#22 ボリュームマウントポイント自体が削除されない [DIR.]
#23 ジャンクションポイント自体が削除されない [DIR.]
#24 シンボリックリンク自体が削除されない [DIR./file]
#25 ディレクトリとR:読み取り専用属性のエントリが削除されない [DIR./FILE]
    R:読み取り専用属性のエントリは保持/変更・削除可を選択可にすべき

- 属性セット/リセット処理時:

#26 T:一時ファイル属性と共に各属性が正常に設定されない [DIR./file]
    T:一時ファイル属性とP:スパースファイルはディレクトリに対しマスクすべき
#27 A:アーカイブ属性がリセットされるか不定 [dir./FILE]
#28 A:アーカイブ属性と共にH:隠しファイル属性がリセットされない [dir./FILE]
#29 A:アーカイブ属性と共にS:システム属性がリセットされない [dir./FILE]

- その他:

#30 リパースポイント各種の処理対象を自体/実体のいずれにするか選択できない
    意図に反する処理 (例えばVMP 配下の全削除など) が実行される危険性がある
#31 コマンドライン起動時、TAB 文字で区切ったオプションが正常に動作しない

Notes; DIR.(upper)/dir.(lower): NG/OK, FILE(upper)/file(lower): NG/OK

Related Script (Batch File);
cf. "xcpt.bat"  コピーテスト用スクリプト
cf. "xcp.bat"   汎用コピースクリプト
cf. "xat.bat"   拡張 attrib コマンドスクリプト

$ 7.2.3 FastCopyに対する評価報告・要望


  次に示す各問題が解決されることを期待します。

- コピー処理時など:

#01 ディレクトリエントリ順に処理されない (FAT32/FAT からFAT32/FAT へ)
    (FAT32/FATから) FAT32/FAT の場合ディレクトリエントリ順の処理可にすべき
#02 A:アーカイブ属性が強制セットされる [dir./FILE]
    A:アーカイブ属性は保持、または保持/強制セット選択可のいずれかにすべき
#03 N:ノーマル (属性) が強制リセットされる [FILE]
    N:ノーマル (属性) の動作はA:アーカイブ属性などの動作の副作用
#04 P:スパースファイル (属性) が保持されない [FILE]
#05 C:圧縮属性が保持されない [DIR./FILE]
#06 E:暗号化属性が保持されるか不定 [DIR./FILE] (未評価)
#07 V:仮想化ファイル属性が保持されるか不定 [DIR./FILE] (未評価)
#08 アクセスコントロールリストが保持されるか不定 [DIR./FILE]
#09 SACL (System ACL) が保持されない [DIR./FILE]
#10 ジャンクションポイント以外のディレクトリ [DIR.]  と、
    大きいサイズのP:スパースファイル [FILE] のADS が保持されない

- 削除処理時など:

#11 R:読み取り専用属性のリパースポイント各種が削除されない [DIR./file]
    R:読み取り専用属性のエントリは保持/変更・削除可を選択可にすべき
#12 R:読み取り専用属性のVMP 自体が削除されない [DIR.]
    R:読み取り専用属性のエントリは保持/変更・削除可を選択可にすべき
#13 R:読み取り専用属性のジャンクションポイント自体が削除されない [DIR.]
    R:読み取り専用属性のエントリは保持/変更・削除可を選択可にすべき
#14 R:読み取り専用属性のシンボリックリンク自体が削除されない [DIR./file]
    R:読み取り専用属性のエントリは保持/変更・削除可を選択可にすべき

- 属性セット/リセット処理時:

#15 属性セット/リセットの機能がサポートされていない
    T:一時ファイル属性とP:スパースファイルはディレクトリに対しマスクすべき

- その他:

#16 リパースポイント各種の処理対象を自体/実体のいずれにするか選択できない
    意図に反する処理 (例えばVMP 配下の全削除など) が実行される危険性がある

Notes; DIR.(upper)/dir.(lower): NG/OK, FILE(upper)/file(lower): NG/OK

Related Script (Batch File);
cf. "xcpt.bat"  コピーテスト用スクリプト
cf. "xcp.bat"   汎用コピースクリプト
cf. "xat.bat"   拡張 attrib コマンドスクリプト

$ 7.2.4 Fire File Copyに対する評価報告・要望


  次に示す各問題が解決されることを期待します。

- コピー処理時など:

#01 最大 32,767 文字の非常に長いパスが処理されない
#02 ディレクトリエントリ順に処理されない (FAT32/FAT からFAT32/FAT へ)
    (FAT32/FATから) FAT32/FAT の場合ディレクトリエントリ順の処理可にすべき
#03 リパースポイント各種の作成日時が保持されない [DIR./file]
#04 リパースポイント各種の最終書き込み日時が保持されない [DIR./file]
#05 T:一時ファイル属性が保持されない [FILE]
#06 P:スパースファイル (属性) が保持されない [FILE]
#07 L:リパースポイント (属性) が保持されるか不定 [DIR./FILE]
#08 C:圧縮属性が保持されない [DIR./FILE]
#09 O:オフライン属性が保持されない [DIR./FILE]
#10 I:非インデックス対象属性が保持されない [DIR./FILE]
#11 E:暗号化属性が保持されるか不定 [DIR./FILE] (未評価)
#12 V:仮想化ファイル属性が保持されるか不定 [DIR./FILE] (未評価)
#13 ハードリンク自体が保持されない [FILE]
#14 シンボリックリンク自体が保持されない [DIR.(GUI mode)/FILE]
#15 アクセスコントロールリストが保持されない [DIR./FILE]
#16 DACL(Discretionary ACL) が保持されない [DIR./FILE]
#17 Group (group_sid) が保持されない [DIR./FILE]
#18 Owner (owner_sid) が保持されない [DIR./FILE]
#19 SACL (System ACL) が保持されない [DIR./FILE]
#20 ジャンクションポイント以外のADS が保持されない [DIR./file]

- 削除処理時など:

#21 各エントリが削除されない (cf. "xcp.bat") [DIR./FILE]

- 属性セット/リセット処理時:

#22 属性セット/リセットの機能がサポートされていない
    T:一時ファイル属性とP:スパースファイルはディレクトリに対しマスクすべき

- その他:

#23 リパースポイント各種の処理対象を自体/実体のいずれにするか選択できない
    意図に反する処理 (例えばVMP 配下の全削除など) が実行される危険性がある

Notes; DIR.(upper)/dir.(lower): NG/OK, FILE(upper)/file(lower): NG/OK

Related Script (Batch File);
cf. "xcpt.bat"  コピーテスト用スクリプト
cf. "xcp.bat"   汎用コピースクリプト
cf. "xat.bat"   拡張 attrib コマンドスクリプト

$ 7.3 ファイルコピー型バックアップ用ソフトの候補


 (参考)
FileVisor6
http://www.lightship.co.jp/FileVisor6/

- FileVisor6 ver6.4.7.1 (shareware, 32bit)
- ディレクトリエントリをソートしないで表示/処理する機能 (FAT32/FAT)
- アーカイバ内のエントリをソートしないで表示/処理する機能

 (参考)
WinFM2008 download
http://homepage3.nifty.com/annsHome/WinFM2008.htm
WinLM32 ダウンロード
http://homepage2.nifty.com/NYanagi/WinLM32.html
LMZIP32.DLL
http://homepage2.nifty.com/NYanagi/LMZIP32.html

- WinFM2008 V2.13 (Build 419) (x64 - unicode version) (shareware, 64bit)
- WinLM32 Version 1.60 (shareware, 32bit)
- LMZIP64.dll Version 1.31 (freeware, 64bit)
- ディレクトリエントリをソートしないで表示/処理する機能 (FAT32/FAT)
- ディレクトリエントリの順番をソート順に並び替えて書き込む機能 (FAT32/FAT)
- アーカイバ内のエントリをソートしないで表示/処理する機能

 (参考)
Far Manager Official Site : download
http://www.farmanager.com/download.php?p=64
Far Manager Official Site : open source
http://www.farmanager.com/opensource.php
svn - Revision 5067: /trunk/unicode_far
http://farmanager.com/svn/trunk/unicode_far/

- Far Manager v2.0 build 1666 x64 (2010-09-10) (freeware, 64bit)
- ディレクトリエントリをソートしないで表示/処理する機能 (FAT32/FAT)
- アーカイバ内のエントリをソートしないで表示/処理する機能

 (参考)
より強力なファイル管理のために Robocopy について理解する
http://technet.microsoft.com/ja-jp/magazine/ee851678.aspx
Robocopyでフォルダをコピー | Sunvisor Lab.
http://www.sunvisor.net/win/robocopy

- Robocopy in Windows7 Home Premium, 64-bit Version 6.1 (Build 7600)

 (参考)
フリー ユーティリティ: RoboCopy の高度な代替ツール、RichCopy
http://technet.microsoft.com/ja-jp/magazine/2009.04.utilityspotlight.aspx

- RichCopy Version: 4,0,217,0 (freeware, 32/64bit)

 (参考)
FastCopy
http://ipmsg.org/tools/fastcopy.html
ソースコード
http://ipmsg.org/archive/FastCopy203src.zip

- FastCopy(64bit) ver2.03 (Admin) (freeware, 64bit)

 (参考)
A-1 DRIVE -Software / Fire File Copy
http://www.k3.dion.ne.jp/~kitt/pc/sw/ffc/
シェル拡張メニューのx64版DLLはこちら
http://www.k3.dion.ne.jp/~kitt/pc/sw/ffc/ffcsh_x64_0987.zip

- Fire File Copy  Version : 4.9.1.0(unicode) (freeware, 32bit)
- Fire File Copy  シェル拡張 0.9.8.7 / 5.0.0.8 (freeware, 64bit)

$ 8.  要調査・要検討項目


- FILE_ATTRIBUTE_VIRTUAL (V:仮想化ファイル属性) について
- ボリュームシャドウコピーサービスについて
- マルチブート環境について
- Far Manager における表示・操作系の日本語対応について
- exFAT について

$ 9.  著作権・改版履歴


  著作権・改版履歴を示す。

$ 9.1 著作権


  この内容の著作権は、Public Domain とする。
  即ち、この内容を誰でもコピー、改版、配布/公開することができる (むしろ、
そうすることが推奨される) 。

$ 9.2 改版履歴


  Version (??: secondary series; can be revised by somebodies)
  *.*?? by *** May be revised for something

  Version (ps: primary series; reserved for S. )
  1.1ps by S.  Revised to release it.
  1.0ps by S.  Created to backup Windows system by copying files.

−以上−

Contents

$ 1.  要件

$ 1.1 目標 (ファイルシステムサポート基準 - NTFS/FAT32/FAT)

$ 1.2 評価状況

$ 1.3 背景 (参考)

$ 1.4 条件

$ 2.  付属情報 − 日時・属性・ファイルシステムリンク

$ 2.1 WIN32_FIND_DATA 構造体

$ 2.2 ファイル属性

$ 2.2.1 ファイル属性 − 取得

$ 2.2.2 ファイル属性 − 設定

$ 2.2.3 属性文字 (Windows7 Explorer)

$ 2.2.4 ファイル属性操作コマンド/ソフト (参考)

$ 2.3 リパースタグ

$ 2.4 ファイル情報

$ 2.4.1 ファイル情報 − 取得

$ 2.4.2 ファイル情報 − 設定

$ 2.5 ファイルシステムリンク (NTFS)

$ 2.5.1 ハードリンク

$ 2.5.2 リパースポイント (マウントポイント/シンボリックリンク等)

$ 2.5.3 ボリュームマウントポイント (マウントフォルダ)

$ 2.5.4 ジャンクションポイント (ディレクトリジャンクション)

$ 2.5.5 シンボリックリンク

$ 2.5.6 ファイルシステムリンク操作コマンド (参考)

$ 2.6 スパースファイル (スパース属性)

$ 2.6.1 スパースファイル操作コマンド (参考)

$ 2.7 ファイル圧縮 (圧縮属性)

$ 2.7.1 ファイル圧縮操作コマンド (参考)

$ 2.8 ファイル暗号化 (暗号化属性)

$ 2.8.1 ファイル暗号化操作コマンド (参考)

$ 2.9 日時・属性・ファイルシステムリンク操作ソフト (参考)

$ 3.  付属情報 − アクセスコントロールリスト (ACL)

$ 3.1 アクセスコントロールリスト操作コマンド (参考)

$ 4.  付属情報 − オルタネートデータストリーム (ADS)

$ 4.1 オルタネートデータストリーム操作ソフト (参考)

$ 5.  ボリュームシャドウコピーサービス (VSS)

$ 6.  動作環境 (参考)

$ 6.1 ドライブ/パーティション管理ソフト (参考)

$ 6.2 マルチブート管理ソフト (参考)

$ 7.  ファイルコピー型バックアップ用ソフトの候補に対する要望

$ 7.1 評価報告・要望 − ファイラ (・アーカイバ)

$ 7.1.1 FileVisor6に対する評価報告・要望

$ 7.1.2 WinFM2008 に対する評価報告・要望

$ 7.1.3 Reports and Requests for Far Manager

$ 7.2 評価報告・要望 − ファイルコピー型バックアップ/コピーソフト

$ 7.2.1 Robocopyに対する評価報告・要望

$ 7.2.2 RichCopyに対する評価報告・要望

$ 7.2.3 FastCopyに対する評価報告・要望

$ 7.2.4 Fire File Copyに対する評価報告・要望

$ 7.3 ファイルコピー型バックアップ用ソフトの候補

$ 8.  要調査・要検討項目

$ 9.  著作権・改版履歴

$ 9.1 著作権

$ 9.2 改版履歴

/* Copyright: Public Domain (free contents) for the contents in the just above element. */
/* Everyone can copy, revise and distribute/publish the contents in the just above element. */
/* Everyone can copy, paste, save and use the contents in the just above element. */

Links - PA053879

Top Page - PA053879

BSEK (Backup/copy Software Evaluation Kit)

Windows システムをファイルコピー型バックアップする検討内容

"xcpt.bat" - eXtended CoPy Test BATch for Windows7 HP 64bit(x64)

"xcp.bat" - eXtended CoPy BATch for Windows7 HP 64bit(x64)

"xat.bat" - eXtended ATtrib BATch for Windows7 HP 64bit(x64)

"bcde.bat" - Boot Configuration Data Edit BATch for Windows 7 (OEM_SLP) / PE3.x - BCD Builder/Generator

"t2hp.bat" - Text TO xHtml Parts BATch for perl

"dddi.bat" - Device class Drivers DisInstaller / Inactive-Installer BATch for Windows 7 (OEM_SLP) / PE3.x

"bpbf.bat" - "BPB" display tool text Filtering wrapper

The making of the integrated ISO file / bootable CD/DVD/BD

The making of 2048[sct] aligned / 2^n[GB] normalized partitions

Ideal 2TB HDD, 256GB partitions, Optimal alignment

Ideal 2TB HDD, 256GB partitions, with gaps for Cyl. boundary

Ideal 2TB HDD, 128GB partitions, Optimal alignment

Ideal 2TB HDD, 128GB partitions, with gaps for Cyl. boundary

Ideal 2TB HDD, 64GB partitions, Optimal alignment

Ideal 2TB HDD, 64GB partitions, with gaps for Cyl. boundary

I-O DATA HDPC-UT, 64GB partitions, with gaps for Cyl. boundary

Hitachi HTS545050B9A300, 64GB partitions, with gaps for Cyl. boundary

FUJITSU MHT2030AT, 8GB partitions, with gaps for Cyl. boundary

Ideal USB Memory, single partition, Optimal alignment

The making of USB bootable system for Windows 7 (OEM_SLP) / PE3.x

counter