2

Я купил твердотельный накопитель емкостью 250 ГБ, запустил на нем полный формат, установил на нем Win10, клонировал весь диск с помощью команды dd в терминале Linux, чтобы создать резервную копию на случай, если мой SSD когда-нибудь сломается, так что теперь у меня есть диск файл изображения размером ок. 250 ГБ, что выглядит так:

| --- some data (approx. 17 GB) --- | ------ no data at all, only nulls ------ |

Я начал сжимать файл с помощью zip и ожидал, что zip будет достаточно интеллектуальным, чтобы дать мне .zip ок. 17 ГБ, но после нескольких часов архивирования и того, что мой .zip уже превысил 50 ГБ, я прервал процесс и пришел сюда, чтобы спросить вас, есть ли другие возможные способы сделать это.

2 ответа2

2

Вы уверены, что пустая часть диска содержит только нули? Там, вероятно, много удаленного мусора. Материал в дистрибутиве, без сомнения, хранился сжатым. Он был распакован для установки, а затем файлы были скопированы в их целевые объекты, затем весь временный мусор был удален, когда это было сделано. Таким образом, я ожидаю найти удаленные данные, по крайней мере, такие же, как размер установки - пространство, занимаемое файлами подкачки.

Кроме того, когда дело доходит до сильно сжимаемых данных, я обнаружил, что в очень плохих случаях сжатие архива будет еще больше сокращать его. Большинство компрессоров имеют максимальную длину элемента словаря, когда избыточность в вашем файле значительно превышает это (как если бы ваша проблема заключалась в том, о чем вы думали), вы в конечном итоге запускаете код для сжатой записи словаря. (И обратите внимание, что я также увидел небольшое преимущество от сжатия архива, который содержал огромное количество маленьких файлов - файлы больше не сжимали, а служебные данные.)

При этом, что вам нужно сделать, это скопировать ваш раздел, затем сжать скопированный раздел настолько маленьким, насколько вы можете (обнулить ваши файлы подкачки и гибернации, если можете), а затем сделать то, что вы сделали с результатом.

0

Вы не можете предполагать, что любое пустое место на диске содержит только 0 или полностью согласованные данные. Удаление файла не записывает автоматически нули в область диска, которую он занимал, оно просто помечает любые указатели на эти данные как недействительные и ожидает, что что-то еще потребуется для записи данных в это пространство. В то же время, какие бы данные ни были, технически все еще есть, но получить их сложнее.

Вы также не можете предполагать, что новый диск также будет обнулен, вполне возможно, что данные являются абсолютно случайным мусором из производственных и тестовых процедур.

Если вам абсолютно необходимо, чтобы образ диска был сгенерирован таким образом, то вам сначала нужно заполнить это пустое пространство согласованными данными.

В Windows вы можете загрузить инструмент под названием sdelete, который имеет возможность правильно заполнить диск нулями : sdelete -z

Это займет невероятно много времени на больших дисках и может занять часы или даже дни в зависимости от размера вашего диска.

Более разумный вариант - использовать инструменты, которые понимают формат диска и хранят только те данные, которые действительно должны быть сохранены для начала, и игнорируют "пустое" пространство на диске.

  • Macrium Reflect
  • Clonezilla
  • Acronis Trueimage

Это несколько, но есть намного больше программ для создания образов дисков.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .