Ntfs-сжатие файлов в папке winsxs
Если сделать, в общем-то, необоснованное предположение о том, что файлы, размещенные в папке WinSxS, используются системой не так часто, как файлы из других системных папок, таких как: Program Files, ProgramData, system32 и др., то почему бы не попробовать сделать их ntfs-сжатие? Результат заранее не очевиден, но, по крайней мере, это совершенно безопасный вариант.
Microsoft постаралась максимально защитить папку WinSxS от всяческих посягательств на нее извне. Если открыть закладку «Безопасность» в свойствах папки, то можно увидеть, что только пользователь «TrustedInstaller» имеет полный доступ. Все остальные, включая «Система» и «Администраторы», приравнены к рядовым пользователям с правами на чтение и выполнение.
Таким образом, для того, чтобы иметь возможность сделать ntfs-сжатие файлов в этой папке, сначала нужно установить необходимые разрешения.
Запускаем командную строку с правами администратора и последовательно выполняем следующие команды:takeown /A /R /F C:Windowswinsxs*В результате владельцем папок и файлов в WinSxS станет группа пользователей «Администраторы».icacls C:Windowswinsxs* /T /grant Администраторы:(F)Результатом будет добавление прав полного доступа на все папки и файлы в WinSxS.
Не хочется подробно расписывать значение ключей команд. Кому интересно – посмотрите по /? в командах, все достаточно очевидно.
Теперь можно сделать сжатие файлов, но не торопитесь и дочитайте статью до конца.
Самое время вспомнить о том, что в WinSxS лежат не только уникальные файлы, но и большое количество жестких ссылок на файлы, разбросанные по различным системным папкам.
Мы уже несколько раз обращались к теме символьных ссылок, которые использовали для переноса каталогов пользователей на другой диск. (См. «Перенос Windows 7 на твердотельный диск …» Часть 2 и Часть 3).
Тогда мы использовали обычные символические ссылки (Symbolic link), которые представляют собой специальные файлы, содержащие указатели на объекты в файловой системе. При попытке обратиться к объекту, в качестве которого может выступать файл или папка, символьная ссылка передает действительный путь к нему.
В папке WinSxS для файлов используется разновидность символической ссылки, которая называется жесткой ссылкой (Hard Links).
Жесткая ссылка создается командой:mklink /H “Link” “Target”Link — путь к виртуальному объекту (первоначальное местоположение объекта);
Target — путь к реальному объекту (относительный или абсолютный).
Жесткая ссылка может быть создана только на файл и в пределах одного раздела.
Название этого типа ссылок, в какой-то степени, говорит само за себя – штука это жестокая. Hard Link создает абсолютно равноправный исходному указатель на файл. Новый указатель и первоначальный могут иметь разные имена и находиться в разных каталогах (в пределах одного раздела), но они указывают на один и тот же объект. Сам объект будет существовать в файловой системе до тех пор, пока на него существует хотя бы один указатель.
После создания жесткой ссылки невозможно определить, какая из ссылок на объект была исходной. Вот тут-то и кроется причина неправильного вычисления объема папки WinSxS файловыми менеджерами. Они включают в расчет суммарный размер всех файлов из других системных папок, на которые имеются жесткие ссылки (а с другой стороны, как иначе? Ссылки то равноправны).
Со ссылками всех типов, включая и жесткие, умеет работать файловый менеджер FAR (Alt/F6). С его помощью можно легко посмотреть количество ссылок, которые имеет файл:
Для этого нужно выбрать 9-й режим отображения любой из панелей. Крайний правый столбец покажет количество ссылок на файлы в текущем каталоге.
В нашем случае, если сделать ntfs-сжатие всех файлов в папке WinSxS, то сжатыми окажутся и файлы в других системных каталогах, на которые имеются жесткие ссылки.
Ничего страшного в этом нет. Если процессор быстрый, а жесткий диск обычный механический, то за счет ntfs-сжатия файлов может быть даже получен общий прирост производительности.
Это произойдет в том случае, если уменьшение времени на запись или считывание более короткого файла будет превалирующим над увеличением процессорного времени на сжатие или распаковку файла. Можно предположить, что для большинства современных компьютеров с традиционными дисками будет иметь место как раз выигрыш.
Сначала я сделал сжатие всех файлов папки WinSxS. Нам понадобится это в дальнейшем для прикидки объемов уникальных файлов и файлов, созданных жесткими ссылками. Compact /C /A /I /S:C:WindowswinsxsРезультат для Windows 7 x64 получился такой:
— исходный размер папки WinSxS составлял 10,1 ГБ,
— после сжатия – 6,85 ГБ.
Выигрыш места на диске составил 3,25 ГБ, или 32% от первоначального размера папки. Очень неплохо, учитывая, что все это делается для небольшого SSD-диска.
Теперь раскрутим файлы назад:Compact /U /A /I /S:C:Windowswinsxsи попробуем сжать только уникальные файлы. Как же это сделать?
Вариант 2: средство очистки диска
В любой версии Windows, включая десятку, предусмотрено средство очистки локальных дисков от ненужных системных файлов в автоматическом режиме. С помощью этой возможности можно избавиться от содержимого в папке «WinSxS».
- Откройте «Этот компьютер», кликните ПКМ по «Локальный диск (С:)» и перейдите в «Свойства».
- Нажмите кнопку «Очистка диска».
- Теперь, чтобы отобразился нужный пункт, кликните по кнопке «Очистить системные файлы».
- Произойдет непродолжительное сканирование.
- Вы увидите только что добавленный пункт «Очистка обновлений Windows». Отметьте его галочкой.
- По необходимости можете удалить и другие данные с этого диска — почти всегда общий объем доступных для удаления файлов больше. Когда все будет готово, просто нажмите «ОК» и дождитесь выполнения операции.
Кстати, эту утилиту можно запустить и через «Пуск», отыскав ее по названию.
Объем, отображенный в поле «Очистка обновлений Windows», не означает, что именно на столько же гигабайт станет легче папка «WinSxS». Связано это с тем, что не все файлы обновлений расположены именно внутри нее.
Учтите, если ПК не обновлялся или был успешно очищен первым методом, файлов обновлений в разделе не будет.
Вариант 3: планировщик заданий
В ОС Windows присутствует «Планировщик заданий», который, как видно по названию, позволяет выполнять те или иные процессы в автоматическом режиме при определенных условиях. Им вполне можно воспользоваться для ручной очистки папки «WinSxS».
- Откройте меню «Пуск» и среди основных разделов найдите папку «Средства администрирования». Здесь кликните по значку «Планировщик заданий».
- Через навигационное меню в левой части окна разверните
MicrosoftWindows
.Пролистайте список до директории «Servicing», выбрав данную папку.
- Найдите строку «StartComponentCleanup», нажмите ПКМ и выберите вариант «Выполнить».
Теперь задача будет выполняться сама по себе и вернется в прежнее состояние через один час.
По завершении работы инструмента папка «WinSxS» будет очищена частично или вовсе останется нетронутой. Это может быть связано с отсутствием резервных копий или некоторыми другими обстоятельствами. Вне зависимости от варианта как-либо отредактировать работу данного задания невозможно.
Как узнать реальный размер папки winsxx в windows 10 / 8.1
Еще одной особенностью папки WinSxS является наличие в ней большого количества так называемых hard links (жестких символьных ссылок). Жесткая ссылка представляет собой полностью равноправный оригинальному указатель на файл. Т.е. указатель и исходный файл могут иметь разные имена и находиться в пределах одного раздела в разных каталогах, но реально указывать они будут на один и тот же объект.
Именно из-за наличия жестких ссылок, которые включаются в расчет общего размера каталога, файловые менеджеры (и в том числе Windows Explorer) показывают несколько преувеличенный размер папки WinSxS. Узнать реальный (без учета жестких ссылок) размер папки WinSxS можно с помощью утилиты SysInternal du:
du -v c:windowswinSXS
Так же вы можете проанализировать размер хранилища компонентов (папку WinSxS) с помощью команды DISM:
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
Разберемся, что возвращает данная команда:
Размер хранилища компонентов по данным проводника : 5.70 GB (это размер хранилища без учета жестких ссылок)Фактический размер хранилища компонентов : 5.49 GB (реальный размер хранилища компонентов с учетом жестких ссылок)Совместно с Windows : 3.
12 GB (обязательные файлы системы, не могут быть удалены)Резервные копии и отключенные компоненты : 2.12 GB (устаревшие файлы компонентов, которые нужны на случай проблем установленными обновлениями)Кэш и временные данные : 245.87 MB (файлы используются для ускорения работы системы обслуживания)
Как вы видите, в данном случае можно уменьшить размер каталога WinSxS на 2.1 Гб 250 Мб.
У многих пользователей возникает естественный вопрос можно ли вручную удалить файлы из папки WinSxS. Ответ на этот вопрос – категоричное НЕТ! Такими действиями с большой долей вероятности получиться нарушить работоспособность Windows. И хотя некоторые попытки удаления файлов из папки WinSxS могут быть удачными, рекомендовать этот способ с точки зрения потенциальной опасности для системы нельзя.
Остановимся на наиболее безвредных с точки зрения системы способах очистки папки WinSxS в Windows 10 и Windows 8.1. Это:
- Удаление старых версий компонентов, оставшихся после установки обновлений;
- Технология Features on Demand (функции по требованию), позволяющая удалить неиспользуемые компоненты Windows с диска;
- Сжатие файлов в папке WinSxS – способ уменьшить размер каталога WinSxS за счет NTFS компрессии ее содержимого.
Для достижения максимального результата все три способа можно использовать совместно.
Способ 2. диспетчер задач
Уменьшить размер папки WinSxS в ОС Windows 8 и выше поможет опция «Планировщик заданий». Для этого:
- Найдите и запустите «Панель управления» через строку поиска в меню «Пуск».
- Последовательно пройдите такой путь: «Система и безопасность» — раздел «Администрирование» — «Расписание выполнения задач».
- Кликните на стрелочку напротив пункта «Библиотека планировщика заданий», и в диалоговом окне выберите Microsoft, Windows и Servicing.
- Запустите «StartComponentCleanup», а затем в разделе «Выбранный элемент» нажмите «Выполнить».
Вызвать планировщика задач можно и командной строкой, запустив cmd с правами администратора и введя команду:
schtasks.exe /Run /TN «MicrosoftWindowsServicingStartComponentCleanup»
Так вы запланируете удаление файлов с отсрочкой в 30 дней. В это время будут храниться как новые обновления, так и предыдущие.
Способ 3. dism.exe
Этот вариант для продвинутых пользователей, когда вы точно уверены, что удалённые компоненты из папки WinSxS вам не пригодятся. По сути, это усовершенствованная версия планировщика заданий из ранних операционных систем. Такой метод освобождения дискового пространства возможен в ОС Windows 10 и Windows Server 2021.
- В командной строке от имени администратора вводим:
Dism.exe /online /Cleanup-Image /StartComponentCleanup
Очистка производится без ожидания 30 дней, а в течение часа.
- При добавлении к этой команде параметра «ResetBase» удаляются все замененные версии каждого компонента в хранилище:
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
- Параметр «SPSuperseded» удаляет все компоненты резервного копирования:
Dism.exe /online /Cleanup-Image /SPSuperseded
После этой команды не остается старых версий обновлений, к которым можно было бы вернуться.
Как правило, приведенных нами способов достаточно, чтобы оптимизировать папку WinSxS. Этот каталог – важная часть в работе операционной системы, и удаление ее компонентов может остановить работу Windows и привести к потере ваших данных. Советуем придерживаться этих правил и не использовать сторонние программы для удаления файлов из этого хранилища.
Установка обновления kb2852386
Нужно отметить, что в отличие от операционной системы Windows 8 и более поздних ОС, у «семерки» изначально не было встроенного инструмента для очистки папки «WinSxS», а применять ручное удаление, как говорилось уже выше, недопустимо. Но, к счастью, позже было выпущено обновление KB2852386, которое содержит в себе патч для утилиты Cleanmgr и помогает решить указанную проблему.
- Щелкайте «Пуск». Заходите в «Панель управления».
- Жмите «Система и безопасность».
- Переходите в «Центр обновлений Windows».
- В нижней левой части появившегося окошка жмите по надписи «Установленные обновления».
- Открывается окно с перечнем установленных на компьютере обновлений. Нам нужно отыскать обновление KB2852386 в разделе «Microsoft Windows» данного списка.
- Но проблема состоит в том, что элементов перечня может быть очень много, а поэтому вы рискуете потратить значительное время на поиск. Чтобы облегчить задачу, установите курсор в поле поиска, расположенное справа от адресной строки текущего окна. Вбейте туда следующее выражение:
После этого в списке должен остаться только элемент с указанным выше кодом. Если вы его видите, то все в порядке, нужный апдейт установлен и вы можете сразу переходить к способам очистки папки «WinSxS».
Если же элемент не отобразился в текущем окне, то это означает, что для достижения поставленных в данной статье целей вам следует выполнить процедуру обновления.
- Вернитесь в «Центр обновления». Быстро это можно сделать, если вы действовали точно по описанному выше алгоритму, нажав стрелочку, направленную влево в верхней части текущего окна слева от адресной строки.
- Для того чтобы удостовериться, что необходимый апдейт ваш компьютер увидит, щелкните по надписи «Поиск обновлений» в левой части окна. Особенно это важно, если у вас не включены автообновления.
- Система выполнит поиск не установленных на ваш ПК апдейтов.
- После завершения процедуры щелкните по надписи «Важных обновлений доступно».
- Откроется список важных апдейтов, которые не установлены на вашем ПК. Вы можете выбрать, какие из них устанавливать, поставив слева от наименований пометки в чекбоксы. Поставьте флажок напротив наименования «Обновление для Windows 7 (KB2852386)». Далее жмите «OK».
- Вернувшись в окно «Центра обновлений», жмите «Установить обновления».
- Запустится процесс инсталляции выбранных апдейтов.
- После его окончания совершите перезагрузку ПК. Теперь у вас будет в наличии необходимый инструмент для очистки каталога «WinSxS».
Далее мы рассмотрим различные способы очистки каталога «WinSxS» с помощью утилиты Cleanmgr.
Урок: Установка обновлений Виндовс 7 вручную