web-dev-qa-db-ja.com

Windowsシステムでファイルを移動する最速の方法

WindowsシステムでNTFSストレージデバイスからFAT32デバイスに約800GBのデータを移動する(どちらも外付けハードドライブ)。

これを達成するための最良の方法は何ですか?

  1. 単にカットペーストを使用しますか?
  2. コマンドプロンプトを使用しますか? (move
  3. 特定の間隔でデータの小さなチャンクをコピーするバッチファイルを作成しますか?
  4. 私のために仕事をする特定のアプリケーションを使用しますか?
  5. またはもっと良いアイデア...?

そのような時間のかかるプロセスを達成するための最も安全で効率的かつ迅速な方法は何ですか?

24
Andreas Grech

Robocopy

コマンドを再開すると、再開されます。私はそれをネットワーク上でいつも使っています。大きなファイルでも機能します。

35
Pyrolistical

可能であれば、ハードディスクを物理的に取り外します。

6
RedFilter

私は、高速コピーがこの種のものに非常に適していることを発見しました。そのGUIツール..。

http://www.ipmsg.org/tools/fastcopy.html.en

4
benlumley

ネットワーク経由で移動する必要がある場合は、サーバー間でFTPを使用する必要があります。 Windowsファイルシステムはおしゃべりなプロトコルで行き詰まります。

2
kemiller2002

Teracopy はかなり高速で便利であることがわかりました。伝えられるところでは、Fastcopy( benlumleyによって提案された )はさらに高速ですが、私はそれについての経験がありません。

2
Arnout

WinRarまたは圧縮ツールを使用してみてください。大きな「ファイル」は、多くの小さなファイルよりも速く移動します。ほとんどのzipツールでは、アーカイブ(Zip)ファイルを複数のアーカイブに分割できます。

圧縮をオンにすると、サイズを少し小さくすることもできます。

2
Johannes

コマンドライン:xcopyがおそらく最善の策です

コマンドリファレンス: http://www.computerhope.com/xcopyhlp.htm

1
FallenAvatar

マルチスレッドについてのコメントを@ hello_earth、201510131124からコメントしたかったのですが、Stackoverflowで十分なレピュテーションポイントがありません(これまでほとんどスーパーユーザーに投稿していました):
マルチスレッドは通常、1つのストレージデバイスから他の1つのストレージデバイスにファイルをコピーする場合に効率的ですnotシーケンシャル読み取りで最速のスループットに到達し、複数のスレッドを使用するとHDDがガタガタ鳴る同時に複数のファイルを読み書きするのはおかしなことになります。HDDは一度に1つのファイルにしかアクセスできないため、ファイルから1つのチャンクを読み書きしてから、別の領域にある別のファイルからチャンクに移動する必要があります。 、これによりプロセスが大幅に遅くなります(このような場合にSSDがどのように動作するかはわかりません)。これは非効率的であり、潜在的に有害です。同じ場所に留まって大きな連続ファイルを解析するのではなく、ヘッドがプラッターを繰り返し移動して複数の領域に短時間で到達する場合、機械的ストレスはかなり高くなります。

これは、md5deepを使用してビデオファイルでいっぱいの非常に大きなフォルダーのMD5チェックサムをバッチチェックしたときに発見しました。デフォルトのオプションでは、分析はマルチスレッドであったため、i7 6700K CPUで8スレッドあり、非常に低速でした。次に、1スレッドを意味する-j1オプションを追加しました。ファイルが順番に読み取られるようになったため、はるかに速く進みました。

これに由来するもう1つの考慮事項は、ファイルが断片化されていない場合、転送速度が大幅に速くなることです。また、ファイルがプラッターの最も外側の部分に対応するハードディスクドライブの先頭に配置されている場合は、転送速度が大幅に速くなります。線速度は最大です(その側面は、ソリッドステートドライブまたは他のフラッシュメモリベースのデバイスとは無関係です)。

また、元のポスターは「このような時間のかかるプロセスを達成するための最も安全で効率的かつ迅速な方法」を望んでいました–私は人がどちらか速度/効率を支持する妥協点を選択しなければならないと言います- または安全性:安全性が必要な場合は、各ファイルが完全にコピーされたことを確認する必要があります(MD5チェックサムを確認するか、WinMergeなどを使用して);そうしないと、プロセスにSNAFU(ハードウェアまたはソフトウェアの問題)がなかったことを100%確信することはできません。その場合、タスクに2倍の時間を費やす必要があります。

たとえば、SynchronizeItという小さなツールに依存していました。私のファイルコピーの目的では、すべてのタイムスタンプ(Robocopyが/ DCOPY:Tスイッチで行うようなディレクトリタイムスタンプを含む)を保存するほとんどの同様のツールと比較して大きな利点があり、必要なオプションだけを備えた合理化されたインターフェイスを備えています。しかし、一部のファイルはコピー後に常に破損し、正確に25000バイト後に切り捨てられることがわかりました(たとえば、1GBのビデオのコピーには25000の良好なバイトがあり、次に1GBの00があり、コピープロセスは異常に速く、ほんの一瞬しかかかりませんでした。そもそも私の疑いを引き起こした)。私はこの問題を2010年に初めて著者に報告しましたが、その後、彼はハードウェアの誤動作に気づき、それについて2度考えませんでした。私はまだSIを使用していましたが、ファイルを徹底的にチェックし始めました毎回コピーを作成しました(WinMergeまたはTotal Commanderを使用);ファイルが破損した場合は、代わりにRobocopyを使用しました(SynchronizeItで破損したファイルは、Robocopyでコピーした後、SynchronizeItで再度コピーした場合、問題なくコピーされたため、NTFSパーティションに記録された方法に混乱が生じました。そのソフトウェア、そしてどのRobocopyがどういうわけか修正した)。その後、2015年に、破損したファイルに関するパターンをさらに特定した後、再度報告しました。これらはすべて、特定のダウンロードマネージャーでダウンロードされていました。その時、作者はいくつか掘り下げて説明を見つけました。彼のツールはあまり知られていない「スパース」属性を持つファイルのコピーに問題があり、一部のダウンロードマネージャーはファイルを複数のチャンクでダウンロードするときにスペースを節約するためにこの属性を設定しました。彼はスパースファイルを正しくコピーする更新バージョンを私に提供しましたが、彼のWebサイトではリリースしていません(現在利用可能なバージョンは2009年から3.5、現在使用しているバージョンは2015年10月から3.6ベータです)。他の点では優れたソフトウェアを試すには、そのバグに注意し、重要なファイルをコピーするときは常に、コピーした各ファイルがソースと同一であるかどうかを(別のツールを使用して)徹底的に確認してから、ソースから削除してください。

1
GabrielB

ファイルをコピーする最も速い方法の1つは、上記の投稿でPyrolisticalが指摘しているように、robocopyを使用することです。その非常に柔軟で強力です。コマンドがdosプロンプトから直接機能しない場合は、以下の例のようにPowerShellオプションを試してください。

"robocopy /?"を使用する前に、このコマンドのドキュメントを確認する必要があります。

powershell "robocopy  'Source' 'destination' /E /R:3 /W:10 /FP /MT:25 /V" 

/E - Copy subdirectory including empty ones.
/R - Retry 3 times if failed.
/W - wait for 10 seconds between retries.
/FP - include full path name in output.
/MT - Multi thread.
/V - verbose output.
1

私はTeracopyを使用し、50GB以上を128GBフラッシュドライブにコピーしました。
48時間近く...電力の問題があったため、2回実行する必要がありました。再フォーマットして最初からやり直す必要がありました...私の好きなことではありません...

0
Harry