Объяснение проблемы
Я храню образы дисков Windows, созданные с помощью wbadmin, на диске NTFS, и я обнаружил, что сжатие, а затем сжатие NTFS обеспечивает сохранение пространства в 1,5–2 раза, при этом обеспечивая полную доступность для восстановления.
Но в процессе сжатия файл становится безумно фрагментированным, обычно более 100 000 фрагментов для образа системного диска.
При такой фрагментации дефрагментация занимает очень много времени (несколько часов на изображение). Некоторые дефрагментаторы даже не могут с этим справиться, они просто пропускают файл или вылетают.
Я думаю, что источником проблемы является то, что файл сжат кусками, которые сохраняются отдельно.
Вопрос
Есть ли хороший (быстрый) способ дефрагментировать файл изображения, но сохранить его сжатым (или сжать, не вызывая чрезмерной фрагментации)? Может быть, какая-то утилита для быстрой дефрагментации файла на непрерывное свободное пространство или какая-то утилита (или метод) для создания не фрагментированного сжатого файла из существующего несжатого?
Замечания на основе комментариев / ответов:
- Внешние (для ядра Windows) инструменты сжатия не подходят в моем случае. Они не могут распаковать файл «на лету» (для распаковки файла 10 Гб мне нужно 10 Гб свободного места, что не всегда под рукой; также, это занимает много времени); они не доступны, когда система загружается с DVD для восстановления (это именно то, когда мне нужно изображение доступно). Пожалуйста, прекратите предлагать их, если они не создадут транзитивно сжатый файл на NTFS, например
compact.exe
. - Сжатие NTFS не так уж плохо для системных образов. Это довольно хорошо, за исключением фрагментации. Кроме того, распаковка не занимает много времени ЦП, тем не менее, уменьшая узкие места ввода-вывода, что в соответствующих случаях повышает производительность (не фрагментированный сжатый файл со значительным соотношением).
- Утилиты дефрагментации дефрагментируют файлы, не обращая внимания на их сжатие. Единственная проблема - это количество фрагментов, что приводит к сбою дефрагментации, независимо от того, сжатый файл или нет. Если количество фрагментов невелико (около 10000 уже в порядке), сжатый файл будет дефрагментирован и останется сжатым и неповрежденным.
Степень сжатия NTFS может быть хорошей, в зависимости от файлов. Системные изображения обычно сжимаются не более чем на 70% от их исходного размера.
Пара скриншотов для тех, кто не верит, но, конечно, вы можете сделать свои собственные тесты.
Я действительно делал восстановление из NTFS-сжатых образов, как фрагментированных, так и не фрагментированных, это работает, пожалуйста, либо доверяйте мне, либо просто проверьте это сами. rem: как я обнаружил около года назад, он не работает в Windows 8.1. Это работает в Windows 7, 8 и 10.
Ожидаемый ответ:
рабочий метод или программа для Windows:
сжать файл (со сжатием NTFS и сохранить его доступным для восстановления Windows) без создания большого количества фрагментов (возможно, в другой раздел или создать сжатую копию; на жестком диске он должен быть как минимум в 3 раза быстрее, чем
compact
+defrag
),или
быстро (по крайней мере, в 3 раза быстрее, чем дефрагментация Windows на жестком диске) дефрагментировать разрушенно фрагментированный файл, например, содержащий более 100K фрагментов (после дефрагментации он должен оставаться сжатым).