Андрей Смирнов
Время чтения: ~13 мин.
Просмотров: 237

Как освободить место на системном диске Windows 10 с помощью Compact OS

windows-10-compact-os.pngВ Windows 10 появилось сразу несколько усовершенствований, касающихся экономии места на жестком диске. Одна из них — возможность сжать системные файлы, включая предустановленные приложения с помощью функции Compact OS.

Задействовав Compact OS, вы можете сжать Windows 10 (двоичные файлы системы и приложений), освободив тем самым чуть более 2-х гигабайт места на системном диске для 64-разрядных систем и 1.5 Гб для 32-разрядных версий. Функция работает для компьютеров с UEFI и обычным БИОС.

Проверка статуса Compact OS

Windows 10 может включать сжатие самостоятельно (или же оно может быть включено в предустановленной системе производителем). Проверить, включено ли сжатие Compact OS вы можете с помощью командной строки.

Запустите командную строку (правый клик по кнопке «Пуск», выбрать нужный пункт в меню) и введите следующую команду: compact /compactos:query после чего нажмите Enter.

windows-10-compact-os-status.png

В результате в окне командной строки вы получите сообщение либо о том, что «Система не находится в состоянии сжатия, поскольку оно не является полезным для этой системы», либо о том, что «система находится в состоянии сжатия». В первом случае вы можете включить сжатие вручную. На скриншоте — свободное место на диске до сжатия.

system-disk-before-compression.png

Отмечу, что по официальной информации Microsoft, сжатие является «полезным» с точки зрения системы для компьютеров с достаточным количеством оперативной памяти и производительным процессором. Однако, у меня с 16 Гб RAM и Core i7-4770 в ответе на команду было именно первое сообщение.

Включение сжатия ОС в Windows 10 (и отключение)

Для того, чтобы включить сжатие Compact OS в Windows 10, в командной строке, запущенной от имени администратора введите команду: compact /compactos:always и нажмите Enter.

compact-os-enable-windows-10.png

Начнется процесс сжатия файлов операционной системы и встроенных приложений, который может занять довольно-таки продолжительное время (у меня на абсолютно чистой системе с SSD заняло около 10 минут, однако в случае HDD время может быть совсем другим). На изображении ниже — размер свободного места на системном диске после сжатия.

system-disk-after-compression.png

Для отключения сжатия тем же способом используйте команду compact /compactos:never

В случае если вас интересуют возможности установки Windows 10 сразу в сжатом виде, то рекомендую ознакомиться с официальной инструкцией Microsoft на эту тему.

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

SSD уже стали обычным делом, и борьба за скорость загрузки отошла на второй план, а на первый вышла схватка за след системы на диске. Microsoft представила сжатие системных файлов в Windows 8.1 Update, и в Windows 10 идея получила интересное развитие.

compact-os-005.png

В прошлой статье я ведь не случайно рассказывал, как правильно измерить место на диске 😉

[+] Сегодня в большой программе

Давайте посмотрим, что происходило с размером Windows в последнее десятилетие.

В 2006 году Windows переходит на новую компонентную систему обслуживания, а развертывание ОС происходит путем применения к диску файлов из образа install.wim.

compact-os-001.pngWIM — новый формат, поддерживающий несжатое состояние и два типа сжатия. Благодаря файловому формату, систему можно распаковать в папку, применить обновления и захватить обратно в сжатый WIM-образ.

Система уверенно набирает популярность, и папка WinSxS становится объектом пристального внимания пограничных служб диска Цэ. У них обретают актуальность различные средства кастрации, но в массы это варварство не идет.

compact-os-002.jpg

Впрочем, появляются и более осмысленные руководства, освобождающие место на диске средствами ОС за счет сжатия:

  • всего диска путем установки флажка в его свойствах
  • только системных файлов утилитой compact.exe

В усилиях энтузиастов все неплохо кроме одного – работа сжатой Windows не поддерживается.

Сама Microsoft рассуждает на тему производительности сжатия NTFS в KB251186, относящейся к диапазону Windows 2000 — Windows 7. А в KB307987 замораживает на отметке Windows XP явные инструкции по установке сжимающего флажка в свойствах диска. Я также помню, что Джозеф Конвей, сотрудник Microsoft и источник ТЗ по CBS, писал в форуме TechNet или своем блоге, что сжатие папки Windows не поддерживается.

Windows теперь должна работать и на планшетах, а у них с дисковым пространством негусто.  В Windows 8 под пресс сжатия NTFS ложатся отключенные компоненты, манифесты и предыдущие версии системных файлов, замененные обновлениями Windows Update, но необходимые для отката (остальные удаляются).

how-winsxs-optimization-works05_mini_oszone.pngУвеличить рисунок

В Windows 8.1 добавляется /ResetBase, но он фактически удаляет уже сжатое. Внезапно, уже после выхода Windows 8.1 RTM, Microsoft привносит в утилиту очистки диска Windows 7 возможности удаления старых версий файлов, но без /ResetBase и без сжатия.

В первой статье про очистку папки WinSxS я упоминаю разностное сжатие (delta compression), но технические подробности остаются тайной за семью печатями. Спустя полгода в блоге Ask the Core Team появляется серия статей, которая наконец-то срывает покровы с изменений в системе обслуживания Windows 8.1.

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

Внедрив разностное сжатие в Windows 8.1, Microsoft переносит его задним числом в Windows 8, выпуская обновление стека обслуживания KB2821895.

Заметьте, что текущие версии файлов ОС остаются в несжатом виде, т.е. Microsoft все еще не поддерживает сжатие Windows официально.

Наконец, в Windows 8.1 Update на свет появляется WimBoot. Эта технология, видимо, родилась в рамках программы под кодовым названием «усилие 116» — 1GB RAM + 16GB SSD. На столь крохотном диске планшета наряду с ОС приходилось размещать образ восстановления, что не оставляло места под пользовательские файлы.

В конфигурации WimBoot ОС запускается и работает, используя файлы из сжатого образа восстановления, чему способствует небольшой набор служебных файлов-указателей на разделе с Windows.

Таким образом, в Windows 8.1 Update впервые стала официально поддерживаться работа сжатой Windows.

Задолго до официального выхода Windows 10 в блоге Windows появился на редкость расплывчатый пост об оптимизации дискового пространства новой ОС. В нем декларировались интересные улучшения, но технические подробности отсутствовали. Их и сейчас немного, впрочем.

compact-os-003.png

На картинке два направления экономии:

  • 4-12GB благодаря отказу от образа восстановления (на практике и больше бывает)
  • 2.6GB за счет сжатия (в х86 – 1.5GB)

Про восстановление будет следующая статья серии, а сейчас речь пойдет о механизме сжатия системных файлов под названием Compact OS .

Windows может автоматически применять сжатие, поэтому для начала проверьте текущее состояние системы командой:

compact.exe /CompactOS:query

Наряду со статусом, в результатах также отображается рекомендация – сжимать или не сжимать.

Перейти к работе с компактной ОС можно массой различных способов.

Пожалуйста, сначала проверьте текущее состояние↑ и, если ОС не сжата, измерьте дисковое пространство и сообщите в комментариях подробности1

В командной строке от имени администратора:

compact.exe /CompactOS:always

Заметьте, что точкой входа в новую технологию стала хорошо знакомая утилита compact.exe! Выполнение команды займет некоторое время.

Отмена сжатия реализована так же просто:

compact.exe /CompactOS:never

Недавно я рассказывал про новый ключ программы установки /Compat для проверки ПК на совместимость с Windows 10. Еще одной новинкой стал ключ /Compact OS:

setup /CompactOS enable

И у файла ответов есть новый параметр Compact.

Microsoft-Windows-SetupImageInstallOSImageCompact

В MSDN есть интересное примечание, что установку необходимо запускать из среды Windows 10 или ее версии Windows PE (в более старые PE можно вручную добавить драйвер). Вероятно, это также применимо к ключу /Compact OS программы установки.

У DISM тоже появился новый ключ /Compact.

DISM.EXE /Apply-Image /ImageFile:INSTALL.WIM /Index:1 /ApplyDir:C: /Compact:ON

Смотрите тут.

Подробной документации я не нашел, поэтому свожу в одну статью все известные мне сведения на данный момент.

Для компрессии отдельных файлов утилита 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 все-таки подсвечивает синим папки, в которых файлы подверглись сжатию.

Отчет о сжатии выглядит примерно так.

Completed Compressing OS binaries.  37953 files within 17349 directories were compressed.  6 670 708 067 total bytes of data are stored in 3 953 427 362 bytes.  The compression ratio is 1,7 to 1.

Сжимаются файлы в папках Windows и Program Files, а также магазинные приложения. Системные файлы обеспечивают львиную долю сэкономленного места. Это хорошо видно из отчета DISM о хранилище компонентов.

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

Ниже сведения из чистой установке 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 предлагает более сбалансированный подход к экономии дискового пространства.

Обычная установка

</th>

WimBoot

</th>

Compact OS

</th></thead></tr>

Алгоритм сжатия

</td>

Нет

</td>

4K XPRESS Huffman

</td>

4K XPRESS Huffman

</td></tr>

Исходная экономия дискового пространства

</td>

Нет

</td>

Высокая

</td>

Умеренная

</td></tr>

Увеличение размера ОС со временем

</td>

Минимальное

</td>

Значительное

</td>

Минимальное

</td></tr></tbody></table>

Я постарался предвосхитить ваши основные вопросы.

Поддерживаются устройства с UEFI и BIOS.

Точно неизвестно. В блоге Windows на первые два места поставили объем RAM и скорость CPU. Емкость диска не упоминали, но очевидно, что технология ориентирована в первую очередь на маленькие диски.

compact-os-004.png

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

Upd. 19-Nov-15. Отчеты читателей не опровергли мое предположение, но и не позволили вывести некую формулу зависимости сжатия от размера жесткого диска. Однако читатель Максим Донников установил, что если система не использует сжатие, но сообщает, что может перейти в сжатое состояние при необходимости, то компрессия автоматически выполняется в фоне спустя некоторое время после того, как на диске образуется недостаток свободного пространства.

В блоге Windows расплывчатые формулировки сводятся к «все ОК», но они относятся к ситуациям, когда сжатие без вашего вмешательства реализует изготовитель ПК или сама Windows.

Я не рекомендую применять Compact OS:

  • Жестких дисках. Целевым устройством Compact OS является ПК с маленьким твердотельным накопителем. На современных жестких дисках нет проблем со свободным пространством, если только не стрелять себе в ногу. WimBoot в Windows 8.1 не поддерживалась на жестких дисках именно ввиду их недостаточной производительности. Официально Compact OS в Windows 10 годится для любых накопителей, но Microsoft советует применять ее только на SSD. У них высокая скорость последовательных трансферов, поэтому влияние на скорость запуска ОС и программ минимально.
  • ПК с зашифрованным системным диском (BitLocker). Шифрование само по себе снижает производительность, и дополнительное сжатие может только ухудшить ситуацию. Microsoft советовала избегать шифрования на системах с WimBoot, и я не вижу причин к отмене этой рекомендации для Compact OS.

Очевидно, я рассматриваю ситуацию с точки зрения оптимальной производительности в условиях значительной нагрузки на диск. Я уверен, что найдется масса людей, которые сожмут ОС на HDD или SSD с BitLocker и не заметят никаких замедлений.

Если сразу после сжатия вернуться к исходному состоянию, будет примерно такая картина

23256 files within 17349 directories were uncompressed.

По сравнению с отчетом о сжатии 2 папок обработано столько же, а файлов разжато в примерно в 1.5 раза меньше, чем сжималось ранее.

Точной причины такого поведения я не знаю. Возможно, в отчет сжатия попадают все обработанные файлы, в т.ч. с фактором 1:1, а при декомпрессии они не считаются разжатыми.

Технологии работают параллельно. Состояние Compact OS вы можете контролировать сами, а разностное сжатие компонентов выполняется без вашего участия и необратимо.

Продолжение следует…

В процессе подготовки статьи мне пригодились следующие материалы:

  • How Windows 10 achieves its compact footprint (блог Windows)
  • Windows 10: Reducing the disk footprint (Michael Niehaus, Microsoft)
  • Compact OS, single-instancing, and image optimization (MSDN)
  • Push-button reset frequently-asked questions (FAQ) (MSDN)
  • [MS-XCA]: Xpress Compression Algorithm — Microsoft (PDF)
  • Windows Image File Boot (WIMBoot) Overview (TechNet)

Сокращение размеров и стоимости ПК ставит перед создателями Windows интересные задачи, и они не только придумывают решения, но и продолжают совершенствовать их. K еще одной стороне технологии Compact OS я вернусь чуть позже, а в следующей статье я расскажу, что еще изобрели разработчики для уменьшения следа системы на диске.

Однако в контексте дискового пространства далеко не все ПО Microsoft находится на одном уровне технологического развития. Так, Microsoft Office в этом плане выглядит неутешительно – у традиционного пакета стали нормой ежемесячные обновления весом в 500-600MB, оседающие в папке Installer, а обновления Office 2016 Click-to-Run могут отъедать гигабайты в папке ProgramData.

В комментариях напишите:

  • исходный статус сжатия Windows 10
  • модель устройства, емкость диска, марку CPU и объем RAM
  • способ текущей установки Windows 10 (обновление / чистая)
  • объем освободившегося дискового пространства после сжатия
    • исходный статус сжатия Windows 10
    • модель устройства, емкость диска, марку CPU и объем RAM
    • способ текущей установки Windows 10 (обновление / чистая)
    • объем освободившегося дискового пространства после сжатия

  1. 37953 files within 17349 directories were compressed↩

В этой заметке я хочу рассмотреть инструменты, которые предлагает Windows 10 для освобождения дискового пространства. Решил написать потому, что сам с этим столкнулся при работе на SSD.

В SSD всё хорошо,В  кроме стоимости гигабайта. Поэтому места иногда не хватает, появляется необходимость в дополнительном пространстве. Я расскажу, как его получить.

1) OneDrive

— Это позволит высвободить свободное пространство за счет хранения файлов в облаке.

Состояние файла показывает проводник. При открытии файл автоматически подгружается. На самом деле, такая технология была ещё в SkyDrive на Windows 8. Потом её выпилили — теперь вернули.

1538601746189834516.png

3) Используйте очистку диска. Вам понравится.

1538601390121155307.png

Это новый метод. То есть старый, но переделанный. Помните утилиту compact? Она равнозначна включению сжатия NTFS в свойствах файла. Так вот, её улучшили: теперь появилась возможность сжатия LZX. Отличий два:

— Стандартное сжатие NTFS постоянно. То есть после пересохранения файл снова сжимается. В LZX сжимать придется повторно.

— LZX жмет сильнее.

Если вы попытаетесь сдать папку Windows стандартным сжатием NTFS, то придется получать права на файлы, что небезопасно. LZX не меняет атрибуты файла, поэтому доступ на запись нам не нужен.

Давайте посмотрим размер основных папок.

1538627801189741984.png

Запускаем командную строку от Администратора и скармливаем следующую команду:

compact /c /s /a /i /exe:lzx «C:Program Files*»&&compact /c /s /a /i /exe:lzx «C:Program Files (x86)*»&&compact /c /s /a /i /exe:lzx «C:Windows*»

Когда команда отработает, проверим результат:

1538627813128479387.png

Обратите внимание на размер, занятый на диске.

Для удобства, команду можно добавить в контекстное меню проводника.

146Используемые источники:

  • https://remontka.pro/compact-os-windows-10/
  • http://www.outsidethebox.ms/17965/
  • https://pikabu.ru/story/windows_10_osvobozhdenie_svobodnogo_prostranstva_6194953

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации