Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows Vista (http://forum.oszone.net/forumdisplay.php?f=66)
-   -   Предлагаю обсудить WinSxS в Vista (http://forum.oszone.net/showthread.php?t=111303)

plyrvt 12-07-2008 17:22 849758

Предлагаю обсудить WinSxS в Vista
 



Идея WinSxS отличная и отлично работает в Windows XP.
Размер этой папки при установке тонн разнообразного софта составляет от 15 до 50 Мб (обычно 20 Мб) и хранится там 100-200 файлов в 30-50 папках, и это обычно версии пары Microsoft библиотек (msvcrt, gdiplus, mfc, msvcm и т.д.)

В Windows Vista папка WinSxS выполняет другие функции чем в XP и/или делает это по другому.

По ходу на эту папку возложены также функции %windir%\$NtUninstallKBxxxxxx$\ в XP

Любое установленное обновление существенно увеличивает папку WinSxS - похоже что бросает старые версии обновленных файлов.
Для примера установка SP1 увеличивает папку WinSxS на +1.5 Gb

Сейчас на свежем ноутбуке после установки всех обновлений и набора софта папка WinSxS:
- 31 000 файлов
- 7800 папок
- 4.9 Гб места

По отзывам на иностранных сайтах эта папка обычно разрастается до 15-17 Гб

Также большинство *.exe/*.dll файлов в папке System32 являются линками на реальные файлы в WinSxS

Бесконтрольное и неумерное разрастание этой папки говорит о том, что при установке новых версий файлов (или даже повторной установки одной и той же версии) старые файлы не удаляются.

Соответственно есть идея: можно написать winsxs-clener: каждый файл проверяется на наличие каких-либо ссылок на него, если файл мертвый - удаляем. Если папка остается пустой - тоже удаляем.

Natsuki 12-07-2008 18:21 849790

Интересно и мне об этом узнать. У меня винде полтора года, папка занимает 7.7 Гб. Подозреваю, что большинство этих файлов можно удалить, только я не знаю, какие именно.

Котяра 12-07-2008 22:10 849927

Можно в Яндексе найти WINSXS VISTA XP и WINSXS VISTA.
Вот тут указано, что новая папка заменяет dllcache в Windows XP. А тут об этом:
Цитата:

Цитата plyrvt
на эту папку возложены также функции %windir%\$NtUninstallKBxxxxxx$\ в XP »


fergard 13-07-2008 00:28 850019

Большинство дублей являются системными и служат для совместимости старых программ и Висты. Наглядный пример - скрытая и системная папка Documents and Settings в корне системного диска, которую нельзя ни открыть, ни удалить. Она служит для того, чтобы проги, использовавшие "Мои документы" в ХР, нормально работали с изменившимися путями в Висте.

Насчет прочего - сам не знаю.

Котяра 14-07-2008 20:56 851331

Так каковы же функции WinSxS в Windows Vista?

DiMMMm 14-07-2008 21:32 851362

Котяра, хранить полный набор модулей для установки/удаления функций

Котяра 14-07-2008 21:39 851371

Цитата:

Цитата DiMMMm
Котяра, хранить полный набор модулей для установки/удаления функций »

То есть Vista не требует диск при установке дополнительных компонентов?

DiMMMm 14-07-2008 21:40 851375

Котяра, нет

plyrvt 14-07-2008 22:26 851428

Котяра А тут об этом:

Аргументирую почему я тоже так считаю. C:\Windows\WinSxS\backup\ папка содержит копии старых библиотек после установки патчей. Все файлы из неё я удалил - полет нормальный.

Цитата:

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

DiMMMm Котяра, хранить полный набор модулей для установки/удаления функций

Т.е. функциональность папки C:\Windows\Installer? Или удаляемых Windows компонентов? Так их немного, копейки в общей массе.

Так каковы же функции WinSxS в Windows Vista?
Гремучая смесь из .NET и механизма WinSxS.
Значительная часть Vista - сборки .NET, платформеннозависимыми они становятся после конечной компиляции. Одних папок IL (intermediate language) - несколько тысяч.
Т.е. механизм примерно таков:
- вы скачали и запустили обновление Windows (.NET в своей массе) или установку 3rd party софта .NET
- .NET Framework в кооперации с ОС распихает IL по новосозданных папках и запускает компиляцию бинаринков с ракладыванием по опять же новосозданных папка
- обновить хардлинк в system32 на новую подпапку winsxs

DiMMMm 14-07-2008 22:31 851431

Цитата:

Цитата plyrvt
хранить полный набор модулей для установки/удаления функций »

имеется ввиду апплет Панели управления, котороый удаляет/добавляет модули Windows Vista

Котяра 14-07-2008 23:09 851463

Цитата:

Цитата DiMMMm
имеется ввиду апплет Панели управления, котороый удаляет/добавляет модули Windows Vista »

Именно из-за WinSxS он называется "включение или отключение" (в Windows XP - "установка")?

DiMMMm 15-07-2008 11:32 851869

Котяра, да (turn windows features on or off). На самом деле ничего не удаляется, а только выключается

Базич 20-07-2008 21:57 857100

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

Vancouver 27-10-2008 05:11 934577

Прошу всех, выскажите своё мнение об этом способе снять жирок с WinSxS :)
How to move the WinSxS directory in Vista

Admiral 09-11-2008 03:08 947482

Немного информации по сабжу (на Английском)
What is the WINSXS directory in Windows 2008 and Windows Vista and why is it so large?
The Secret Of Windows Vista Winsxs Folder

Vadikan 09-11-2008 03:20 947489

Цитата:

Цитата Admiral
What is the WINSXS directory in Windows 2008 and Windows Vista and why is it so large? »

Перевод давно в шапке.

Admiral 09-11-2008 03:24 947491

Vadikan, :blush: зря при переводе убрали версии "Виста и 2008м", сразу так и не бросилось в глаза. Зато теперь будет и первоисточник в теме указан.
А можно в первый пост и скрин (такой или подобный по данной папке) разместить, что б всю величину папки были видно сразу?

Vancouver 24-11-2008 10:52 961744

Занимаемое дисковое пространство
Цитата:

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

Valeant 24-11-2008 13:11 961908

Тоже читал, но что-то все равно не так, вот пример есть файл
C:\Windows\System32\urlmon.dll - 1139 K
в WinSxS - есть несколько каталогов x86_microsoft-windows-i..._none_b532d724f011e424 в зависимости от версии обновления или установленного файла urlmon.dll - 1139 K или ..._none_b2d49a63d9c1162b - urlmon.dll - 1132 K (всего каталогов 5 шт.)

или C:\Windows\System32\inetcpl.cpl - 1785 K
в WinSxS - есть несколько каталогов x86_microsoft-windows .... - inetcpl.cpl - 1788 K, x86_microsoft-windows .... - inetcpl.cpl - 1788 K

Так что не все так просто, как кажется, и если это ссылка то куда указывают файлы в других каталогах например от urlmon.dll укоторых даже разные размеры.

InSSIDer 17-02-2009 21:53 1041679

Папка с Windows


Папка Winsxs


Многовато будет! :aggressiv

cprrpc 18-02-2009 10:13 1042010

Я пытался чистить эту папку,давно правда,сократил ее до 1.8гига,была до этого где то 5.5
,принцип очистки таков-включить все службы которые вам необходимы(чтобы работали)и включить все компоненты которые хотите использовать(в компонентах поставить галки) у меня галок всего 3 было,остальные мне не нужны,и приступаем-делаем себе полный доступ к этой папке и ее подпапкам,
и начал удалять из этой папки все что не оспользуется в данный момент,система то что работает недолжна дать удалить,выскочит предупреждение что удалить невозможно-я жал пропустить и отметил галочку Для всех
это конечно рискованный вариант и я его никому и не советую но у меня после этого все работало как и обычно.
А можно вообще все службы включить и только после этого производить очистку

Безопасная очистка это помоему просто удаление дубликатов-ищем дубликаты файлов например с помощью того же тотал командера я нашел их около 500 мегов,их можно удалить помоему ничего не опасаясь

Vadikan 18-02-2009 15:54 1042350

Цитата:

Цитата cprrpc
это конечно рискованный вариант »

Это хороший способ убить систему.

Цитата:

Цитата cprrpc
и я его никому и не советую »

Зачем же тогда пишете об этом?

ewgen86 27-05-2009 21:26 1128984

Короче убито 5 часов почти но победа за нами.
Удалось корректно переместить папку WINSXS на другой раздел.
Если тема еще актуальна опишу весь процесс подробно.
5 часов ушло на догадки и ковыряние, у вас по написанному пройдет максимум за минут 40-час.

Котяра 27-05-2009 22:34 1129026

Цитата:

Цитата ewgen86
Если тема еще актуальна опишу весь процесс подробно. »

С удовольствием прочитаем.

InSSIDer 28-05-2009 07:31 1129170

Скажите, а Windows 7 тоже страдает подобными проблемами?

ewgen86 28-05-2009 11:00 1129306

Внимание!!! Предупреждаю сразу - сначала внимательно читаем, потом только делаем. Лучше распечатать на бумагу если нет другого компа с подключенным инетом под рукой.

Дано : Компьютер в домене Active Directory.



Диски (скрин после переноса папки WinSxS):



Состояние после переноса WinSxS



Делал по материалам сайтов (не спешите сразу делать как там описано, дочитайте до конца):

http://aspoc.net/archives/2007/12/05...tory-in-vista/
http://technet.microsoft.com/ru-ru/s.../bb897556.aspx
http://www.vistax64.com/tutorials/67...ship-file.html

Процедура :)

Как рекомендует Мэт Вэйд (Matt Wade) почти Дарт Вейдер :)

Вам понадобится две утилиты: PendMoves and MoveFile. Поместите их в \Windows\System32 директорию для быстрого доступа.
(Хотя они вряд ли вообще понадобятся, не рекомендую)

1. Если вы в домене то войдите в компьютер под учеткой ЛОКАЛЬНОГО Администратора.
2. С помощью Windows Explorer найдите папку \Windows\WinSXS. Клик правой кнопкой мыши на папке, в быстром меню выбираем "Свойства" (Properties). Выберите вкладку "Безопасность" (Security)для просмотра разрешений на папку. Меняем владельца с TrustedInstaller на Администратора и даем полный доступ группе Администраторов на всю папку и вложенные файлы WinSxS.


!!! на этом советы Мэта можно больше не слушать поэтому переводить не буду. Копирнул As Is. Кому интересно почитайте но не повторяйте моих ошибок. Переходим к пункту 3.


Open an administrator command prompt, and create a dummy directory. Execute “mkdir c:\windows\winsxs.moved“
Next, create a junction (like a Symbolic link for Vista). Execute “mklink /J c:\windows\winsxs.link winsxs.moved“
Now delete the winsxs.moved directory. Execute “rmdir c:\windows\winsxs.moved“
Now we will use MoveFile to schedule renaming of the WinSXS directory at reboot. This is the magic that will give us control over the directory.
From the administrator command prompt, execute “movefile c:\windows\winsxs c:\windows\winsxs.moved“. As you can see, this is renaming the WinSxS directory before Vista can get a lock.
From the command prompt, run “movefile c:\windows\winsxs.link c:\windows\winsxs“. This puts a winsxs directory back (as far as Vista is concerned), so everything doesn’t collapse in a heap.
From the command prompt, run “pendmoves“. It will show the two pending moves you’ve entered above, with NO ERRORS. If it all looks good, REBOOT!

(На этом моменте при стандартной загрузке Vista грузиться отказалась напрочь, в безопасном режиме только BSOD )

On reboot the critical renames/moves will execute, and the WinSxS directory will be unlocked and able to be moved in the next steps.
Open an administrator command prompt, and execute “dir c:\windows\winsxs*“. If you performed the previous steps correctly, you’ll see a WinSxS.moved directory and the WinSxS junction. If it did not work, repeat the above steps. Our next step is to relocate the WinSXS directory and amend the junction.
Using Windows Explorer, COPY the entire WinSxS.moved directory to a \Windows directory on another partition or drive.
When the copy is finished, rename the new directory from WinSxS.moved to WinSxS.
Go to an administrator command prompt and execute “rmdir c:\windows\winsxs“.
Then, execute “mklink /J c:\windows\winsxs d:\windows\winsxs“.
To be sure everything is happy, in Windows Explorer browse to c:\windows\winsxs. You will see all of the files. (Even though they are actually on your other partition or drive)
Reboot
After reboot, you should be able to delete c:\windows\winsxs.moved and FINALLY liberate all that disk space. Whew! Now take a bow.
This process can also be applied to the Windows Updates directory. When you download Windows Updates etc., the files get placed into C:\Windows\SoftwareDistribution, and this will quickly become huge. It is easier though… stop the Automatic Update service, move directory, create junction, restart service, DONE!

Ага, DONE! Щассс...

3. Загрузитесь с установочного диска Vista.

4. После выбора языка установки на следующем окне есть кнопка "Установить", не нажимать, в самом внизу ссылка на восстановление системы, идем туда. Пройдет поиск установленных систем, если диски в рэйде можно там же подгрузить драйвера если потребуется.

5. После того как пройдет попытка автоматического восстановления выбрать "Выбор вариантов восстановления" , внизу будет "Командная строка". Выбираем запускаем консоль CMD.

6. Копируем полностью папку WinSxS на d:\windows\winsxs или другой раздел следующей командой: (внимание!!! если у вас много разделов и много винтов то проверьте буквы дисков, остались они прежними или поменялись, как было у меня- диск D при установке стал E и наоборот, т.е. папку winsxs я копировал на Е диск, потом они вернутся на свои места)

xcopy c:\windows\winsxs\* d:\windows\winsxs /h/i/c/k/e/y/x

У меня копирнулось что то около 79000 файлов, процедура достаточно долгая, минут 20-30.

7. Запускаем “rmdir /s/q c:\windows\winsxs” и линкуем “mklink /J c:\windows\winsxs d:\windows\winsxs”

8. Выполним “dir c:\windows\winsxs*” и проверим связь папки winsxs к d:\windows\winsxs.

9. Вводим exit и перегружаемся.

После перегрузки, если все прошло нормально проверяем свободное место на дисках. У меня освободилось гигов 5. Почему так - не знаю. Ведь папка занимает места почти 12 гиг.



Теперь вкратце опишу мои попытки и методы:

После того как система перестала грузиться, выдавать BSOD даже в безопасном режиме, у меня ушло много времени на борьбу с утилитой movefile. Загрузившись с дистрибутива Висты в командной консоли запускаем c:\windows\regedit там уже выделяем ветвь HCLM - далее меню файл - загрузить куст- И ВОТ ОН ! Проводник! Куст не грузим а пользуемся окном выбора как проводником. Только Total Commander привычней, удобней и безопасней. Ищем на дисках папку с любимым тоталом, Правой кнопкой - Запуск от имени Администратор на екзешнике. Все! Диски и файлы в нашем распоряжении.

Проблема была в том, как выяснилось, что утилита movefile, предназначенная для переноса системных файлов и папок на этапе загрузки системы и до применения параметров безопасности, исправно шедулила при каждом запуске мой линк c:\windows\winsxs изменяя его в c:\windows\winsxs.moved .
Естественно оставляя винду без папки winsxs. Утилита movefile прописывает задания в ветку реестра HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations .
Загрузившись с дистрибутива Висты в командной консоли запускаем c:\windows\regedit там выделяем ветвь HCLM - далее меню файл - загрузить куст- выбираем на диске c:\Windows\System32\config\SYSTEM , тот который без расширения и побольше размером, сохраняем куст под любым именем и лезем в HCLM\(имя загруженного куста)\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations .
Два раза кликаем на параметре PendingFileRenameOperations и видим наши назначенные задания внизу списка. Удаляем, закрываем, выгружаем куст. Перегружаемся. Все работает.

Будут вопросы пишите, отвечу.
После переноса система работает уже сутки , весь софт носится нормально. Глюков нет.

ramon82 30-05-2009 13:34 1130923

доброго времени суток. вот я наткнулся тут на утилитку в виде bat файла для очистки этой самой папки, но запустить пока не решился. видимо сперва нужно сделать бэкап. тут я вижу храбрецов достаточно, кто испытает на себе и опишет результаты? вот ссылка http://windowsfixup.com/2009/05/wins...isk-space-fix/

Andrey10699 01-06-2009 01:18 1131942

Неочень то и получается с этим bat файлом ..
Было 7,3 Гига стало 7,2.... :sorry:

ewgen86 01-06-2009 08:17 1132027

Только открыл батник почитать, сразу предупрежу сторонников FAT fs на домашних компах -
Код:

echo The filesystem on drive %rootd% isn't NTFS.
        echo.
        pause
        goto :EOF

Т.Е. даже не пытайтесь запустить сей шедевр.

Andrey10699 01-06-2009 13:13 1132207

На FAT можно и не пытаться, а на NTFS толку нет.
Таким макаром папка вновь жрёт место на диске.
ждём новых идей.......

Japonec 01-06-2009 21:33 1132570

Интересно...как то и не замечал того, до момента прочтения сей статьи...а заметив,офигел...Папка та,у меня 10 гиков отьела .А что мелкомягкие по сему поводу говорят?Ведь это трабл не детский...Этак через год,папка эта WinSxS,весь сис раздел съест...

ramon82 02-06-2009 23:37 1133491

жаль, что шедевр не удался. хотя, версия то 1.86! следовательно, обновляется и, значит, толк есть? ничего не понимаю. по идее, в правильно спроектированной системе продолжительность её работы не должна проводить к коллапсу. или висту выпустили "на время", пока не выйдет 7ка? :-D

Kirik777 05-06-2009 20:14 1136056

Опробовал рискованный вариант очистки этой папки, было 9.3 гига, стало 5, собсно пока полёт нормальный, побочных эффектов не замчено, единственное что похоже часть приложений использовали эти библиотеки, при их первом запуске после очистки немного дольше думают.
Похоже я поспешил с выводами папка sysWOW64 разрослась до 10 гигов :(

Базич 06-08-2009 17:03 1187290

что вы думаете на счет этой статьи ?
Кто нибудь пробовал эту тулзу?
http://bazikyan.ru/vista-winsxs-fix/

ramon82 06-08-2009 18:11 1187374

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

RamSes 13-07-2011 15:40 1712549

Народ я попытался очистить эту папку через TuneUp, половину очистил и у меня игры перестали запускаться

sputnikk 18-01-2015 13:22 2457824

Посмотрел на виртуалке. Не добавили очистку системных файлов как в 7. Видать не хотят заморачиваться. Хотя ещё прилично ноутов с Вистой.

Чуча 27-01-2015 12:10 2462039

Господа. В папке WINSXS находятся 4 версии CbsCore.dll, а в папке SYSTEM32 нет CbsCore.dll. Как скопировать туда указанный файл из WINSXS. Вопрос связан с тем, что при попытке отключить компонент Конференц-зал зависает TrustedInstaller-ветка CbsCore.dll. CbsCore Shutdown Processing находится в состоянии-Ready. Приходится Убивать процесс и снимать задачу.

nikmedber 21-07-2016 06:34 2652754

Прошу прощения что тревожу старую тему.
Сделал все по инструкции ewgen86. Проблемы стали возникать при получение новых обновлений. Не могут установиться, журнал обновлений пишет отказ, код ошибки 80070011. Кто ни будь подскажет, как можно это исправить?

Vadikan 21-07-2016 14:23 2652913

nikmedber, переустановите Windows, сохранив настройки и установленные программы.
А еще лучше, обновитесь до более новой ОС, где есть годные инструменты очистки.
https://www.outsidethebox.ms/15272/

nikmedber 22-07-2016 05:18 2653106

Простите, не понял на счет переустановки. После переустановки папка winsxs вернется на тот же раздел что и система, или просто пропишутся правильно пути для папки winsxs на другом разделе?

Vadikan 25-07-2016 15:33 2654005

Цитата:

Цитата nikmedber
После переустановки папка winsxs вернется на тот же раздел что и система »

Да

mwz 25-07-2016 15:49 2654009

Цитата:

Цитата nikmedber
или просто пропишутся правильно пути для папки winsxs на другом разделе? »

В этой папке лежит масса жёстких ссылок (hardlinks) на другие файлы папки Windows, а жёсткие ссылки могут создаваться только на том же диске, где лежит файл, используемый для жёсткой ссылки.

Жёсткие ссылки не занимают на диске места вообще: это просто вторая (третья, ..., десятая, ...) запись, ссылающаяся на файл, уже имеющийся на этом диске; причём каждая из этих жёстких ссылок может иметь имя вообще никак не связанное с именем других жёстких ссылок на этот же файл.

Т.е. реальный объём, занимаемый папкой WinSxS, существенно меньше того объёма, который показывает Проводник.

sputnikk 17-08-2016 11:46 2660675

Реальный объём можно увидеть загрузившись с Лайв СД с Линукс, типа Ubuntu или KRD 10. В ней пустота. Чистить самому можно только C:\Windows\winsxs\backup\.


Время: 05:26.

Время: 05:26.
© OSzone.net 2001-