Многие обладатели 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) не использовались.
комментарии (74)
>>Там папка winsxs похудела гигов на 8, но до тех же самых 14,8.
как у автора. Еще приемлемо. +Эта папка сильно спасает при восстановлении системы.
А вот на Висте СП2 х64 за неделю папка разожралась до 14ГБ. После этого я заклялся ставить Виспу.
Какбы против пока нечего не имею.
Вот будет занимать больше 10 — буду действовать.
Версия ОС: 6.1.7600 Н/Д сборка 7600
Дата установки: 11.09.2009, 19:51:33
winsxs 4 Гб
в програмфайлз порядко 80 программ,visual studio, adobe creative suite, office и такого же плана.
Выполняются все апдейты
7000 поставлена в начале февраля, в мае обновлена до 7100 5.8Gb
Windows Professional (не бета).
Весь Win7 — около 14 GB
Спасибо за статью, будем худеть!
А я бы не выключал, честно очень понравилось как оно в семерке работает, иногда последней точки бывает очень мало.
www.thevista.ru/page.php?id=10317
тут на русском подробно про winsxs
(не смотря на то что у каждого простого пользователя есть занкомый «программист»)
или нужны иструкции в духе «нажмите кнопку пуск, выберете стандартыные, командная строка, введите...»?
выдать ему деревянные счеты, толстый блокнот с ручкой и колоду карт для раскладывания пасьянса.
интересно, что на это говорит техподдержка майкрософт?
Тем самым вы сами себе и скрипту облегчите работу, потому как количество дубликатов в системе уменьшится после работы compcln.
## 28.09.2009 20:47:16,93: Calculating folder sizes. 31942.8 MB used, 5945.2 MB free space on drive C: Unique Shared Folder ----------------------------------------------------------------- 0.00 MB 0.00 MB "C:\Windows\winsxs\Temp" 0.00 MB 0.00 MB "C:\Windows\winsxs\InstallTemp" 165.97 MB 0.00 MB "C:\Windows\winsxs\ManifestCache" 3.80 MB 0.00 MB "C:\Windows\winsxs\FileMaps" 23.38 MB 0.45 MB "C:\Windows\winsxs\Catalogs" 334.64 MB 0.45 MB "C:\Windows\winsxs\Manifests" 350.47 MB 0.00 MB "C:\Windows\winsxs\Backup" 5566.76 MB 2338.51 MB "C:\Windows\winsxs" ----------------------------------------------------------------- Итого: 8784.43 MB до проведения манипуляций ## 15.10.2009 11:12:08,46: Calculating folder sizes. 29460.6 MB used, 14526.4 MB free space on drive C: Unique Shared Folder ----------------------------------------------------------------- 0.00 MB 0.00 MB "C:\Windows\winsxs\Temp" 0.00 MB 0.00 MB "C:\Windows\winsxs\InstallTemp" 50.73 MB 0.00 MB "C:\Windows\winsxs\ManifestCache" 3.80 MB 0.00 MB "C:\Windows\winsxs\FileMaps" 0.90 MB 23.61 MB "C:\Windows\winsxs\Catalogs" 335.00 MB 10.01 MB "C:\Windows\winsxs\Manifests" 7.00 MB 331.30 MB "C:\Windows\winsxs\Backup" 879.85 MB 2463.49 MB "C:\Windows\winsxs" ----------------------------------------------------------------- Итого: 4105.69 MB по состоянию на сегодня.Я на системный раздел отдал 70 Гб и мне пофиг, что папка Windows у меня занимает 11 Гб.
А не пробовали посчитать реальный размер папки winsxs, с учетом хардлинков? К примеру, у меня на семерке файловые менеджеры сообщают о том, что папка занимает 4 гигабайта, хотя если прикинуть разницу между «свободное место + занятое место» и объем раздела, то «свободное + занятое» у меня 33 гигабайта, а размер раздела — 30 гигабайт. То бишь сама папка на деле занимает где-то в районе 0,7 гигабайт (это если в других местах хардлинков нет, если есть — то побольше).
Прикиньте у себя то же самое — посчитайте, сколько занимают все файлы на диске (включая всякие там system volume information), посмотрите на объем свободного места… И сравните с реальной емкостью диска.
Внаглую пиздят функционал и код и даже не скрывают… ндя…
А на счет «пиздят функционал» — вообще-то, если мне память не изменяет, хардлинки в POSIX описаны. А совместимость с POSIX MS заявляла.
признаю, брякнул не подумав…
Исключительно по причине давности инсталляции: ставил давным давно, ещё без сервис-паков, потом накатывал и первый и второй.
Версия Vista Business x64, папка Windows — больше 20 гигабайт.
на самом деле, bat-файл это та еще программа
достаточно посмотреть чего через блокнот
Блин, система без прикладного ПО (из коробки), весящая гигабайты…
Не-е, «такой хоккей нам не нужен» %)
а vsp1cln.exe в системе не найден
Нет способа ограничить папку навсегда в размерах (типа установки максимального размера)?
Размер C:\Windows
Исходный: 14,4
После compcln.exe: 13,4
После волшебной утилиты: 13,5
Делал очистку диска и точек восстановления.
Vista SP1→7 7100→7 7600
кроме упомянутого winsxslite?
(правда, все равно, видимо, придется сносить, потому что лицензия у меня есть только на Professional, стоит сейчас Ultimate, а rearm'ы не бесконечные).
#
Просто хочу сказать спасибо за статью. Утилита compcln очень помогла.
Что интересно: на диске было свободно только полтора гигабайта. Папка windows — 18.7 гигабайта.
После запуска утилиты и очистки старых точек восстановления: папка windows 17.9 гигабайт, свободного места 8.5 гигабайт.
На самом деле я понял, что в принципе хватает стандартных средств очистки(compcln + очистка диска + удаление лишних точек восстановления).
Winsxslite использовать можно на свой страх и риск. на домашнем компе у меня никаких проблем нет, а рабочий комп стал безбожно тормозить.