копировать | перемещать разреженные файлы в NTFS в Windows

2810
Michael Yasumoto

Как я могу скопировать или переместить разреженный файл с одного тома NTFS на другой том NTFS, сохраняя разреженность с помощью встроенных инструментов, включенных в Windows? Если нет способа сделать это с помощью встроенных инструментов, то что такое бесплатное приложение от надежного поставщика, которое будет делать это? Конечно, есть команда командной строки или команда powershell, которая сделает это.

У меня есть файл размером 250 ГБ, занимающий 20 ГБ дискового пространства, и я хотел бы, чтобы он продолжал занимать только 20 ГБ при его перемещении. Благодарю.

5
Что это за редкий файл? Сможете ли вы использовать утилиту, чтобы уменьшить ее после ее перемещения? Если это образ виртуальной машины, должно быть хорошо скопировать и сохранить только то место, которое уже выделено. kobaltz 10 лет назад 0
Это разреженный файл на уровне файловой системы, как в NTFS-файле с установленным расширенным атрибутом 'P'. Это не разреженный файл прикладного уровня, который добавляет разреженную поддержку (и накладные расходы) независимо от того, поддерживает ли файловая система разреженность или нет, например, для файла vmdk. Вы предлагаете мне передать 250 ГБ, затем потратить процессор для его сжатия, а затем распаковать обратно в файл 250 ГБ всякий раз, когда я хочу получить доступ к его содержимому. Я бы предпочел переместить небольшой файл размером 20 ГБ, чтобы он оставался размером 20 ГБ и оставался доступным для меня в месте назначения. Гораздо меньше использования сети, процессора и хранилища. Michael Yasumoto 10 лет назад 0

3 ответа на вопрос

1
Yahor

You cannot do it with standard Windows tools.

But there is an utility. Go to http://www.flexhex.com/docs/articles/sparse-files.phtml, download and unpack sparse.zip.

Then run from from the command line:

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

The file will be copied preserving sparseness.

0
Michael Yasumoto

Со стороны Windows я в конечном итоге использовал WinHex для этого, а точнее, своего брата-криминалиста X-Ways Forensics. Графический интерфейс имеет возможность копировать файлы редко в меню.

0
Diomidis Spinellis

Используйте Cygwin и смонтируйте файловую систему с sparseопцией. Тогда команды Unix, которые поддерживают разреженные файлы, такие как cp, dd conv=sparseи rsync -S, правильно создадут или скопируют файл как разреженный. Как и следовало ожидать, простое перенаправление вывода не создаст разреженный файл.

Смотрите следующую демонстрацию. $ 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