robocopy コマンドでドライブの全データをコピーする。
スポンサーリンク
ドライブの全データをコピーするコマンドとしては xcopy が有名だと思いますが、ファイルやディレクトリの完全パスが256文字を超えるとコピーに失敗します。
robocopy は xcopy と似たようなコマンドですけど、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:{ログファイルのパス} :: ログファイルに状態を出力します(既存のログを上書きします)。
参考資料:
- Windowsのバックアップにはxcopyではなくrobocopyコマンドを - 情報技術の四方山話
- http://www.secondnote.net/secondnote/archives/2010/07/robocopy.html
- Latest topics > robocopyがシンボリックリンクに捕まってしまってうまく動いてくれない→/XJDオプションでうまくいった - outsider reflex
- アクセス制御リストACLとは? − @IT
- Windowsコラム - 【解説】重要なファイルに対するアクセスを監査するには?:ITpro
- ファイルの所有者を変更する(コマンド・プロンプト編) − @IT
- 接合ポイントの機能不全 - TechNet Magazine 2009 年 12 月号
まとめ記事:
rms-099.hatenablog.jp