Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 7 » Разное - [решено] Папка winsxs в Windows 7

Ответить
Настройки темы
Разное - [решено] Папка winsxs в Windows 7

(*.*)


Сообщения: 36561
Благодарности: 6694


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать



Официальная информация
Цитата:
Папка Windows SxS представляет собой «установочное и обслуживаемое состояние» всех системных компонентов. Но, на самом-то деле, папка не потребляет столько дискового пространства, как об этом сообщают встроенные инструменты (DIR и Explorer).

На практике практически каждый файл в папке WinSxS является «жесткой ссылкой» (hard link) на физически существующий файл, то есть все файлы находятся вне этой папки. Так, к примеру, в папке WinSxS находится файл advapi32.dll, размер которого составляет более 700Кб, но, на самом деле, это жесткая ссылка на одноименный файл из папки Windows\System32. При подсчете объема Windows Explorer учитывает этот файл дважды.
Рекомендуется к прочтению
Сколько места на диске занимают жесткие ссылки
6 ошибок людей с маленьким системным разделом
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:48, 12-06-2009

 

Аватара для Real Root

Старожил


Сообщения: 335
Благодарности: 30

Профиль | Отправить PM | Цитировать


Цитата F1re0k:
На практике практически каждый файл в папке WinSxS является «жесткой ссылкой» (hard link) на физически существующий файл, то есть все файлы находятся вне этой папки. »
Это совсем неправда.
По моим наблюдениям папка WinSxS - это своего рода распакованный полностью дистрибутив Windows - там есть все - драйверы, компоненты, библиоткеки (dllcache) разных версий и т.д. И действительно, часть файлов имет жесткие ссылки на System32 и другие папки, это в основном касается драйверов, и неизменяемых файлов. Но, это не касается библиотек и исполняемых файлов! Ну сами по-судите - папка WinSxS сделана в т.ч. и для восстановления Windows "на лету" - т.е. в ней всегда есть оригинальный файл. А если он будет жесткой ссылкой, скажем на Explorer.exe, то при заражении вирусом explorer.exe он также будет зараженным и в WinSxS. Кроме того, для меня остается непонятным для чего нужно держать в этой папке столько копий того же shell32.dll разных версий. Ведь это не msvcr**.dll, от версии и билда которого зависят многие программы. В моей свежеустановленной Win7 x64 SP1 с обнволениями по сей день в папке WinSxS есть аж 10 версий файлов shell32 - по 5 на каждую разрядность. В системе Shell32 имеет версию 7601-17859, а в WinSxS есть и более новые - 21890 и 22015 но по ветке ldr. Так что как видим, WinSxS выполняет однвоременно еще и функцию папок Reinstalled Backups и $hf_mig$ из 5,1 систем.

Короче говоря - очень даже по Майкросовтовски сложить в одну папку WinSxS все файлы из дистрибутива, dllcache, репозиторий драйверов, бекапы обновлений и др. библиотек.
Выскажу свое ФИ: Конечно, Win7 прекрасная система, но некоторые вещи прямо скажем нервируют (ну чем помешала возможность перехода на уровень вверх в проводнике, а также возможность его настройки - отключения строки адреса и т.д.), в особенности сборник хлама в лице WinSxS.
Да, к чему это я.
Размер систменого раздела БЕЗОПАСНО можно уменьшить на пару гиг следующим образом: Можно принудительно заменить файлы из папки System32 их жесткими ссылками на файлы в WinSxS. Но в таком случае, мы теряем возможность восстанавливать систему без дистрибутива Windows, ведь как я уже сказал выше, если вирус изменит к примеру explorer.exe в папке System32, о он тут же поломается и в WinSxS.
Также для освобождения места можно удалить exe файлы и библиотеки более старых весрий, нежели уже имеются в системе. Если с exe файлами все очевидно, то с библиоткеками не совсем так. Всевозможные mfc**, msxml**, msvcp**, vcomp*, GdiPlus*, comctl32, msvcirt, atl.dll, dxmrtp.dll, rtcdll.dll ни вкоем случае не трогаем. Остальные же библиотеки разных версий как правило не нужны. Также, если система уже перешла на ldr ветку, то можно удалить и все версии grd файлов. Тут одно НО - все это приходиться делать в ручную. И не всякому даже опытному пользователю это убдет по зубам. Да и ИМХО не стоит оно того для еденичного компа. Я лично сейчас занимаюсь это для корпортаивной среды, в которой у меня более 600 компов, у 80% из которых харды 80-160Гб.

P.S> Только одного mshtml.dll в WinSxS аж 244 метра!, и ни один из них по-умолчанию не является жесткой ссылкой ни на какой файл в системе

Последний раз редактировалось Real Root, 19-11-2012 в 16:35.


Отправлено: 16:23, 19-11-2012 | #71



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Real Root:
для чего нужно держать в этой папке столько копий того же shell32.dll разных версий. »
DLL Hell - Wikipedia, the free encyclopedia
Side-by-side assembly - Wikipedia, the free encyclopedia

Отправлено: 16:44, 19-11-2012 | #72


Аватара для Real Root

Старожил


Сообщения: 335
Благодарности: 30

Профиль | Отправить PM | Цитировать


Цитата Iska:
DLL Hell - Wikipedia, the free encyclopedia
Side-by-side assembly - Wikipedia, the free encyclopedia »
Проблема Dll hell благополучно решалась в XP. Здесь же мы имеем нечто иное, Майкрософт прикрываясь проблемой dll hell сложила в кучку все что можно. Т.е. сама идея Side by Side, реализовання в NT6 совсем иная нежели это описывалось изначально. Вы пробовали изучать содержимое этой папки (WinSxS). НЕТ? Тогда зачем говорить чего не исследовали? Майкрософт сказало... Ну оно много говорит. К тому же, каким образом по-вашему проблема dll hell может касаться Exe-файлов, inf-файлов драйверов и всего прочего из чего состоит Windows и валяется в нашей любимой WinSxS. Да и вообще, я в первую очередь опровергал вот это утверждение из шапки:
Цитата:
каждый файл в папке WinSxS является «жесткой ссылкой» (hard link) на физически существующий файл, то есть все файлы находятся вне этой папки.
Это утверждение ложно и его следует убрать из шапки!

Последний раз редактировалось Real Root, 19-11-2012 в 17:05.


Отправлено: 16:51, 19-11-2012 | #73


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Real Root:
Проблема Dll hell благополучно решалась в XP. »
Я лишь…
читать дальше »
дал ответ на заданный Вами вопрос, не более. Если Вам не подходят ответы (Вы их прочли, кстати?), либо Вы знаете ответ — к чему задавать вопросы таким:
Цитата Real Root:
для меня остается непонятным для чего нужно держать в этой папке столько копий того же shell32.dll разных версий. »
образом? Перефразируйте что-ли… Выставьте нужный акцент, наконец.

Отправлено: 17:25, 19-11-2012 | #74


Аватара для Real Root

Старожил


Сообщения: 335
Благодарности: 30

Профиль | Отправить PM | Цитировать


Цитата Iska:
образом? Перефразируйте что-ли… Выставьте нужный акцент, наконец. »
Хорошо, если с shell32 не все так для вас очевидно, то поставлю вопрос таким образом:
для чего нужно держать в этой папке столько копий того же explorer.exe разных версий?
Пройдитесь по этой папке поиском с маской *.exe - и посмотрите сколько там exe-файлов. По-вашему все они для решения проблемы dll hell? Может просто Майкрософт всем поморочил голову...
P.S> Wordpad.exe 2-х разных версий... наврное тоже dll hell.

Отправлено: 18:39, 19-11-2012 | #75


Ветеран


Сообщения: 1240
Благодарности: 275

Профиль | Отправить PM | Цитировать


По поводу так называемой "проблемы DLL-hell" у меня есть свое отдельное мнение. Лично я за свою долгую компьютерную жизнь встречался с ним только в древние 90-е когда системные DLL перетирались самопальными инсталляторами в основном игр на какие-то явно левые или патченные версии, с которыми даже сами устанавливаемые игрушки не работали. Решалось это очень просто - был набор системных DLL, которые тупо копировались в System32 (с переименованием занятой если надо или вообще из-под Дос в времена Windows 95). С появлением нормальных инсталляторов, в том числе бесплатных, проблема куда-то ушла сама собой.
Зато долбаные vcredist от каждой версии MSVC-2005/2008 с массой версий/вариантов в таких печенках сидят, что вот бы только встретить того у... нехорошего человека, который эту гадость придумал. Причем в лучших традициях МС - на сайте зачастую невозможно понять какую-же версию vcredist'а предлагают скачать и какая же собственно нужна конкретной программе. "Повбывабы..." (с)
И вот, встречайте! MSVC-2010. "Мы опять нашли виновного в вечной борьбе! Это Side-by-side, от которого наконец-то решено отказаться! Это так облегчит жизнь разработчикам программ!". Одни эмоции...

Отправлено: 19:22, 19-11-2012 | #76


Аватара для Real Root

Старожил


Сообщения: 335
Благодарности: 30

Профиль | Отправить PM | Цитировать


Итак товарищи.
Делюсь опытом очистки WinSxS:
Имеем систему Win7 x64.
Как я уже писал ранее, Microsoft решила в папку записать все что только ей вздумается - тут есть и решение проблемы DLLHell, и весь дистрибутив винды (чтоб можно было изменить/восстановить компоненты без дистрибутива), и все обновы винды так же складываются сюда. Т.е. в XP WinSxS было решение проблемы DllHell, папка $hf_mig$ содержала в себе самые последние версии библиотек, идущие с обновами, папки вида $NtUninstallKBххххххх$ содержали инфу и файлы для отката обнов, папки дистрибутива вообще не было... Теперь же с приходом Vista и Win7 все это стало попадать в одну папку. По мнению Microsoft все системные файлы никогда не должны удаляться из системы, чтоб в любой момент можно было бы восстановить любую версию.
Тут уже отмечалось, что WinSxS состоит из хардлинков. Это так, но лишь примерно на половину. Все остальное - неиспользуемые фалйы для доустановки компонентов и файлы обновлений после SP1. К слову, таких обнволений после SP1 с учетом апгрейда до IE9 и далее до IE10 вышло более 500 штук!!! И в каждом апдейте может быть от 1 до 100 файлов (обновления IE). В итоге мы получаем кучу файлов разных версий которые вообще не могут быть причастны к решению проблемы dllhell - если в необходимости 10 версий shell32 (или imgres) некоторые люди еще убеждены, то как быть с 7-ю вариациями файлов explorer.exe и прочих exe-шников? Тут становится очевидным что все это - сохраненные и НЕ ИИСПОЛЬЗУЕМЫЕ файлы обновлений.
Как удалить только фалы обновлений я не знаю. Приходится действовать по-другому. В XP в папке WinSxS все папки начинаются на x86_Microsoft.БИБЛИОТЕКА.... Обратите внимание на точку перед названием библиотеки. В папке WinSxS Win7 абсолютное большинство папок имеют названия либо не имеющие точки перед конечным именем файла (amd64_fbrespub_...), либо имеют название amd64[x86]_microsoft-..... и т.д. Обратите внимание что после microsoft, вместо точки стоит тире! В то же время, есть и папки вида amd64[x86]_microsoft...... И обратите внимание на то что, именно второй тип папок полностью содержит в себе список таких же, что и были в XP. И помимо их есть еще некоторое колличество новых.
Мое предположение - к реальной проблеме dllhell относятся лишь папки вида amd64[x86]_component. Т.е. после типа библиоткеи, через нижний слешь идет класс либы и после обязательно точка. Пример: amd64_microsoft.vc80.atl......, amd64_microsoft.windows.gdiplus_....., msil_mscorlib.resources_........, wow64_microsoft.windows....., x86_microsoft.vc90.mfc_...... и похожие.
Допускаю, что фалы, начинающиеся на wow64 и msil не относятся к проблеме dllhell, но они не так много весят и я все же стараюсь придерживаться какойто системы, так что не стал рисковать, удаляя их.
Теперь по итогам: Я имею собственное Интернет-кафе, поэтому для меня экономия 5Гб места весьма не маловажное занятие. Есть еще несколько способов освобождения заветного места (замена msi, msp файлов их символьными ссылками на сетевой ресурс - учитывая что стоит клон системы на всех компах, экономим еще 5 Гиг места), в итоге я выигрываю до 12 Гб места. Пока что за все время я не сталкивался с ситуацией чтобы что-то работало не так. Но, в основном люди игрыют в игры, сидят в интернете и используют офисные приложения. Т.е. в моем интернет-кафе не используются спцифичные приложения в стиле старых версий 1С. Скажу лишь одно - пока что отрицательных эффектов не замечено, но как всякая теория, моя - так же требует длительной проверки не одним человеком. И если вы собираетесь испытывать мой способ на рабочей системе, либо вы не обладаете большими знаниями в области устройства ОС, то лучше воздержитесь от этого. Но если все же решились - сделайте обязательный бекап всего системного раздела. Делать нужно именно бекап - не проканает просто скопировать папку в другое место, а в случае чего вернуть ее на мест (причина - хардлинки).
Так что жду отзывов.
К профессионалам этого сайта убедительная просьба - если вы не вникали в устройство этой самой папки WinSxS в Win7, а полагаетесь лишь на отмазки самой MS, и при этом не пытаясь проедлать что-либо из описанного - то воздержитесь от комментариев в стиле:
Цитата Iska:
DLL Hell - Wikipedia, the free encyclopedia
Side-by-side assembly - Wikipedia, the free encyclopedia »

Последний раз редактировалось Real Root, 12-05-2013 в 22:58.


Отправлено: 22:51, 12-05-2013 | #77


Аватара для Avatar-Lion

Support L1+


Contributor


Сообщения: 5269
Благодарности: 1059

Профиль | Отправить PM | Цитировать


Между прочим, у меня вопрос к тем, кто говорит что "папка winsxs не потребляет столько дискового пространства, как об этом сообщает Explorer". Как тогда объяснить это играм и программам, которые про это не знают и считают, что место занято на самом деле? И кстати да, скажите тогда уж заодно как узнать истинный размер этой папки.

Отправлено: 00:02, 13-05-2013 | #78


Аватара для Real Root

Старожил


Сообщения: 335
Благодарности: 30

Профиль | Отправить PM | Цитировать


Цитата Avatar-Lion:
Между прочим, у меня вопрос к тем, кто говорит что "папка winsxs не потребляет столько дискового пространства, как об этом сообщает Explorer". Как тогда объяснить это играм и программам, которые про это не знают и считают, что место занято на самом деле? И кстати да, скажите тогда уж заодно как узнать истинный размер этой папки. »
Она действительно не потребляет столько места сколько показывает проводник. Точнее она потребляет ровно столько сколько показывает проводник, НО ссылки на файлы хранящиеся в этой папке есть и в других местах. А т.к. место на диске выделяется до тех пор пока не будут удалены все ссылки на него, то удаление всей папки WinSxS весом в 8Гб даст выигрышь лишь в 4-5Гб. Т.е. там примерно половина файлов имеет жесткие ссылки в другие места структры каталогов ОС.
Как узнать сколько там уникальных файлов, а сколько нет - не знаю. А какой смысл? По моим оценкам - в свежеустанволенной системе (без обнов) почти все что есть в winSxS - это ссылки. т.е. удалять ее нет вообще смысла - по-идее места не освободиться нисколько. Ну может быть метров 500 (не устанволенные компоненты). Но вот если вашей системе от года и более, и вы регулярно устанавливаете обновления (включен windows update) - то в таком случае уникальных файлов будет очень много.
Даже на только что установленной системе SP1 с устанволенными всеми обновами (а их на сегодня 119), удалив папку WinSxS по предложенной технологии вы выиграете около 1,5-2Гб.
В моем случае освободилось 3800Мб - тестовая система установлена была в июле 2012 года и ежемесячно пополнялась обновками.

Отправлено: 00:19, 13-05-2013 | #79


Аватара для Avatar-Lion

Support L1+


Contributor


Сообщения: 5269
Благодарности: 1059

Профиль | Отправить PM | Цитировать


Так. Стоп. Потребляет, не потребляет... Меня не это волнует. Меня волнует другой момент. Простой пример: игра требует 20Гб свободного места, а у меня свободно только 17Гб. Папка winsxs занимает 9Гб. Вы пишете, что реальный объём ее меньше. Ну и? Установщик игры говорит что недостаточно места, как ему объяснить что на самом деле winsxs весит не 9Гб, а в два раза меньше? Или я чего-то не понимаю?

Отправлено: 00:28, 13-05-2013 | #80



Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 7 » Разное - [решено] Папка winsxs в Windows 7

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Проверка свободного места на диске WoRG AutoIt 2 25-03-2010 17:28
VBS/WSH/JS - скрипт мониторинга свободного места Grub Скриптовые языки администрирования Windows 3 24-06-2009 10:06
Служба репликации обнаружила нехватку свободного места, хотя места там предостаточно. andriod Microsoft Windows NT/2000/2003 5 20-03-2009 11:28
Определение свободного места на диске IGROK Microsoft Windows 2000/XP 8 21-10-2003 15:24
Проблема свободного места CBMen Microsoft Windows 2000/XP 7 06-09-2002 18:59




 
Переход