[ リストに戻る ]
No.714に関するツリー

   要望: ジャンクションのコピーについて - drvCopy - 2010/06/09(Wed) 21:06:05 [No.714]
Re: 要望: ジャンクションのコピーについて - kitt - 2010/06/11(Fri) 21:28:59 [No.721]
Re^2: 要望: ジャンクションのコピーについて - drvCopy - 2010/06/12(Sat) 12:07:44 [No.727]
Re^3: 要望: ジャンクションのコピーについて - drvCopy - 2010/06/12(Sat) 17:20:40 [No.729]
Re^4: 要望: ジャンクションのコピーについて - drvCopy - 2010/06/12(Sat) 18:05:04 [No.730]



並べ替え: [ ツリー順に表示 | 投稿順に表示 ]
要望: ジャンクションのコピーについて (親記事) - drvCopy

[目的]
Windows7 64bit(x64) 版において、Windows システムの
特定フォルダ/ファイルを、その構造・機能が失われないように
パーティション間コピー (同期、バックアップ) したい。

[要望]
Fire File Copy は、ジャンクションのコピーに対応しているそうですが、

「コピー元リンク」と「コピー元実体」がそれぞれコピーされて、
「コピー先リンク」と「コピー先実体」が作成される場合、

「コピー先リンク」が「コピー元実体」を指して欲しいケースと、
「コピー先リンク」が「コピー先実体」を指して欲しいケースの、

2通りあると思います。ダイアログか設定でどちらかのケースを
選択できることが望ましいと思います。

[背景]
Unix 系ファイルシステムが備える別名機能 (リンク) には、ハードリンク、シンボリックリンク
があります。

Windows では、その類似機能の中で、ショートカット (ファイル) が主に使われてきました。

最近の Windows の NTFS ファイルシステムでは、ハードリンク、シンボリックリンク、
ジャンクションという別名機能 (リンク) もサポートされているようですが、
今まで積極的には使われていなかったようです。

ところが、Windows7 の特定フォルダでは (従来 OS とのフォルダ構造互換性維持などのため)
ジャンクションが多用されているようです。従って、Windows7 の時代はジャンクション操作の
必要なケースが増えると思います。

[関連]
A-1 DRIVE -S/Wサポート
http://www4.rocketbbs.com/741/bbs.cgi?id=kkiitt&mode=view&tree=282


[No.714] 2010/06/09(Wed) 21:06:05
Re: 要望: ジャンクションのコピーについて (No.714への返信 / 1階層) - kitt

> http://www4.rocketbbs.com/741/bbs.cgi?id=kkiitt&mode=view&tree=282
にもあるとおり、検討したいと思いますが、
リンク先がコピー配下外をさしているときはどうすべきと思いますか?


[No.721] 2010/06/11(Fri) 21:28:59
Re^2: 要望: ジャンクションのコピーについて (No.721への返信 / 2階層) - drvCopy

kitt さん、ご回答ありがとうございます。

> > http://www4.rocketbbs.com/741/bbs.cgi?id=kkiitt&mode=view&tree=282
> にもあるとおり、検討したいと思いますが、
> リンク先がコピー配下外をさしているときはどうすべきと思いますか?


これは、「コピー後リンク」が「コピー後実体」を指すよう選択・設定の場合、
上記のようなときは、リンクだけコピーされて実体がコピーされないため、
「コピー後リンク」が「コピー後実体」を指さなくなるが、どうすべきか
ということでしょうか。

「コピー後リンク」が「コピー後実体」を指すよう選択・設定の場合には、
たとえ「コピー後リンク」が「コピー後実体」を指さなくても、
「コピー後リンク」の参照先を「コピー後実体」があるべき (コピーされる
であろう) エントリに変更しておく方が無難なように思われます。

厳密なことは理解しきれていませんが、ハードリンクは実体が必ず必要で、
ジャンクションやシンボリックリンクは実体がない状態 (リンク切れ) でも
存在しうるものと思っています。

ジャンクションやシンボリックリンクは、リンクだけをコピーすれば
「コピー後リンク」と実体の適切な関係は一旦失われます。しかし、
その後に実体を「コピー後リンク」の参照先にコピーすれば、
「コピー後リンク」と「コピー後実体」の適切な関係が回復するのでは
ないでしょうか。

つまり、「コピー後リンク」の参照先を「コピー後実体」があるべきエントリに
変更しておけば、リンクと実体が必ずしも同時期にコピーされなくても良い
ことになります。そうでないと、リンクと実体が同時期にコピーされることが
何を以って保証されるのか、という問題に悩まされるように思います。

if (「コピー後リンク」が「コピー後実体」を指すよう選択・設定) {
  「コピー後リンク」の参照先を「コピー後実体」があるべきエントリに変更する
} else {
  「コピー後リンク」の参照先は (リンク切れ状態を含め) 元のまま
}

この考え方で問題点・矛盾点・おかしな所があれば、ご指摘願います。


[No.727] 2010/06/12(Sat) 12:07:44
Re^3: 要望: ジャンクションのコピーについて (No.727への返信 / 3階層) - drvCopy

(追記)
> 「コピー後リンク」が「コピー後実体」を指すよう選択・設定
これは、論理ドライブ (パーティション) 間 (e.g. "C:\" → "D:\") の
コピーを主に想定したものでした。

> リンク先がコピー配下外をさしているときはどうすべきと思いますか?
同じ論理ドライブ内でコピーする場合、確かに場合分けして検討する必要が
ありそうです。

[Case1]
「コピー前リンク」の参照先が、「コピー前リンク」のあるディレクトリ
("DRV:DIR1\DIR2\LINK" なら "DRV:DIR1\DIR2\")
より下層にある各ディレクトリ
("DRV:DIR1\DIR2\LINK" なら "DRV:DIR1\DIR2\DIR3\")
の下にある場合、
「コピー後実体」があるべきエントリは推定可能なようです。

[Case2]
「コピー前リンク」の参照先が、「コピー前リンク」のあるディレクトリ
("DRV:DIR1\DIR2\LINK" なら "DRV:DIR1\DIR2\")
と同じディレクトリ (の直下) にある場合、
「コピー後実体」があるべきエントリは推定可能なようです。

[Case3]
「コピー前リンク」の参照先が、「コピー前リンク」のあるディレクトリ
("DRV:DIR1\DIR2\LINK" なら "DRV:DIR1\DIR2\")
より上層にある直系ディレクトリ
("DRV:DIR1\DIR2\LINK" なら "DRV:DIR1\")
の下にある場合、
「コピー後実体」があるべきエントリは一部推定可能で一部推定不可能、
全体的には推定困難なようです。

[Case4]
「コピー前リンク」の参照先が、「コピー前リンク」のあるディレクトリ
("DRV:DIR1\DIR2\LINK" なら "DRV:DIR1\DIR2\")
の傍系ディレクトリ
("DRV:DIR1\DIR2\LINK" なら "DRV:DIR1\DIR9\")
の下にある場合、
「コピー後実体」があるべきエントリは一部推定可能で一部推定不可能、
全体的には推定困難なようです。


「コピー後リンク」の参照先を「コピー後実体」があるべきエントリに
変更する際の推定レベルは、個人的には上記 Case1,Case2 までの場合を
サポートするレベルで十分のように思われます (異論はあるかも知れません) 。

参照先の変更をしない場合は、「コピー前リンク」の参照先のままにするしか
ないように思います。

リンクだけをコピーする場合の対応については、前の投稿と同様に考えています。

以上の考え方で問題点・矛盾点・おかしな所があれば、ご指摘願います。


[No.729] 2010/06/12(Sat) 17:20:40
Re^4: 要望: ジャンクションのコピーについて (No.729への返信 / 4階層) - drvCopy

(追記2)
> 同じ論理ドライブ内でコピーする場合、確かに場合分けして検討する必要が
> ありそうです。

『同じ論理ドライブ内でコピーする場合』と表現したことは適切でなかったようです。
『論理ドライブ部だけでなく配置 (パス) も変えてコピーする場合』とした方が適切
だったかも知れません。失礼しました。


[No.730] 2010/06/12(Sat) 18:05:04
以下のフォームから投稿済みの記事の編集・削除が行えます


- HOME - 新規投稿 - お知らせ(3/8) - 新着記事 - 記事検索 - 携帯用URL - フィード - ヘルプ - 環境設定 -

Rocket Board Type-T (Free) Rocket BBS