量産メモ帳

忘れっぽいのでメモを残しています。浅く適当に書きます。

robocopy コマンドでドライブの全データをコピーする。

スポンサーリンク

ドライブの全データをコピーするコマンドとしては xcopy が有名だと思いますが、ファイルやディレクトリの完全パスが256文字を超えるとコピーに失敗します。
robocopyxcopy と似たようなコマンドですけど、xcopy よりも堅牢で、失敗する可能性は低い感じがします。


私は次のようにオプションを指定して、物理的なダメージを抱えている内蔵 HDD から外付け HDD へデータをコピーすることができました。

robocopy (コピー元ドライブ名) (コピー先ドライブ名) /E /B /EFSRAW /COPY:DATO /DCOPY:T /V /SL /XJD /XJF /R:2 /W:10 /TEE /LOG:(コピー先ドライブ名)\robocopy.log



コマンドを実行した環境は Windows PE です。
データ量が多かったためか、コマンドが完了するのに一日以上かかりました。


最後に、私が使用したオプションの意味も記載しておきます。

  • コピー オプション
    • /E :: 空のディレクトリを含むサブディレクトリをコピーします。
    • /B :: バックアップ モードでファイルをコピーします。
    • /EFSRAW :: 暗号化されたすべてのファイルを EFS RAW モードでコピーします。
    • /COPY:DATO :: ファイルにコピーする情報 (D= データ、A= 属性、T= タイムスタンプ、O= 所有者情報)
    • /DCOPY:T :: ディレクトリにコピーする情報 (T= タイムスタンプ)
    • /SL :: 対象ではなくシンボリック リンクをコピーします。
    • /XJD :: ディレクトリの接合ポイントを除外します。
    • /XJF :: ファイルの接合ポイントを除外します。
  • 再試行オプション
    • /R:2 :: 失敗したコピーに対する再試行数 (2回)
    • /W:10 :: 再試行と再試行の間の待機時間 (10秒)
  • ログオプション
    • /V :: スキップされたファイルを示す詳細出力を作成します。
    • /TEE :: コンソールウィンドウとログファイルに出力します。
    • /LOG:{ログファイルのパス} :: ログファイルに状態を出力します(既存のログを上書きします)。



参考資料:



まとめ記事:
rms-099.hatenablog.jp