Compact OS: как сжать системные файлы Windows 10 и сэкономить несколько гигабайт
SSD уже стали обычным делом, и борьба за скорость загрузки отошла на второй план, а на первый вышла схватка за след системы на диске. Microsoft представила сжатие системных файлов в Windows 8.1 Update, и в Windows 10 идея получила интересное развитие.
В прошлой статье я ведь не случайно рассказывал, как правильно измерить место на диске ;)
[+] Сегодня в большой программеИстория вопроса
Давайте посмотрим, что происходило с размером Windows в последнее десятилетие.
Windows VistaВ 2006 году Windows переходит на новую компонентную систему обслуживания, а развертывание ОС происходит путем применения к диску файлов из образа install.wim.
WIM — новый формат, поддерживающий несжатое состояние и два типа сжатия. Благодаря файловому формату, систему можно распаковать в папку, применить обновления и захватить обратно в сжатый WIM-образ.
Windows 7Система уверенно набирает популярность, и папка WinSxS становится объектом пристального внимания пограничных служб диска Цэ. У них обретают актуальность различные средства кастрации, но в массы это варварство не идет.
Впрочем, появляются и более осмысленные руководства, освобождающие место на диске средствами ОС за счет сжатия:
- всего диска путем установки флажка в его свойствах
- только системных файлов утилитой compact.exe
В усилиях энтузиастов все неплохо кроме одного – работа сжатой Windows не поддерживается.
Сама Microsoft рассуждает на тему производительности сжатия NTFS в KB251186, относящейся к диапазону Windows 2000 — Windows 7. А в KB307987 замораживает на отметке Windows XP явные инструкции по установке сжимающего флажка в свойствах диска. Я также помню, что Джозеф Конвей, сотрудник Microsoft и источник ТЗ по CBS, писал в форуме TechNet или своем блоге, что сжатие папки Windows не поддерживается.
Windows 8 — сжатие NTFSWindows теперь должна работать и на планшетах, а у них с дисковым пространством негусто. В Windows 8 под пресс сжатия NTFS ложатся отключенные компоненты, манифесты и предыдущие версии системных файлов, замененные обновлениями Windows Update, но необходимые для отката (остальные удаляются).
В Windows 8.1 добавляется /ResetBase, но он фактически удаляет уже сжатое. Внезапно, уже после выхода Windows 8.1 RTM, Microsoft привносит в утилиту очистки диска Windows 7 возможности удаления старых версий файлов, но без /ResetBase и без сжатия.
Windows 8.1 — разностное сжатиеВ первой статье про очистку папки WinSxS я упоминаю разностное сжатие (delta compression), но технические подробности остаются тайной за семью печатями. Спустя полгода в блоге Ask the Core Team появляется серия статей, которая наконец-то срывает покровы с изменений в системе обслуживания Windows 8.1.
Вместо отдельного рассказа я ограничился обновлением уже опубликованной записи блога (анонса не было, так что рекомендую к прочтению).
Внедрив разностное сжатие в Windows 8.1, Microsoft переносит его задним числом в Windows 8, выпуская обновление стека обслуживания KB2821895.
Заметьте, что текущие версии файлов ОС остаются в несжатом виде, т.е. Microsoft все еще не поддерживает сжатие Windows официально.
Windows 8.1 Update — WimBootНаконец, в Windows 8.1 Update на свет появляется WimBoot. Эта технология, видимо, родилась в рамках программы под кодовым названием «усилие 116» — 1GB RAM + 16GB SSD. На столь крохотном диске планшета наряду с ОС приходилось размещать образ восстановления, что не оставляло места под пользовательские файлы.
В конфигурации WimBoot ОС запускается и работает, используя файлы из сжатого образа восстановления, чему способствует небольшой набор служебных файлов-указателей на разделе с Windows.
Таким образом, в Windows 8.1 Update впервые стала официально поддерживаться работа сжатой Windows.
Сжатие Windows 10 (Compact OS)
Задолго до официального выхода Windows 10 в блоге Windows появился на редкость расплывчатый пост об оптимизации дискового пространства новой ОС. В нем декларировались интересные улучшения, но технические подробности отсутствовали. Их и сейчас немного, впрочем.
На картинке два направления экономии:
- 4-12GB благодаря отказу от образа восстановления (на практике и больше бывает)
- 2.6GB за счет сжатия (в х86 – 1.5GB)
Про восстановление будет следующая статья серии, а сейчас речь пойдет о механизме сжатия системных файлов под названием Compact OS .
Как выяснить статус сжатияWindows может автоматически применять сжатие, поэтому для начала проверьте текущее состояние системы командой:
Наряду со статусом, в результатах также отображается рекомендация – сжимать или не сжимать.
Как выполнить сжатиеПерейти к работе с компактной ОС можно массой различных способов.
В работающей системеПожалуйста, сначала проверьте текущее состояние↑ и, если ОС не сжата, измерьте дисковое пространство и сообщите в комментариях подробности 1
В командной строке от имени администратора:
Заметьте, что точкой входа в новую технологию стала хорошо знакомая утилита compact.exe! Выполнение команды займет некоторое время.
Отмена сжатия реализована так же просто:
В момент установки или обновленияНедавно я рассказывал про новый ключ программы установки /Compat для проверки ПК на совместимость с Windows 10. Еще одной новинкой стал ключ /Compact OS:
С помощью файла ответовИ у файла ответов есть новый параметр Compact.
В MSDN есть интересное примечание, что установку необходимо запускать из среды Windows 10 или ее версии Windows PE (в более старые PE можно вручную добавить драйвер). Вероятно, это также применимо к ключу /Compact OS программы установки.
В момент применения образа в среде Windows PEУ DISM тоже появился новый ключ /Compact.
В MDT и ConfigMgr Как работает и сколько экономит сжатиеПодробной документации я не нашел, поэтому свожу в одну статью все известные мне сведения на данный момент.
Какое сжатие применяетсяДля компрессии отдельных файлов утилита compact.exe может использовать разные алгоритмы сжатия (по умолчанию — 4K XPRESS, см. справку к утилите). Такие файлы получают атрибут «Сжатый» и отображаются в проводнике синим цветом, как и в случае сжатия NTFS (алгоритм LZNT1). Можно подумать, что при сжатии ОС утилита точно так же проходит по всем системным файлам, которые имеет смысл сжимать. Однако Compact OS работает иначе.
Compact OS – это эволюция технологии WimBoot. Подлежащие оптимизации файлы помещаются в скрытый контейнер (фактически WIM-файл) и сжимаются.
С точки зрения компрессии, Compact OS аналогична образу WimBoot или любому образу WIM с обычным сжатием, поскольку во всех этих случаях применяется алгоритм 4K XPRESS Huffman (для максимального сжатия WIM задействуют LZX).
Поэтому, в отличие от сжатия NTFS, файлы Compact OS не получают атрибут «Сжатый» и не помечаются другим цветом в проводнике или сторонних программах. Любопытно, что утилита TreeSize все-таки подсвечивает синим папки, в которых файлы подверглись сжатию.
Что именно сжимаетсяОтчет о сжатии выглядит примерно так.
Сжимаются файлы в папках Windows и Program Files, а также магазинные приложения. Системные файлы обеспечивают львиную долю сэкономленного места. Это хорошо видно из отчета DISM о хранилище компонентов.
Ниже сведения из чистой установке Windows 10 Pro x64 RU. Напоминаю, что реальный размер хранилища складывается из первых трех строк таблицы.
Аспект До сжатия После сжатия Экономия Общие с Windows файлы 5.24GB 3.12GB 2.12GB (40%) Резервные копии Отключенные компоненты 1.61GB 1.02GB 0.59GB (37%) Кэш и временные файлы 0.19GB 0.19GB — Реальный размер хранилища 7.05GB 4.34GB 2.71GB (38%) Занятое место на всем диске 13.50GB 10.65GB 2.85GB (21%)
Общая экономия в гигабайтах вполне совпадает с цифрами из официального блога, но еще лучше она выглядит в процентном отношении.
Сравнение подходов к уменьшению следа системы на дискеТехнология WimBoot позволяла без проблем установить Windows на планшет с 16GB, и у пользователя даже оставалось место для файлов. Однако была одна неприятная проблема. С каждой порцией установленных обновлений образ WimBoot становился все дальше и дальше от текущего состояния операционной системы, постепенно превращаясь в мертвый груз.
Compact OS предлагает более сбалансированный подход к экономии дискового пространства.