Сжатие Windows: файлы, папки и диски. Ошибки сжатия.

18.11.2016 5 Автор GodKnowses

Во времена моей юности сжатие являлось чуть ли не самой обращаемой к ней функцией – диски по 7 – 20 гБ никак не могли вместить в себя всю нужную информацию. И именно для этого сжатие и существует: освободить место на жёстком диске. Когда вы сжимаете файл или папку, данные, используя специальный алгоритм Windows, перезаписываются и после операции занимают меньшее количество кластеров. При обращении к файлу в следующем сеансе система производит обратный процесс, перед тем как вы сможете увидеть хоть бит нужной информации. А на это, как понимаете, нужно время и ресурсы системы.

Функция сжатия файлов с момента появления Windows находилась в составе утилиты очистки дисков. Но со времён Windows 7 перекочевала в отдельную струю: разработчики посчитали, что проблем с нехваткой пространства компьютера стало меньше, да и сжатие огромного количества файлов сильно замедляет функционал Windows: при активации этой функции система сжимала все файлы подряд, а это значит там могли оказаться и жизненно важные параметры, к которым обращение во время текущего сеанса сиюминутно… Сейчас освободить пространство легко с помощью других утилит, которые работают в другом направлении, отыскивая мусорные файлы и/или проводя дефрагментацию. В конце концов, любая программа-архиватор умеет гораздо больше, чем описываемая функция. Однако она есть, знакомимся с ней.

Кстати

Функция и подход к сжатию в Windows 10 серьёзно изменился и, кажется (пока, по крайней мере) в куда более лучшую сторону. Но об этом отдельной статьёй.

Пару абзацев теории…

Файловая система NTFS использует параметр “единица сжатия” с целью определить степень разбиения, гранулярности потока байтового диапазона, а также их выравнивание или группирование по блокам. Размер этой самой единицы зависит только от размера кластера в системе NTFS. До последнего момента для расчёта размера кластера используется такая таблица:

таблица размеров кластеров NTFSКак видите, начиная с определённого момента начинаются исключения: “родное” NTFS-сжатие перестаёт работать на томах и разделах, размер кластера которых выбран более чем 4 КБ. Для размеров от 8 КБ начинает использоваться сжатие для разреженных файлов. Такие файлы – очередной конёк файловой системы NTFS, который позволяет создавать приложениям файлы очень больших размеров, которые, как это ни странно звучит, могут превышать размер родительской директории. Это происходит потому, что львиная доля содержимого таких файлов (а порой и полностью) заполняется нолями или нолевыми цепочками. При этом файловая система логические кластеры таким цепочкам не предоставляет. А NTFS создаёт лишь “указатель места заполнения виртуального количества кластеров”.  Причём здесь сжатие? NTFS, работая над сжатием файла или папки, разделяет поток данных по тому же принципу. При этом процесс сжатия для каждого файла индивидуален; степень сжатия и последующие с файлом операции очень зависят от его реального размера.

Как проверить какие файлы и папки сжаты?

Сжатие файлов и папок

Функция доступна из контекстного меню по нажатии правой мышкой по нужному файлу/папке. Она здесь:

сжатие

Активируем функцию, сжатие началось. После этого можно будет заставить Windows подсвечивать сжатые файлы. Это же легко проделать с целым диском. Найдём в Windows Explorer список томов и также вызовем контекстное меню правой мышкой:

сжатие локального диска

Все варианты сжать и отменить сжатие для файлов и папок

Сжатие дисков и файлов. О чём нужно знать?

  • Сжатие доступно ТОЛЬКО для файловой системы NTFS
  • Если файл перемещается из обычной папки в сжатую папку ДРУГОГО ДИСКА, он также проходит процедуру сжатия
  • Если файл перемещается из обычной папки в сжатую папку ТОГО ЖЕ ДИСКА, сжатие аннулируется и файл/папка возвращаются к первоначальному своему размеру
  • Сжатые с помощью NTFS компрессии файлы зашифровать невозможно: дублирование процедур в любом виде в Windows исключено, и потому…
  • Сжать уже сжатый файл тоже не получится )))
  • Не путайте с архивацией (в zip, rar и т.п.)

Сжатие. Чего делать нельзя.

Как вы уже поняли, сжатие Windows – это не та функция, с которой стоит баловаться. Однако понимание функции сжатия (хотя бы в пределах абзацев вверху статьи) может помочь вам определить корень появившихся ошибок. Самые типичные из них, и в этом может быть вина именно функции сжатия:

  • Недостаточно места на диске. Эта ошибка может вас подстеречь именно в момент копирования файла/папки или на этапе создания резервной копии
  • Ошибка копирования файлов больших размеров в сжатую папку
  • Сжатые файлы виртуальных дисков VHD снижают производительность виртуальной машины

Не сжимайте диск с установленной на ней операционной системой! Системный диск С: подвергать этой процедуре нельзя. Чаще всего от этого страдают драйверы устройств, отказывая в запуске целому набору устройств, только что, казалось бы, работавших. После окончания процедуры сжатия операционная система в новом сеансе, скорее всего, уже не загрузится. Но если – не знаю, что вас заставило – вы на это решитесь, не трогайте хотя бы корневые директории.

После сжатия система не загружается…

Если я с советами опоздал, и вы уже столкнулись с отказом запуска системы после сжатия, знайте, что сжатыми оказались те немногие, но архиважные для загрузки системы файлы. А во время запуска системы процедура “де-сжатия” не предусмотрена. Как итог: система не запускается или идёт постоянный перезапуск Windows. Возможно появление ошибок типа

“Какой-то там файл” is compressed

Press Ctrl+Alt+Del to restart

Самый простой способ, который не всегда, к сожалению, работает, это загрузочный диск с Windows. Если его под рукой нет, его вполне легально можно скачать из сети (начиная с версии 7 и позднее), имея рабочий компьютер и выход в сеть. Вот утилита, которая вам в этом поможет (а вот здесь я восстанавливаю Windows после повреждения с её помощью):

Утилита для скачивания образа Windows

Я в таких случаях всегда пользуюсь универсальным вариантом – это внешний бокс с установленным внутри жёстким диском, на котором всегда наготове целая куча образов загрузочных дисков Windows любой модели и разрядности: от Windows XP до Win10 32-х и 64-х. И не парюсь по поводу бесчисленных дисков и флешек.

Установите в BIOS загрузку с дисковода с диском Windows внутри:

установка операционной системы Windows

выберите язык и в окне установки выберите пункт Восстановление системы:

восстановить после сжатия

Утилита найдёт вашу систему, продолжите кнопкой Загрузить драйверы:

параметры восстановления системы windows

Появится окно с выбором места хранения драйверов и по нажатии кнопки ОК появится Проводник Windows – он-то нам и нужен:

provodnik-windows-iz-zagruzochnogo-diska

Выберите Компьютер в любом расположении ярлыка окна и появится знакомый вам список видимых системой томов. Нам остаётся снять галочку у атрибута Сжимать этот диск для экономии места нужного диска (он системный) из контекстного меню, проводя декомпрессию:

снять атрибут сжатие

Перезагружаемся (по необходимости несколько раз) и проверяем, пошла ли загрузка. Если нет, осталось вручную восстановить загрузочную запись.

Успехов