Пользователь
0,0
рейтинг
14 октября 2009 в 21:21

Уменьшение размеров папки winsxs

Многие обладатели 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.
image

Теперь по порядку:
— 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;
— Перезагрузка.

image

Перезагрузка нужна потому, что к некоторым файлам нет доступа на изменение и скрипт создает 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. Результаты


image

Взглянув на результаты, я понял, что совершил стратегическую ошибку — я взял для теста ноутбук, который почти не использовался в работе. То есть, возраст ОС составлял от силы пару дней, за ноутбуком фактически никто не работал. На домашнем же компе результаты были более ощутимыми. Там папка winsxs похудела гигов на 8, но до тех же самых 14,8.

Автор пишет, что эксплорер не выдает реального размера этой папки, и в его утилите можно узнать истинный размер.

Как бы то ни было, оба пациента не пострадали, а winsxslite оказался отличным подспорьем в деле уменьшения объема ненасытной винды.

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

P.S. Статья про использование дискового пространство в Win7. Никакие сторонние программы для кастрации системы (типа vLite) не использовались.
@koshak
карма
143,5
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (83)

  • 0
    странно, но после compcln.exe размер папки Windows только увеличился гигабайт эдак на 6
    • 0
      Попробуйте удалить точки восстановления, система может создавать их при использовании compcln.exe. Вообще, место на диске может не изменится, а вот чтобы вырасти…
  • +3
    У меня с января месяца эта папка в Win7 занимает 4.1 гига, притом что система обнвлялась 7000->7077 и так далее. Софта установлено немерено > 40 гб. Может в вин7 действительно улучшили структуру этой папки? Делитесь у кого сколько она места занимает в 7-ке
    • 0
      У меня 6.2Гб. В полный рост проблема стоит в 64-битных версиях.
      • 0
        ну это не
        >>Там папка winsxs похудела гигов на 8, но до тех же самых 14,8.
        как у автора. Еще приемлемо. +Эта папка сильно спасает при восстановлении системы.
      • 0
        9,87 ГБ 7х64
        Полный вес попки виды — 23,8 ГБ
        assembly — 1,80 ГБ
        Installer — 3,99 ГБ
        Microsoft.NET — 889 МБ
        Sysnative — 5 ГБ
        System32 — 3,92 ГБ
        SysWOW64 — 1,38 ГБ
        winsxs — 9,87 ГБ
        остальное помельче
        • 0
          попка винды.
          • 0
            Иначе написать рука не повернулась.
            С того момента попку свою винда утяжелила всего на полгига, winsxs увеличилась на полтора
    • 0
      У меня тоже 4.1GB. Windows 7 RC 7100
      • 0
        3.95GB Win7 Pro. Системе 2 недели.
      • 0
        примерно так же, 4.12
      • 0
        Windows 7 RC 7100 4 Гб, Системе около 5 месяцев.
    • 0
      В 7-ке не вижу проблемы с этой папкой. Win7 x64 RTM 2 месяца после установки. Папка весит 5,8ГБ.
      А вот на Висте СП2 х64 за неделю папка разожралась до 14ГБ. После этого я заклялся ставить Виспу.
    • 0
      Один в один. Тоже с 7000 но до 7600. Папка весит 4,1.
    • 0
      5,79 гига. 64 бит, 7600 билд.
    • 0
      3,87GB. Win7 7600 RTM
      Какбы против пока нечего не имею.
      Вот будет занимать больше 10 — буду действовать.
    • –8
      на 7 еще не было апдейтов, поэтому папка и не растет
    • +2
      У меня 10.4Гб. Билд 7600. Системе месяца 3.
    • 0
      Название ОС: Microsoft Windows 7 Корпоративная
      Версия ОС: 6.1.7600 Н/Д сборка 7600
      Дата установки: 11.09.2009, 19:51:33

      winsxs 4 Гб

      в програмфайлз порядко 80 программ,visual studio, adobe creative suite, office и такого же плана.
      Выполняются все апдейты
      • +3
        Опа, мой клон по аватарке =)) Я с утра не сразу сообразил что происходит…
    • 0
      win7 ultimate x64 7100
      7000 поставлена в начале февраля, в мае обновлена до 7100 5.8Gb
    • 0
      11.4 Gb из 27.8 занятых на системном диске.
      Windows Professional (не бета).
    • 0
      6 Гб. Win 7 x86_64 RTM, ~1 мес, часто устанавливаю новый софт/удаляю старый + регулярный Windows Update.
    • 0
      12,2 Гб. x64 RTM
    • 0
      5,91GB — RC 7100 64 bit
      Весь Win7 — около 14 GB
      • 0
        win7 ultimate 7600
    • 0
      я вам завидую у меня на x64 Vista SP2 почти 25 гигов
  • +1
    Vista Business 64-bit — установил 2 недели назад на бук HP Compaq 6910p — размер папки winsxs — 15 Гб… а винт всего 80гб…
    Спасибо за статью, будем худеть!
    • 0
      Неудивительно, там ведь по две (а то и по три) версии каждого файла. Если честно, слегка неочевидно, зачем вам на буке х64.
  • +23
    И эти люди говорят что линух — неочевидная система :)
  • +3
    На ноуте с 7кой (каждый день с середины июля пользуюсь) размер 6Гб. Считаю что проблема актуально только для Висты.
    • 0
      Ну-ну, если бы =\
  • 0
    >Его можно отключить, можно через «Очистку диска» на вкладке «Дополнительно» >оставить только последнюю точку восстановления для экономии места.

    А я бы не выключал, честно очень понравилось как оно в семерке работает, иногда последней точки бывает очень мало.
  • +3
    а и да
    www.thevista.ru/page.php?id=10317
    тут на русском подробно про winsxs
  • 0
    а что же делать простым пользователям?

    (не смотря на то что у каждого простого пользователя есть занкомый «программист»)
    • 0
      простые пользователи, да и программисты, пусть лучше не трогают. выигрыш в несколько гигабайт не стоит потенциальной потери стабильности и надежности.
    • 0
      то же, что и остальным — статья очень подробно расписана.
      или нужны иструкции в духе «нажмите кнопку пуск, выберете стандартыные, командная строка, введите...»?
      • +3
        пользователю не нужны вообще никакие инструкции. у пользователя не долен переполняться системный раздел.
        • 0
          тогда уж пользователя вообще нельзя подпускать к компьютеру.
          выдать ему деревянные счеты, толстый блокнот с ручкой и колоду карт для раскладывания пасьянса.
        • 0
          не то слово!

          интересно, что на это говорит техподдержка майкрософт?
  • +1
    из статьи непонятен чистый эффект Winsxslite, без учета стандартных утилит vsp1cln.exe и compcln.exe
    • 0
      автор пишет, что эту очистку системы нужно провести обязательно перед использованием утилиты, потому как их работа (особенно compcln.exe) удаляет мусор после установки обновлений.
      Тем самым вы сами себе и скрипту облегчите работу, потому как количество дубликатов в системе уменьшится после работы compcln.
  • 0
    Если честно, не понял сакрального смысла использования ln, когда есть штатный fsutil, не говоря уже об mklink.
  • 0
    А не пробовали посчитать реальный размер папки winsxs, с учетом хардлинков?
    • 0
      домашний ноут:
      ## 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 по состоянию на сегодня.
  • 0
    Насколько я помню, эта папка хранит много копий DLL для разных программ. Как метод борьбы c DLL hell.
  • +1
    семерка(7600) стоит всего несколько месяцев — 14,5Гб.
  • –6
    В наше время, когда терабайтным винтом никого не удивишь, жалеть семёрке каких-то 5-10 Гиг это жлобство, по-моему.

    Я на системный раздел отдал 70 Гб и мне пофиг, что папка Windows у меня занимает 11 Гб.
    • +2
      Не у всех терабайты. На нетбуках, к примеру, некоторые производители до сих пор пытаются SSD ставить. Тот же асус в недавнем T91 всего лишь 16 гигабайт поставил…
  • 0
    Что-то не весь текст сообщения в прошлый раз отправился.

    А не пробовали посчитать реальный размер папки winsxs, с учетом хардлинков? К примеру, у меня на семерке файловые менеджеры сообщают о том, что папка занимает 4 гигабайта, хотя если прикинуть разницу между «свободное место + занятое место» и объем раздела, то «свободное + занятое» у меня 33 гигабайта, а размер раздела — 30 гигабайт. То бишь сама папка на деле занимает где-то в районе 0,7 гигабайт (это если в других местах хардлинков нет, если есть — то побольше).

    Прикиньте у себя то же самое — посчитайте, сколько занимают все файлы на диске (включая всякие там system volume information), посмотрите на объем свободного места… И сравните с реальной емкостью диска.
    • НЛО прилетело и опубликовало эту надпись здесь
      • +3
        Хардлинки в NTFS, вообще-то, еще со времен NT4 есть.
        А на счет «пиздят функционал» — вообще-то, если мне память не изменяет, хардлинки в POSIX описаны. А совместимость с POSIX MS заявляла.
        • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Принимаю на вооружение и, скорее всего, попробую воспользоваться советами. Всё равно запланировал в этом месяце переставить Windows. Без особой, правда, нужды.
    Исключительно по причине давности инсталляции: ставил давным давно, ещё без сервис-паков, потом накатывал и первый и второй.

    Версия Vista Business x64, папка Windows — больше 20 гигабайт.

  • +1
    ух! scanner обновился :)
  • –1
    «Это даже не программа — это .bat файл»
    на самом деле, bat-файл это та еще программа
    достаточно посмотреть чего через блокнот
  • +2
    Чем больше я читаю такие статьи, тем меньше хочется слезать с ХР.
    Блин, система без прикладного ПО (из коробки), весящая гигабайты…
  • +1
    Выяснилось, что папка с вистой весит 30 гигов О_О. Точки восстановления у меня отключены. Батник юзать не рискну, но майкрософтовские проги попробую.
    • 0
      Compcln отработала секунды 3, освободила 2 гига. Не густо…
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      До куда они его нафиг «догонят»? У меня системный раздел со всем установленным софтом (и кучей девелоперских библиотек) не превышает 4-х гигов. А тут одна только система в разы больше жрёт. А там начнётся: установить Qt для разработки — 1.5 гига, и пошло-поехало по накатанной…
      Не-е, «такой хоккей нам не нужен» %)
  • 0
    Пробовал несколько месяцев назад назад, критически не хватало места на диске c:\; времени переразбить винт не было. После winsxslite виста стала уходить в синий экран. Тогда поставил себе семерку. Несколько раз подумайте, прежде чем лезть в работающую систему.
  • НЛО прилетело и опубликовало эту надпись здесь
    • –2
      дебил
      • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    использовал только compcln.exe очистил до 13.1 Gb
    а vsp1cln.exe в системе не найден
    • 0
      его удаляет compcln
      • 0
        vsp1cln.exe небыло до начала работы compcln
  • 0
    А эта операция разовая или надо проводить чистку периодически?
    Нет способа ограничить папку навсегда в размерах (типа установки максимального размера)?
    • 0
      через пару месяцев посмотрим :)
  • 0
    Vista Home Premium (ноут Леново, работает без переустановки больше полгода)

    Размер C:\Windows

    Исходный: 14,4
    После compcln.exe: 13,4
    После волшебной утилиты: 13,5

    Делал очистку диска и точек восстановления.
  • +1
    Что мне делать с Win7 RTM, которая получена из:

    Vista SP1→7 7100→7 7600

    кроме упомянутого winsxslite?

    (правда, все равно, видимо, придется сносить, потому что лицензия у меня есть только на Professional, стоит сейчас Ultimate, а rearm'ы не бесконечные).
    • 0
      самые большие папочки — \Windows\Installer и \Windows\winsxs
      • 0
        Хотя чего я выпендриваюсь?

        #
  • 0
    хм… ниче не делал… 4,5 Гб всего…
  • 0
    Я, конечно, очень поздно)
    Просто хочу сказать спасибо за статью. Утилита compcln очень помогла.
    Что интересно: на диске было свободно только полтора гигабайта. Папка windows — 18.7 гигабайта.

    После запуска утилиты и очистки старых точек восстановления: папка windows 17.9 гигабайт, свободного места 8.5 гигабайт.
    • 0
      не за что :)

      На самом деле я понял, что в принципе хватает стандартных средств очистки(compcln + очистка диска + удаление лишних точек восстановления).

      Winsxslite использовать можно на свой страх и риск. на домашнем компе у меня никаких проблем нет, а рабочий комп стал безбожно тормозить.

  • 0
    Передаю слова товарища.

    <Fullmetal Chief> напиши, что Winsxslite порушил нахрен загрузку Вин7 на первом же этапе и ещё от себя можешь добавить по настроению =)
    <Cy6JIuMamop> А что добавить то?
    <Fullmetal Chief> ругательства :)
  • 0
    Хорошая инфа и полезная… имея диск SSD не большого размера в 40 гигов очень пригодилась инфа! Освободилось порядка 4х гигов! При этом воспользовавшись еще удалением из Windows\WinSxS поиском по маске *japan*.*", *iadisc-style*.*, *media*.*, *games*.*, *style*.*, *font-truetype*.* еще пару гигов прибавилось.
  • 0
    мне помогла команда: dism /online /cleanup-image /spsuperseded
  • 0
    Успешно навернул свою 64битную семерку двух лет в сипользовании этими сриптами. Программы на Визуал Си перестали запускаться. И некторые функции операционки тоже пришли в негодность.
    • 0
      Та же история, после второй фазы описанного перестали грузиться вообще все программы, освободилось 6гб, прога не может до завершить действия и вылезает ошибка — см скрин

      Так что кто дочитал до этого момента: НЕ РИСКУЙТЕ! Прежде чем пользоваться советами данной статьи, попробуйте очистить эту папку стандартными средствами, просто воспользоваться Очисткой диска как советуют тут
      • 0
        Расследование показало, что похоже происходит подмена 64 разрядных версий 32 разрядными версиями библиотек, или наоборот, длл-хел короче. Т.е. глюку подвержена 64- битная версия винды.

        На 32битной семерке в аналогичной ситуации с проблемой не сталкивался.

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