

先日、約35GBのデータを複数のPC（スペックは忘れましたが全て同一スペック）にコピーする必要があったため、高速コピーが可能なrobocopyを初めて試しました。

  1. まず、PC1に通常コピーを行いました。  
正確な時間は測れませんでしたが、少なくとも15時間はかかることが分かりました。

  2. 次にPC2に以下のコマンドを実行しました。
[code]     robocopy I:/ C:/~ /E /R:3 /MT:$Corenum /XA:SH /XD "System Volume
Information" "`$RECYCLE.BIN"

    
[/code]

    * `I:/` はコピー元のフルパス（外付けHDD）
    * `C:/~` はコピー先のフルパス
    * `$Corenum` は使用したパソコンのスレッド数-1

を設定しています。  
結果は、約40分でした。  
しかし、ドライブのルートをコピーしたためにデータが見れなくなる現象が起こりました。  
なお、この問題は以下のコマンドで解決済です。

[code]     attrib -h -s C:/~

    
[/code]

  3. 最後に、上記の現象を起こさないよう以下のコマンドに改良してPC3にコピーしました。
[code]     robocopy I:/ C:/~ /E /R:3 /MT:$Corenum /XA:SH /A-:SH /XD "System
Volume Information" "`$RECYCLE.BIN"

    
[/code]

これによりデータは問題なく見れたのですが、何故か約4時間もコピーに時間を要しました。

ここで質問です。  
システムファイルと隠しファイルを除外するかどうかはコピー時間に影響を及ぼすものなのでしょうか？あるいは何か別のことが関係しているのでしょうか？

よろしくお願いいたします。


CC BY-SA 4.0
2023-11-12T06:07:14.137
96763
2023-11-13T12:39:38.217
2023-11-13T12:39:38.217
3060
54778
question
windows
robocopy でシステムファイルや隠しファイルを含むコピーをすると時間がかかる？


質問にだけ答えると

`hiberfil.sys` や `pagefile.sys` や `swapfile.sys`
やレジストリハイブなどはシステムファイルかつ隠しファイルなのですが、その性質的に巨大ファイルとなってしまいます。

なおかつコピー先にも同名ファイルがあって、コピーする意味がない上に（その PC のハードウエア構成に依存しているなど、コピー先で活用しようがない）
Windows 自体が常にファイルを開いているためコピーできません。

`robocopy`
から見て、これらのファイルはコピー先で開けないので再試行の対象となり、何度もコピーを試みてからあきらめるため無駄な試行で時間を要してしまいます。
`robocopy` のオプション `/R:n`
でリトライ回数上限指定をしないとデフォルトの試行回数は１００万回なので、事実上永遠に終わらないってころになりそうです。

`System Volume Information` や `$Recycle.Bin`
なども同様の理由により限りなくコピーする意味が無いのですが、その辺は対処済み？のようですね。

`C:\Windows` とか `C:\Program Files`
などは安直にコピーしてもコピー先で動作しそうに無いし、逆に動いてしまうとライセンス違反になりそうな気のせいがしますし、もっと慎重に「データだけ」コピーするように配慮しないといろいろまずそうです。

SSD の容量拡大目的であるならお引越し用ツールを使うほうが無難そうです。広告になりそうなのでリンク類は省略。


CC BY-SA 4.0
2023-11-13T07:18:55.427
96770
2023-11-13T07:18:55.427
8589
96763
answer