プロが教えるわが家の防犯対策術!

Win7x64 Ultimate
C: システム
D: データ

という風に使ってます。
 この度、D:データ のバックアップのためにハードディスクを追加しました。

 C:\Backup というフォルダを新規作成し、この追加したバックアップ用のハードディスクを論理ディスクマネージャから C:\Backup というドライブパスに割り当てました。
 エクスプローラで C:\Backup を見ると、違ったアイコンの絵に変わっており、数GBのファイルを置いても C: の容量が減らないことから、C:\Backup の中身は追加されたハードディスクに繋がっていると判断しました。

 次に、D: → C:\Backup の全データコピーのために
   xcopy d:\ c:\Backup /D /E /V /C /I /R /K /X /Y
というコマンドで行うようにしてみました。

 試しに、叩いてみて暫く放置させてみると・・・

 C:\ がディスク空き不足で止まってました。
 ??と思って、エクスプローラを見ると、先ほどまで違ったアイコンになっていた C:\Backup のフォルダアイコンが普通のアイコンに戻っていて、直に C: の中にファイルが置かれてました。
 論理ディスクマネージャで確認しますと、XCOPY をするまでは確実に出来ていた C:\Backup へのドライブパスも消えてました。

 総論すると、XCOPY を実行開始したタイミングで、ドライブパスが勝手に削除されてしまう、という風になってます。

 エクスプローラで丸コピーする分には(当然ですが)ドライブパスも勝手に削除されずに、正しく追加されたハードディスクにコピーされます。

 ちなみに、追加したハードディスクを C:\Backup じゃなくて、E: 等の普通のドライブレターに割り当てて、XCOPY ~ もそれに準じて書き換えて実行しますと、所望の動作をしてくれます。
(もちろんドライブレターを勝手に消すこともない)


 この XCOPY の動作って変じゃないですか?
 私の Win7 だけで起きる現象なんでしょうか??

A 回答 (4件)

xcopyはスペック通りに機能しているのではないでしょうか。


今回の事例に限っては /i option の使いかたに起因しているような気がします。
/i をカットして、xcopyが確認要求してきた場合に「 d 」で応えてはどうでしょうか。

> C:\Backup じゃなくて、E: 等の普通のドライブレターに割り当てて、XCOPY ~ もそれに準じて書き換えて実行しますと、所望の動作をしてくれます。

これも /i option がスペック通りに機能しているからでしょう。
以上です。
    • good
    • 0
この回答へのお礼

ありがとうございます。
オプション類を最小限にしてみました。

xcopy d:\ c:\backup /s

これでも、ドライブパスが消えます。
エクスプローラか何かで C:\Backup の中を開いておけば、削除されませんが、それは排他エラーに引っかかってドライバパスの削除失敗になってるだけなので。。。


コピーされないとか、そういう挙動ならば理解できるのですが、ドライブパスを勝手に消してしまうのは、下の方が書かれたアクセス権も勝手に消してしまう、と併せて仕様というよりもバグだと思いたいものです。

NT4 の時代にも、ジャンクション絡みでバグに近い仕様制限があったような記憶が残ってますが、Windows 7 の時代になっても特に変わってないのかもしれません。

ジャンクション機能を使ってディスク・ボリュームをマウントする
http://www.atmarkit.co.jp/fwin2k/win2ktips/985ju …

お礼日時:2010/01/07 10:59

誤解を招くといけませんので補足しました。



> (下記のoptionは関係ないです)
フォルダ、サブフォルダも処理対象にする場合は /s は関係します。
システムファイル、隠しファイルも処理対象にする場合は /h は関係します。

> xcopyの仕様に忠実に
xcopyはファイルcopyにoptionを付与したツールですので、ファイルを基本としてフォルダ、サブフォルダをoptionとして処理対象に加える、という考え方です。
仕様にもコピー元は「ファイル」となっています。
したがって、xcopy d:\ ではドライブを指定した記述になってしまって、保証できない動作をしているものと思われます。
このため、異常な動作のため C:\cackup へのドライブパスも消され、アイコンもフォルダアイコンに戻されたものと思われます。
    • good
    • 0
この回答へのお礼

 ありがとうございます。
 コピー元の指定に *.* を付けたところ、ジャンクションの強制削除は起きなくなったぽいです。
 が、やっぱジャンクション自体が消えてしまう、ってのは問題だと思いますネ。

 OS(ファイルシステム)のレベルで提供しているジャンクション機能が、コマンドプロンプトで動作する単純なファイルコピーソフトに壊されてしまう、ってのは、かなりの脆弱性を感じます。。。
 Win7 になってもマイクロソフトはハードリンクに関わるコードをうまく組み込めなかったのかなぁ~と。

お礼日時:2010/01/08 15:41

私の場合は何度行なっても納得できる動作をします。

(追記参照)
ただし、Win7 Ultimate 32bit 環境です。
64bitでは試していませんがおそらくxcopyの機能は同じなのでは?。
"YoshiakiKun"さんと異なる部分は、
コピー元を下記のように xcopyの仕様に忠実に実行したことです。(下記のoptionは関係ないです)
xcopy d:\*.* c:\backup /s /h /y

---追記
納得できる操作とは...
1. c:\backupとして作成したフォルダはボリューム(ドライブ)に割り当てた時点で、フォルダの種類は「マウントされたフォルダ」になる。
2. c:\backupのアイコンはショートカット表示のリンクフォルダであり、リンク先名は(1)のボリュームである。
3. c:\backupフォルダにxcopyを行なった後でも、上記(1)(2)の状況は変わらない。(アイコン表示図柄も変わらない)
4. c:\backupフォルダは普通のフォルダとなんら変わりなく、フォルダへのコピーや削除などを行なうことができる。
5. 上記の状況なので、ドライブCを拡張したのと同じ使用方法が出来る。(目的通りの使用)
6. 割り当てたボリューム(ドライブ)を削除すると、c:\backupは当初作成した普通のフォルダ表示に戻る。(フォルダの種類は「ファイルフォルダー」となる)
    • good
    • 0
この回答へのお礼

 ありがとうございます。

 D:\ のルートからのコピーに /h 付けると、ゴミ箱とかをコピーしようとしてきますネ。

robocopy d:\ c:\backup /s /purge /copyall /xd "System Volume Information" "$RECYCLE.BIN" /r:3 /w:3 /dcopy:T

としたら、なぜかコピー後に c:\backup (マウントしたHDD)にシステム属性が付いてしまい、非表示になる動作になりました。
 バックアップのフェルダは非常時以外は隠れていた方が都合がいい、という話もあるのですが、

robocopy d:\data c:\backup\data /s /purge /copyall /xd "System Volume Information" "$RECYCLE.BIN" /r:3 /w:3 /dcopy:T

という風に、ルートの下層にあるフォルダを指定することで、普通にコピーできるようになりました。
 ちなみに「/dcopy:T」に感動したことは言うまでもありません(笑)


 以上、検索エンジンで辿り着いた方むけに、余計なことも書かせて頂きました。

お礼日時:2010/01/08 15:47

試してみました。


"論理ディスクマネージャ"ってなんのことだろう、と思ったら、
コンピュータの管理>ディスクの管理
の事ですね。
そこでドライブを選択して「ドライブ文字とパスの変更」から、C:\Backupを追加する、
つまり、ジャンクション機能を使って新しく追加したドライブをC:\Backupにマウントする、ということでいいですね?

当方でもお書きになった通りのオプションを付加( /I にどういう意味があるのかわからないのですが)してXCOPYを試したら、ジャンクションが消えました。
普通のフォルダに戻って、その中にコピーされます。
それだけじゃなく、マウントしたドライブ側のアクセス権が全部吹っ飛んじゃったんで焦りました。

> この XCOPY の動作って変じゃないですか?

変ですね。

> 私の Win7 だけで起きる現象なんでしょうか??

当方でもそうなります。
つまり、(バグやエラーではなく)仕様、ということかもしれません。

ところで、xcopyでないといけないのですか?
robocopyは使えないのでしょうか?

robocopy d:\ c:\Backup /E /R:1 /W:1
あたりでいかがでしょう?

この回答への補足

下の「この回答へのお礼」を書いた後で書いてます。

robocopy に感動しました(笑)
xcopy のように ドライブパスを勝手に消すような挙動もないし、なんで今まで xcopy なんか使ってたんだろ、と思うくらいのものですネ

DOS の時代に zcopy を喜んで使ってた身としては、何の迷いもなく xcopy 一択でしたもので。。。

補足日時:2010/01/07 11:19
    • good
    • 0
この回答へのお礼

ありがとうございます。
論理ディスクマネージャ、XPまでの用語だったぽいです、すみません。

アクセス権が吹っ飛ぶ、ってのは気がつきませんでした。
(フォーマットしたディスクを使ってたので・・・)

robocopy は初めて知りました。
ちょっと勉強してみます。

お礼日時:2010/01/07 10:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!