web-dev-qa-db-ja.com

Windowsを使用するNTFSでスパースファイルをコピー|移動する

Windowsに含まれているネイティブツールを使用してスパース性を維持しながら、スパースファイルをあるNTFSボリュームから別のNTFSボリュームにコピーまたは移動するにはどうすればよいですか?ネイティブツールでこれを行う方法がない場合、これを行う信頼できるベンダーからの無料のアプリケーションは何ですか?確かに、これを行うコマンドプロンプトコマンドまたはPowerShellコマンドがあります。

20GiBのディスク容量を使用している250GiBを表すファイルがあり、移動したときに20GiBのみを使用し続けたいと思います。ありがとう。

7

標準のWindowsツールでは実行できません。

しかし、ユーティリティがあります。 http://www.flexhex.com/docs/articles/sparse-files.phtml に移動し、sparse.Zipをダウンロードして解凍します。

次に、コマンドラインから実行します。

cs.exe c:\src.dat d:\dest.dat

ファイルはまばらさを維持してコピーされます。

3
Yahor

Cygwin を使用し、sparseオプションを使用してファイルシステムをマウントします。次に、cpdd conv=sparsersync -SなどのスパースファイルをサポートするUnixコマンドは、ファイルをスパースファイルとして正しく作成またはコピーします。当然のことながら、単純な出力リダイレクトではスパースファイルは作成されません。

次のデモを参照してください。

$ mount -o sparse D: /tmp/mnt
mount: warning - /tmp/mnt does not exist.
$ cd /tmp/mnt
$ dd conv=sparse if=/dev/zero seek=10000 of=sparse count=1
1+0 records in
1+0 records out
512 bytes copied, 0.0101909 s, 50.2 kB/s
$ ls -lh sparse
-rw-rw-r--+ 1 dds None 4.9M Sep  5 13:05 sparse
$ du -h sparse
0       sparse
$ cp sparse sparse-cp
$ dd conv=sparse if=sparse of=sparse-dd
10001+0 records in
10001+0 records out
5120512 bytes (5.1 MB, 4.9 MiB) copied, 0.0500354 s, 102 MB/s
$ rsync -S sparse sparse-rsync
$ cat sparse >sparse-fail-cat
$ cat sparse | dd conv=sparse of=sparse-cat-dd
$ ls -lh sparse*
-rw-rw-r--+ 1 dds None 4.9M Sep  5 13:05 sparse
-rw-rw-r--+ 1 dds None 4.9M Sep  5 13:15 sparse-cat-dd
-rw-rw-r--+ 1 dds None 4.9M Sep  5 13:06 sparse-cp
-rw-rw-r--+ 1 dds None 4.9M Sep  5 13:11 sparse-dd
-rw-rw-r--+ 1 dds None 4.9M Sep  5 13:19 sparse-fail-cat
----rw----+ 1 dds None 4.9M Sep  5 13:06 sparse-rsync
$ du -h sparse*
0       sparse
0       sparse-cat-dd
0       sparse-cp
0       sparse-dd
4.9M    sparse-fail-cat
0       sparse-rsync
2

Windows側では、これを行うために WinHex を使用することになり、むしろそのフォレンジック兄弟であるX-WaysForensicsを使用しました。 GUIには、ファイルをまばらにコピーするオプションがメニューにあります。

0