web-dev-qa-db-ja.com

Robocopyを使用した圧縮ファイルによるハードディスクのミラーリング

スペースの少ない新しいディスクに既存のディスクをミラーリングしようとしました。ファイル構造、属性、およびACLがソースディスクとまったく同じであることが非常に重要です。

このために私はrobocopy.exeを試しました:

robocopy $sourceDisk $destinationDisk /mir /XD "System Volume Information" "`$RECYCLE.BIN" /copyall /r:1 /NP /NFL

このコマンドは、属性、ACLなどを持つすべてのフォルダとファイルを宛先ディスクにコピーします。ただし、compress-属性は除きます。つまり、ソースディスクで圧縮されたファイルまたはフォルダは宛先ディスクにあります。圧縮されなくなりました。この属性がありません。

これを行うためのrobocopyのオプションはありますか(私はそれを見つけられませんでした)。または、ディスクまたはファイル構造の正確なコピーを別のディスクに作成するための既存の他のアプローチはありますか?

3
larkee

この問題は、コマンドラインツールstrarc.exe from LTR-Data で管理できました。

このツールは、私が理解している限り、robocopyよりも下位のレイヤーにファイルをコピーします。すべての属性、ACLは、ソースのように宛先で正確です。タイムスタンプも同様です。正しくコピーされたジャンクション。

コマンドは

$srcDisk = "Y:"
$dstDisk = "Z:"
cmd /c "C:\temp\strarc.exe -cjd:$srcDisk | C:\temp\strarc -s:8 -xd:$dstDisk"

$srcDiskのコピーを作成します。つまり、Y:から$dstDisk、つまりZ:ジャンクションを含み、8.3互換性に関するメッセージを無視します(-s:8)。

コマンドラインからの正確なバックアップには、このツールをお勧めします。

2
larkee

Compressed属性のコピーをサポートするrobocopyのバージョンを知りません。 (Windows Server 2012 R2に付属しているバージョンでテストしたところ、Windows 7ラップトップよりも新しいバージョンにこの動作が含まれていないことを確認しました。)

robocopyを使用する場合は、圧縮が必要なファイル/フォルダーを圧縮するために、その背後でフォローアップするためのスクリプトを作成する必要があります。 (robocopy/iaコマンドライン引数を使用して最初に圧縮ファイルのみをコピーし、コピーしたすべてのファイルを圧縮してから、/xa引数を使用してrobocopyを再度実行し、非圧縮ファイルをコピーするスクリプトを想像できます。 )

ディスクの「正確な構造」をコピーするという点では、セクターごとのコピーが最適です。 dd のようなツールを使用すると、ボリュームのセクターごとのコピーを実行できます。

「正確な構造」の定義がそれほど厳密ではなく、ディレクトリ構造、ファイルデータ、属性(圧縮を含む)、およびACLの正確なコピーを探しているだけの場合は、ディスクイメージングツールを検討します。 Microsoftの ImageX ツールはその一例です。 (ImageXは、さまざまなパッケージ内でMicrosoftから入手できます。Windows自動インストールキットにはコピーが含まれており、Windows展開サービスにも含まれていると思います)。サードパーティのツールもたくさんあります。

2
Evan Anderson