Время на прочтение4 мин
Количество просмотров884K
Многие обладатели Windows Vista и 7 наверняка сталкивались с тем, что папка Windows c ходом времени разрастается как на дрожжах. Я мирился с этим до тех пор, пока 40-гиговый раздел с системой не начал периодически выдавать мне сообщения о том, что свободное место на нем заканчивается.
Я нашел один чудесный инструмент, магия которого позволяет уменьшить размер папки winsxs без потери производительности/стабильности/данных. Сначала я проделал все описанное под катом на своем домашнем буке, а сейчас для чистоты эксперимента повторю на рабочем.
0. Немножко теории
Вообще о том, как Windows использует пространство системного диска, сказано немало, поэтому здесь буду краток.
pagefile.sys — файл подкачки. Можно отключить при большом размере оперативки, можно отрегулировать размер вручную.
hiberfil.sys — файл, в который сохраняется снимок(снэпшот) оперативной памяти при «засыпании» компьютера. В меню «Очистка диска» кроме всего прочего есть пунктик «Очистка файлов режима гибернации». Если вы этим режимом не пользуетесь, можете очищать. Если же вы регулярно «засыпаете» свой комп/ноут, то, очистив этот файл, вам придется воспользоваться вот этим советом, или попросту ввести в командной строке powercfg -h on && shutdown -r
.
Личные папки пользователей (Мои документы, Рабочий Стол, Appdata, Главное меню и проч.) можно безболезненно перенести в другое место как через свойства нужных папок, так и через regedit или групповые политики. Это разговор отдельный, здесь я его рассматривать не буду.
Нужно отметить, что любые апдейты и апгрейды в системе Windows обратимы, то есть установив Vista Service Pack 2 (6.0.6002), вы можете откатиться назад до 6.0.6001, а потом и до исходной сборки. Для того, чтобы сделать все установленные в системе обновления необратимыми, необходимо воспользоваться двумя системными утилитами:
vsp1cln.exe — подметает мусор после установки Vista SP1.
compcln.exe — делает то же самое для SP2.
Система создает точки восстановления по требованию и автоматически при установке драйверов, важных обновлений, по расписанию или по требованию. Восстановление использует до 15% пространства на каждом из дисков, на котором оно задействовано. Его можно отключить, можно через «Очистку диска» на вкладке «Дополнительно» оставить только последнюю точку восстановления для экономии места.
Про папку winsxs разработчиками была написана целая статья о том, что мол, это основное хранилище ОС, а все остальные системные файлы — это типа хардлинки, бла-бла-бла…, и да, примите как божий дар то, что со временем размер папки будет только увеличиваться.
1. Подготовка
Windows Vista Business 32-bit.
Сначала я выяснил размер папки winsxs — около 4,5 гигов.
Далее методично были установлены все важные и рекомендуемые обновления по состоянию на 8.10.2009, включая SP1 и SP2. После завршения всех процедур, я скачал чудесный Scanner, чтобы нагляно оценить масштаб бедствия.
Установка обновлений преобразила папку Windows.
Теперь по порядку:
— vsp1cln.exe;
— compcln.exe — работала около пяти минут.
После этого я делаю контрольную точку восстановления(мало ли что), избавляюсь от предыдущих, и перехожу к самому важному этапу на сегодня.
2. Winsxslite
Это даже не программа — это .bat файл, уменьшающий размер папки winsxs. Он написан неким Christian Bering Boegh и распространяется «as is», что лично у меня вызвало некоторые подозрения, развеять которые мог лишь успешно отработавший скрипт. По ссылке можно найти последнюю версию скрипта (1.86) с комментариями автора.
Работа скрипта включает две фазы:
1. Поиск в папках Program Files и Windows файлов, идентичных файлам в winsxs.
2. Замена старых версий файла в winsxs жесткими ссылками на более новые версии файла.
Работать можно как с онлайн-системой (то есть с работающей ОС) так и с образом ОС.
Работа с онлайн-системой выглядит так:
— Phase 1 scan;
— Phase 1 apply;
— Перезагрузка;
— Phase 2 scan;
— Phase 2 apply;
— Перезагрузка.
Перезагрузка нужна потому, что к некоторым файлам нет доступа на изменение и скрипт создает TODOlist, данные из которого берутся после перезагрузки.
Для работы скрипта используется также конфигурационный файл config.txt, в котором указаны исключения для первой фазы (логи, temp, cache и т.п.), и языковые приоритеты для второй фазы (неиспользуемые файлы локализации заменяются на хардлинки соответствующих файлов других языков), в конфигу по умолчанию прописывается «da-dk=KEEP», что меняется на нужную строку ru-ru=KEEP, uk-ua=KEEP или другую необходимую.
Winsxslite будет работать только при наличии следующего ПО:
— SubInACL v5.2.3790.1180;
— PendMoves v1.1 and MoveFile v1.0;
— Ln — Command Line Hardlinks;
— Fcmp v1.6 — автор рекомендует пользоваться именно 1.6;
— MD5File;
— StringConverter v1.2.
Все установленные файлы я сложил в папку с winsxslite. Если кому скучно выполнять все процедуры самому, вот ссылка. Там собственно winsxslite, всё необходимое ПО плюс конфиг с исправленным da-dk. Конфиг можно удалить. При первом запуске winsxslite будет создан дефолтный конфиг и help-файл.
3. Результаты
Взглянув на результаты, я понял, что совершил стратегическую ошибку — я взял для теста ноутбук, который почти не использовался в работе. То есть, возраст ОС составлял от силы пару дней, за ноутбуком фактически никто не работал. На домашнем же компе результаты были более ощутимыми. Там папка winsxs похудела гигов на 8, но до тех же самых 14,8.
Автор пишет, что эксплорер не выдает реального размера этой папки, и в его утилите можно узнать истинный размер.
Как бы то ни было, оба пациента не пострадали, а winsxslite оказался отличным подспорьем в деле уменьшения объема ненасытной винды.
В заключение хотелось бы отметить, что обе фазы скрипта могут занять от одного до двух часов работы компьютера.
P.S. Статья про использование дискового пространство в Win7. Никакие сторонние программы для кастрации системы (типа vLite) не использовались.
В этой статье мы поговорим о каталоге WinSxS в Windows, причинах его постоянного роста и способах очистки. Каталог C:\windows\WinSxS является хранилищем компонентов Windows. В этом каталоге хранятся dll библиотеки, бинарные и xml файлы, необходимые для установки и работы различных ролей и компонентов Windows. Каждый раз когда вы устанавливаете обновления Windows (это происходит ежемесячно), новая версия обновляемого компонента устанавливается в систему, а старая сохраняется в хранилище компонентов WinSxS (это необходимо для обеспечения совместимости и возможности “отката“ к старым версиям компонентов при удалении проблемного обновления).
Со временем размер каталога WinSxS постоянно увеличивается. Причем его размер ничем не ограничен (хотя на практике размер папки WinSxS в Windows 10 редко превышает 15-20 Гб.)
В этой статье мы рассмотрим наиболее безвредные способы очистки папки WinSxS в Windows 10 и Windows Server.
- Оптимизация хранилища компонентов и удаление старых версий компонентов, оставшихся после установки обновлений Windows;
- Технология Features on Demand (функции по требованию), позволяющая удалить неиспользуемые компоненты Windows с диска;
- Сжатие файлов в папке WinSxS – способ уменьшить размер каталога WinSxS за счет включения NTFS компрессии.
У многих пользователей возникает естественный вопрос можно ли вручную удалить файлы из папки WinSxS. Ответ на этот вопрос – категоричное НЕТ! Такими действиями с большой долей вероятности вы сломаете свою Windows. И хотя отдельные попытки удаления конкретных файлов из папки WinSxS могут быть удачными, рекомендовать этот способ нельзя.
Содержание:
- Как узнать реальный размер папки WinSxS в Windows 10?
- Очистка хранилища компонентов WinSxS в Windows
- Удаление неиспользуемых компонентов Windows (Windows Server)
- Включаем NTFS сжатие на папке WinSxS в Windows
Как узнать реальный размер папки WinSxS в Windows 10?
Самый простой способ получить текущий размер каталога WinSxS в Windows, запустить проводник File Explorer и открыть свойства папки %windir%\WinSxS (или воспользоваться скриптом PowerShell). Но имейте в виду, что большинство файловых менеджеров (в том числе File Explorer) показывают несколько больший размер каталога WinSxS, чем он занимает на диске.
Дело в том, что в каталоге WinSxS есть большое количество hard links (жестких символических ссылок) на файлы в других системных каталогах. Файловые менеджеры при подсчете размера папки WinSxS учитывают объем файлов, на которые ссылаются жесткие ссылки, а это не корректно.
Чтобы реальный (без учета жестких ссылок) размер папки WinSxS, воспользуйтесь утилитой SysInternal du:
du -v c:\windows\winSXS
Но проще всего проанализировать размер хранилища компонентов в папке WinSxS с помощью команды DISM:
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
Разберемся, что возвращает данная команда:
Размер хранилища компонентов по данным проводника : 5.70 GB (это размер хранилища с учета жестких ссылок, который отображается в проводнике)
Фактический размер хранилища компонентов : 5.49 GB (реальный размер хранилища компонентов за исключением жестких ссылок)
Совместно с Windows : 3.12 GB (обязательные файлы системы, не могут быть удалены)
Резервные копии и отключенные компоненты : 2.12 GB (устаревшие файлы компонентов, которые нужны на случай проблем с установленными обновлениями)
Кэш и временные данные : 245.87 MB (файлы используются для ускорения работы системы обслуживания)
Дата последней очистки : 2018-07-31 12:45:23
Число освобождаемых пакетов : 10 (файлы, которые обновились после установки обновлений Windows, они будут удалены при очистке хранилища)
Рекомендуется очистка хранилища компонентов : Да
Как вы видите, в данном случае можно уменьшить размер каталога WinSxS на 2.1 Гб + 250 Мб.
Очистка хранилища компонентов WinSxS в Windows
Самый быстрый и простой способ освободить место в хранилище компонентов Windows (т.е. очистить папку WinSxS) – оптимизация хранилища командой:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup
Опция Dism /StartComponentCleanup поддерживается во всех версиях Windows, начиная с Windows 8/Windows Server.
После окончания очистки проверьте текущий размер хранилища компонентов:
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
В моем примере это помогло уменьшить размер папки WinSxS на 2,5 Гб.
С помощью еще одного параметра /ResetBase вы можете удалить все предыдущие версии компонентов, оставшиеся после установки обновлений Windows. После этого вы не сможете удалить установленные обновления или Service Pack, а в панели обновлений
appwiz.cpl
у обновлений пропадет кнопка «Удалить»).
Чтобы очистить старые версии компонентов, выполните:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
В Windows 7 и Windows Server 2008 R2 для очистки старых версий компонентов, оставшихся после установки сервис пака, использовался еще один параметр DISM:
dism /online /Cleanup-Image /spsuperseded
Также вы можете удалить устаревшие обновления с помощью мастера очистки диска. Выполните команду cleanmgr c правами администратора.
В окне утилиты выберите диск и в следующем окне нажмите кнопку «Очистить системны файлы».
Далее выберите опцию “Файлы журнала обновления Windows» и нажмите ОK. Утилита очистки диска покажет сколько места вы можете освободить, удалив файлы журнала старых обновлений Windows. В моем примере это 427 Мб.
После окончания очистки хранилища с помощью DISM проверьте сколько освободилось места на диске.
В планировщике задания Windows 10 и Windows Server 2016 есть специальное задание автоматического обслуживания, которое регулярно выполняет оптимизацию и очистку каталога WinSxS (выполняется действия, аналогичные команде dism с ключом StartComponentCleanup). Это задание StartComponentCleanup находится в разделе \Microsoft\Windows\Servicing. Данное задание запускается в фоновом режиме и автоматически удаляет версии компонентов старше 30 дней, которое были заменены более новыми версиями.
Можно запустить это задание вручную так:
schtasks.exe /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup"
Удаление неиспользуемых компонентов Windows (Windows Server)
В статье Безопасная очистка папки WinSxS в Windows Server 2016/2012 мы рассмотрели функцию Features on Demand (функции по требованию), предоставляющую возможность удаления с диска бинарных файлов неиспользуемых ролей и компонентов из каталога WinSxS. Для этого в Windows Server используется командлет PoweShell Uninstall-WindowsFeature.
В Windows 10 командлет Uninstall-WindowsFeature отсуствует, и для удаления компонентов Windows из образа нужно использовать DISM.
DISM в отличии от Uninstall-WindowsFeature не удаляет зависимые компоненты.
Полный список доступных функций в образе Windows 10 можно получить с помощью команды:
DISM.exe /Online /English /Get-Features /Format:Table
Чтобы удалить, например компонент TelnetClient с диска (из каталога WinSxS), выполните команду:
DISM.exe /Online /Disable-Feature /Featurename:TelnetClient /Remove
Если еще раз вывести список всех доступных функций по требованию в Windows, вы увидите, что статус компонента изменится на Disabled with Payload Removed.
Таким образом в Windows можно существенно уменьшить размер папки WinSxS, удалив с диска неиспользуемые компоненты. Единственный нюанс, это вариант очистки каталога WinSxS подойдет для достаточной продвинутых пользователей, которые разбираются в компонентах Windows 10 и их назначении.
Включаем NTFS сжатие на папке WinSxS в Windows
Еще один способ уменьшить размера каталога WinSxS в Windows 10 – сжать содержимое каталога на уровне файловой системы NTFS.
- Откройте командную строку с правами администратора;
- Остановите и отключите службы Windows Installer и Windows Module Installer:
sc stop msiserver sc stop TrustedInstaller sc config msiserver start= disabled sc config TrustedInstaller start= disabled
- Создайте резервную копию списков доступа (ACL) назначенных на файлы и папки в каталоге WinSxS с помощью утилиты icacls. Резервная копия ACL представляет собой обычной текстовый файл, в котором указаны все файлы и каталоги и назначенные на них NTFS разрешения (в дальнейшем этот файл понадобиться для восстановления оригинальных ACL):
icacls "%WINDIR%\WinSxS" /save "%WINDIR%\WinSxS_NTFS.acl" /t
- Назначьте себя владельцем папки WinSxS и всех вложенных каталогов:
takeown /f "%WINDIR%\WinSxS" /r
- Предоставьте своей учетной записи полные права на каталог WinSxS:
icacls "%WINDIR%\WinSxS" /grant "%USERDOMAIN%\%USERNAME%":(F) /t
- Теперь можно выполнить сжатие файлов в каталоге WinSxS с помощью команды compact. Т.к. часть файлов может использоваться Windows, нужно указать параметр /i. Иначе сжатие будет остановлено на первом же занятом файле (в Windows 10 можно использовать более прогрессивное LZX сжатие):
compact /s:"%WINDIR%\WinSxS" /c /a /i *
- Теперь нужно восстановить TrustedInstaller как владельца каталога WinSxS:
icacls "%WINDIR%\WinSxS" /setowner "NT SERVICE\TrustedInstaller" /t
- И вернуть оригинальные NTFS разрешения на каталог WinSxS из резервной копии ACL:
icacls "%WINDIR%" /restore "%WINDIR%\WinSxS_NTFS.acl"
- Измените типа тип запуска служб Windows Installer и Windows Module Installer:
sc config msiserver start= demand sc config TrustedInstaller start= demand
Проверьте текущий размер каталога WinSxS.
Как вы видите, в нашем примере размер папки WinSxS за счет сжатия уменьшился с 9,36 Гб до 6,5 Гб (примерно на треть). Неплохо, особо для небольшого по размеру SSD-диска.
Указанные команды можно выполнять по отдельности (так проще контролировать успешность выполнения каждой из них), либо можно объединить все операции в один файл скрипт. Вы можете скачать готовый bat файл для сжатия WinSxS здесь compress_winsxs.bat
Данный скрипт нужно запускать периодически, т.к. в каталоге WinSxS будут появляться новые «несжатые» файлы после установки новых обновлений Windows и программ.
На что может повлиять сжатие каталога WinSxS? Windows работает со сжатыми файлами в прозрачном режиме, однако при обработке таких файлов, ей может понадобиться дополнительное время на их декомпрессию/компрессию. Это может вызвать небольшое замедление при установке компонентов Windows или обновлений. Однако для современных процессоров (CPU) операция компрессии/декомпрессии файлов выполняется практически мгновенно, так что реального уменьшения скорости пользователь даже не заметит.
Вы тут: Главная → Popular → Как грамотно уменьшить размер папки WinSxS в Windows 10, 8.1 и 8
Уже 7 лет папка WinSxS является бельмом в глазу у ряда пользователей. Все эти годы Microsoft потихоньку улучшала систему обслуживания Windows, и в прошлом году я рассказывал о тонкостях управления компонентами Windows 8. Выгоду от тех нововведений получили администраторы серверных ОС, а на улицу домашних пользователей настоящий праздник пришел только в Windows 8.1.
Перейти к инструкциям по очистке
Сегодня я расскажу вам о ключевых изменениях в системе обслуживания Windows 8 и 8.1, которые помогут вам эффективнее распорядиться дисковым пространством и наконец-то очистить папку WinSxS, не рискуя при этом нарушить работу системы.
У вас Windows 7? Читайте Как грамотно уменьшить размер папки WinSxS в Windows 7 SP1
[+] Сегодня в программе
Животрепещущие вопросы
Сначала я обозначу два вопроса, которые сильнее всего волнуют людей в контексте папки WinSxS.
Почему папка WinSxS такая большая
На самом деле, она занимает значительно меньше места, чем кажется. Множество файлов из папки Windows проецируется в нее с помощью жестких ссылок именно из папки WinSxS. Да, файловые менеджеры могут показывать размер папки WinSxS в 10GB и более, но лишь потому, что они принимают за чистую монету объем жестких ссылок. В Windows этому есть очень наглядное подтверждение.
Почему папка WinSxS постоянно растет
Каждый раз, когда вы устанавливаете обновления, системные файлы заменяются новыми. Их старые версии сохраняются в папке WinSxS, чтобы обеспечить возможность отката в случае проблем с новыми версиями, т.е. устойчивое обслуживание системы. Это приводит к увеличению объема папки WinSxS, хотя на практике ее максимальный размер редко превышает 15GB. Кстати, именно этого аспекта коснулось одно изменение в Windows 8.1, как вы увидите ниже.
Новые возможности системы обслуживания
Вездесущая утилита DISM обзавелась в 8.1 новыми параметрами командной строки, которые я разберу в этой статье. Но сначала – несколько примечаний:
- В моем распоряжении находится английская Windows 8.1 Preview, в которой результаты команд DISM не локализованы, несмотря на русский языковой пакет. Фанатичным приверженцам локализованных ОС придется потерпеть
- Поскольку Windows 8.1 Preview установлена недавно, размер папки WinSxS невелик, равно как и выгода от описанных в статье манипуляций. Однако, чем дольше установлена ОС, тем заметнее польза от изменений в системе обслуживания.
- Все команды нужно выполнять от имени администратора, а после очистки — перезагружаться для более аккуратного измерения экономиии дискового пространства.
Готовы? Давайте пойдем от простого к сложному!
Как определить реальный размер папки WinSxS в Windows 10, 8.1 и 8
С помощью одного из новых параметров DISM вы можете проанализировать хранилище компонентов, т.е. папку WinSxS.
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
Результат команды будет примерно таким:
Увеличить рисунок
Здесь по порядку:
- Размер хранилища компонентов, каким его видит проводник, т.е. без учета жестких ссылок внутри WinSxS.
- Реальный размер хранилища компонентов с учетом жестких ссылок (за исключением ссылок на папку Windows), в том числе:
- Общие файлы с папкой Windows. Эти файлы необходимы для работы системы и ни в коем случае не являются лишними. В моем примере они составляют 87% от размера хранилища, но чем больше обновлений устанавливается, тем ниже этот процент.
- Резервные копии и отключенные компоненты. Эти файлы хранятся на случай проблем с обновленными компонентами или для включения ролей или компонентов. Их можно условно считать лишними, поскольку они не критичны для текущей работы системы.
- Кэш и временные файлы. Эти файлы нужны для быстрой работы системы обслуживания, но не являются абсолютно необходимыми для функционирования Windows.
- Дата последней очистки хранилища. Об очистке во всех подробностях ниже.
- Число пакетов, замененных более новыми, и рекомендация по очистке. Фактически, это – файлы, которые обновились после работы Windows Update. Их можно удалить очисткой хранилища.
Я прямо вижу, как у вас руки чешутся очистить хранилище и высвободить место
Как очистить папку WinSxS в Windows 10, 8.1 и 8
Начиная с Windows 8, в ОС заложено три способа очистки.
Команда DISM (рекомендую)
Вы можете очистить хранилище компонентов вручную одной командой.
Dism.exe /Online /Cleanup-Image /StartComponentCleanup
Это самый быстрый путь к выполнению оптимизации (после него двумя следующими способами вы уже ничего не добьетесь).
Утилита «Очистка диска»
Andrey Bayatakov, спасибо за напоминание об этом способе!
Наберите cleanmgr в командной строке, запущенной от имени администратора. Встроенная в Windows утилита для очистки диска покажет, сколько места вы сэкономите, удалив файлы обновлений Windows.
В принципе, утилита делает то же самое, что и ключ /StartComponentCleanup. Однако она весьма фривольна в оценках освобождаемого пространства, и в моих экспериментах ошибка измерялась сотнями мегабайт, причем в обе стороны.
Запланированное задание
Windows выполняет очистку папки winsxs по расписанию с помощью задания Microsoft – Windows – Servicing – StartComponentCleanup.
Конкретной команды не видно, поскольку очистка реализована обработчиком COM-объектов. А отсутствие триггеров свидетельствует о том, что задание работает в рамках вездесущего автоматического обслуживания. Запустив задание из планировщика или командной строки, вы достигаете почти того же эффекта, что и командой DISM с ключом /StartComponentCleanup. Различия таковы:
- Игнорируются обновления, установленные в последние 30 дней.
- Выдерживается часовая пауза, очистки всех файлов может не произойти.
Выполнив очистку, вы можете снова проанализировать хранилище и оценить изменения.
Увеличить рисунок
Как видите, в моем случае очистка 10 пакетов позволила сэкономить 60MB, что не так уж и много в масштабах папки. Однако можно почистить еще
Как удалить все старые версии компонентов из папки WinSxS в Windows 10 и 8.1
Во времена Windows XP был очень популярен вопрос, можно ли удалять папки $NTUninstallKBxxxxxx$ из папки Windows. Помните такое?
В Windows 8.1 появилась аналогичная возможность, хотя реализована она совсем иначе ввиду глобальных различий в системах обслуживания 8.1 и XP.
Команда для удаления
Начиная с Windows 8.1, у параметра /StartComponentCleanup есть дополнительный ключ /ResetBase, с помощью которого можно удалить все предыдущие версии компонентов. Этот ключ не задействован в запланированном задании.
Внимание! Удаление предыдущих версий компонентов лишает вас возможности удалить установленные обновления и пакеты исправлений (Service Packs), но не блокирует установку будущих обновлений.
Это предупреждение вовсе не дежурное, если вспомнить недавнюю ошибку 0xc0000005 после KB2859537, от которой плакал горючими слезами Рунет. Так или иначе, волшебная команда:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
Очевидно, выигрыш дискового пространства зависит как от количества зачищаемых обновлений, так и от объема замененных ими компонентов. В моем примере удалось высвободить еще около 24MB.
Увеличить рисунок
Что происходит при удалении всех предыдущих версий компонентов
Рассказ об этом перенесен в статью, которая раскрывает подноготную оптимизации папки WinSxS.
Описанные выше нововведения в Windows 8.1 не являются секретом, поскольку задокументированы в библиотеке TechNet (пока только на английском языке). Причем объяснения там выгодно отличаются от типичной сухой документации — чувствувется перо Джозефа Конвея (Joseph Conway), главнoго источника сведений системе обслуживания Windows, который, к сожалению, недавно объявил о прекращении публикаций в своем блоге.
Сжатие компонентов в папке WinSxS (тайное знание)
Однако в официальной документации практически нет информации о том, что с целью экономии дискового пространства для хранилища компонентов в Windows 8 и выше применяется сжатие. Я выделю несколько известных мне моментов:
- Сжатие применяется к файлам, которые не использует операционная система. К ним относятся предыдущие версии компонентов и отключенные компоненты. Этим, видимо, и объясняется не столь существенный выигрыш от удаления предыдущих версий с параметром /ResetBase.
- Используется разностное сжатие. По неподтвержденной пока уже подтвержденной информации в Windows 8.1 для компрессии замененных компонентов применяется разностное сжатие.
- Экономия дискового пространства может быть весьма существенной в некоторых сценариях. Так, на установке Windows Server Core 2012 R2 Preview благодаря сжатию высвобождается около 20% места, если исключить из уравнения файлы подкачки и гибернации. Экономия достигается за счет сжатия компонентов отключенных ролей сервера.
В статье, где собраны все технические тонкости, я описал разные механизмы сжатия Windows 8 и 8.1+.
Конечно, точный ответ на этот вопрос может дать только Microsoft, поэтому я просто поделюсь своим видением ситуации.
Серверные ОС
Современную инфраструктуру трудно представить без технологий виртуализации, выгода от использования которых напрямую связана с эффективным использованием системных ресурсов. Это в полной мере относится к дисковому пространству, которого много никогда не бывает.
Удаление неиспользуемых ролей сервера в Windows Server 2012 помогает ИТ-специалистам эффективнее распоряжаться дисковым пространством. Тем, кто не знает об этой возможности или не считает целесообразным ее применять, поможет сжатие компонентов неиспользуемых ролей в Windows Server 2012 R2.
Клиентские ОС
К моменту выхода Windows 7 стоимость 1GB на жестких дисках была столь невелика, что папка WinSxS вызывала головную боль только у товарищей с маленьким сами знаете, чем. Однако на сцену уже выходили SSD, и система обслуживания Windows не очень хорошо сочеталась с их скромным объемом.
Казалось бы, к выходу Windows 8 твердотельный накопитель объемом 128GB уже не был чем-то из ряда вон выходящим, но на разработчиков системы обслуживания свалилась новая беда – планшеты, в том числе свой же Surface.
Действительно, все современные планшеты на Clover Trail в лучшем случае комплектуются диском в 64GB. А в более популярных младших моделях после вычета раздела восстановления остается около 25GB, чего недостаточно для более-менее долгосрочной работы Windows.
В Windows 8 очистка резервных копий компонентов нацелена на более эффективное использование пространства маленьких дисков планшетов, а в Windows 8.1 удаление предыдущих версий предоставляет запасной аэродром в самых тяжелых случаях.
Дискуссия и опрос
Эта запись является хорошим поводом для вас высказать все, что наболело по поводу хранилища компонентов Windows Опрос призван выявить количественный расклад, а в комментариях напишите, создает ли вам проблемы рост размера папки WinSxS. Если создает, опишите их и предоставьте ссылку на полноэкранный скриншот оснастки diskmgmt.msc.
Эта запись знаменует возобновление публикаций в блоге после летнего перерыва. Надеюсь, вы хорошо отдохнули Мой отпуск еще только грядет в сентябре, но вас уже ожидают несколько интересных запланированных записей
Результаты голосования утеряны в связи с прекращением работы веб-сервиса опросов.
На самом деле папка занимает меньше места, чем кажется, но если вы дорожите каждым ГБ свободного места, можете регулярно удалять её содержимое.

Папка WinSxS находится в C:\Windows\WinSxS, занимает много места и продолжает расти. В этой папке накапливаются ненужные файлы, например, старые компоненты системы, и чем дольше у вас стоит операционная система, тем больше папка WinSxS.
Почему папка WinSxS растет?
Когда вы устанавливаете любые обновления системы, старые файлы заменяются новыми, а в папке WinSxS на случай багов сохраняются все старые варианты.
Файлы из папки Windows попадают в WinSxS с помощью жестких ссылок, и файловые менеджеры принимают их за реальный объем. Поэтому размеры папки могут отображаться неверно, а на самом деле она, как правило, весит не больше 15ГБ.
Однако если вы хотите почистить свою систему от ненужных файлов, есть несколько способов сделать это.
Очистка обновлений Windows
В командной строке нужно набрать cleanmgr, и встроенная утилита покажет, сколько места вы можете освободить. Надо просто отметить «Очистка обновлений Windows» и нажать ОК.
Если вы несколько лет использовали одну операционную систему, наверняка у вас освободиться несколько гигабайтов свободного места.
В следующий раз при перезагрузке, Windows 7 потратит несколько минут на очистку системных файлов, прежде чем вы сможете снова увидеть свой рабочий стол. Если же этой опции у вас нет, наверняка вы давно не обновляли Windows. Установите последние обновления системы, и она появится.
В отличие от семерки, Windows 8 и 8.1 очищают обновления автоматически в Планировщике. Windows очищает папку по расписанию с помощью задания Microsoft – Windows – Servicing – StartComponentCleanup, которое автоматически запускается в фоновом режиме и удаляет компоненты через 30 дней после того, как вы установили обновления.
Если вы хотите удалять обновления вручную, откройте «Очистку диска», отметьте «Очистку обновлений Windows» и нажмите ОК.
В ОС Windows 8.1 реализовано еще больше возможностей для самостоятельного удаления файлов. Там можно удалить все предыдущие версии, даже когда с момента установки новых еще не прошло 30 дней. Для этого надо запустить командную строку от имени администратора и ввести нужные команды.
Например, одна команда удаляет все версии обновлений без 30 дней ожидания:
DISM.exe /online /Cleanup-Image /StartComponentCleanup
Другая удаляет файлы, нужные для удаления пакетов обновлений. После ввода этой команды вы не сможете удалить установленные пакеты обновлений:
DISM.exe /online /Cleanup-Image /SPSuperseded
Еще одна команда удалит все старые версии каждого компонента. После этого вы не сможете удалить все установленные пакеты обновлений:
DISM.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
Удаление компонентов по требованию
Современные версии Windows позволяют включать компоненты системы по требованию. Список функций находится в окне «Компоненты Windows», в которое можно попасть из панели управления. Даже если вы не установили какие-то из них, то есть, они не отмечены флажком, компоненты все равно хранятся на вашем жестком диске в папке WinSxS. Если вы захотите их установить, не придется ничего скачивать, можно сделать это из папки.
Однако, даже неиспользуемые компоненты занимают место на жестком диске, и если вам очень важно свободное место, можете их удалить. В Windows 8 добавлена новая опция, которая позволяет удалить все эти файлы из WinSxS, а если они внезапно понадобятся вам, можете скачать их у Microsoft. Чтобы удалить компоненты, откройте командную строку и вбейте следующую команду:
DISM.exe /Online /English /Get-Features /Format:Table
Вы увидите разные компоненты и их состояние.
Чтобы удалить функцию из системы, можно использовать следующую комнду, заменив NAME на название функции, которую вы хотите удалить.
DISM.exe /Online /Disable-Feature /featurename:NAME /Remove
Если вы выполните команду / GetFeatures еще раз, вы увидите, что функция сменила статус на: «Disabled with Payload Removed» («Отключено с удалением полезных файлов») вместо просто «Disabled» («Отключено»).