Отключить автоматическое сжатие Windows 8.1 Component Store (WinSxS / DriverStore)?

5335
Quad5Ny

В Windows 8.1 имеется новая запланированная задача (Servicing \ StartComponentCleanup), которая автоматически удаляет или сжимает замененные и неиспользуемые файлы из хранилища «Бок о бок», «DriverStore» и папки драйверов.

Мне было интересно, если кто-нибудь знает, возможно ли сохранить компонент в чистоте, но пропустить сжатие, все без отключения сжатия NTFS или запланированной задачи?

Обратите внимание, что если некоторые из драйверов / файлов начинают загружаться / использоваться, Windows, похоже, не распаковывает их после сжатия. Чтобы распаковать их, вы должны вручную запустить "compact / U" в качестве службы TrustedInstaller.

3
Использование «набора параметров fsutil» для включения флага «DisableCompression» не является опцией, оно приводило к ошибке DISM с ошибкой 0x80070031 ERROR_COMPRESSION_DISABLED. Quad5Ny 10 лет назад 0

3 ответа на вопрос

4
Troy

Как вы оцениваете экономию сжатия? Что-то не так в ваших числах, потому что образ RTM 8.1 сэкономит около 114 МБ от сжатия NTFS только встроенных драйверов (на x64). Просто используйте проводник, чтобы получить размер c: \ windows \ system32 \ driverstore, и вы увидите, что разница между «Размером» и «Размером на диске» составляет около 114 МБ. / startcomponentcleanup не выполняет заново выполненную работу, поэтому для его запуска в будущем потребуется только сжатие новых драйверов, файлов резервных копий или замененных файлов.

С образом RTM 8.1 в категории резервных копий очень мало нуждающихся в сжатии, и в заменяемой категории не должно быть ничего. Замененная категория - это единственное сжатие, которое пропускается при использовании / startcomponentcleanup / resetbase вместо обычного / startcomponentcleanup. Итак, я не уверен, какое преимущество вы видите, используя его в отношении производительности сжатия. Сжатие замененных битов (если они у вас есть) действительно занимает некоторое время, но оно сохраняет вашу способность удалять КБ, сохраняя при этом> 90% пространства.

Чтобы увидеть точные значения эффектов / startcomponentcleanup или / startcomponentcleanup / resetbase на winsxs, запустите dism / online / cleanup-image / analysiscomponentstore до и после запуска / startcomponentcleanup ... Посмотрите конкретно на числа «Резервное копирование и отключенные функции». Вы заметите, что после выполнения команды есть существенная разница. Кроме того, если вы перезапустите / startcomponentcleanup, вы должны увидеть, что он завершается довольно быстро во 2-й раз, потому что ему нечего делать.

Редактировать - некоторые реальные цифры для сравнения

Например, на компьютере с X64, который я только что обновил январскими обновлениями во вторник (включая необязательные обновления), вот как происходит сжатие, глядя на изменения, произошедшие из-за январского патча.

Примечание. Приведенная ниже экономия достигается за счет сжатия, которое не является сжатием NTFS, и поэтому сжатые файлы не отображаются как сжатые в проводнике. Сжатие NTFS используется только / startcomponentcleanup для сжатия драйверов входящих сообщений (которое не включено ниже и обеспечивает экономию около 114 МБ для хранилища драйверов)

Фактические числа с использованием / startcomponentcleanup

+354.25 MB added for January updates - 34.14 MB saved by superseded package removal - 67.84 MB saved for Backups (99.86 MB compressed to 32.02 MB)  -203.36 MB saved for Superseded Components (220.25 MB compressed to 16.89 MB)  --------- 48.91 MB growth due to January updates after /startcomponentcleanup 

Фактические числа с использованием / startcomponentcleanup / resetbase

Если вы используете «/ startcomponentcleanup / resetbase» вместо просто «/ startcomponentcleanup», вы экономите дополнительные 16,89 МБ, но теперь вы не можете удалить оставшиеся обновления и можете заметить, что все те же сжатия выполняются, как указано выше, за исключением «Замененных компонентов».

 48.91 MB growth due to January updates after /startcomponentcleanup - 16.89 MB savings due to /resetbase --------- 32.02 MB growth due to January updates after /resetbase 

Пример использования / analysiscomponentstore

Вот результаты запуска / analysiscomponentstore после применения январских обновлений и после запуска / startcomponentcleanup. Обратите внимание на номер «Резервные копии и отключенные компоненты», поскольку он указывает на временное хранилище, необходимое для хранилища компонентов (winsxs).

После применения январских обновлений

Windows Explorer Reported Size of Component Store : 5.75 GB  Actual Size of Component Store : 5.51 GB  Shared with Windows : 4.49 GB **Backups and Disabled Features : 884.98 MB** Cache and Temporary Data : 161.29 MB  Date of Last Cleanup : 2014-01-14 10:04:32  Number of Reclaimable Packages : 3 Component Store Cleanup Recommended : Yes 

После запуска / startcomponentcleanup

Windows Explorer Reported Size of Component Store : 5.33 GB  Actual Size of Component Store : 5.21 GB  Shared with Windows : 4.49 GB **Backups and Disabled Features : 595.02 MB** Cache and Temporary Data : 139.23 MB  Date of Last Cleanup : 2014-01-14 10:38:59  Number of Reclaimable Packages : 0 Component Store Cleanup Recommended : No 
правила гласят, что вы должны публиковать это как комментарий, а не как ответ: https://superuser.com/help/answering magicandre1981 10 лет назад 0
Вы должны иметь 50 репутации, чтобы комментировать ветку вопросов или ветку ответов, которой у меня нет. Troy 10 лет назад 0
@ Трой Вы, кажется, как-то создали две учетные записи. (1) http://superuser.com/users/288115/troy и (2) http://superuser.com/users/289377/troy Kevin Panko 10 лет назад 0
Вы можете объединить эти учетные записи, и тогда вы сможете вносить изменения в свои сообщения, не дожидаясь одобрения: http://superuser.com/help/merging-accounts. Kevin Panko 10 лет назад 0
@ Трой хорошо. Кстати, я написал вам в личку на msfn.org magicandre1981 10 лет назад 0
3
Troy

There is not an exposed mechanism for disabling the compression portion of the servicing maintenance task.

Which maintenance compression do want to disable, and why? The maintenance task compresses backups, and other duplicated files, and superseded updates. As you have noted, it also compresses inbox drivers using NTFS compression. Is it just the NTFS compression of inbox drivers that you would like to disable, and why?

Я искал, чтобы отключить всю процедуру сжатия, которую запускает переключатель StartComponentCleanup. В новой версии 8.1 сжато около 600 файлов с коэффициентом сжатия в среднем около 1,5 к 1 ... но сэкономленное место составляет всего 21 МБ. - Я уверен, что у сжатия должны быть некоторые преимущества, но я просто не вижу этого. Quad5Ny 10 лет назад 0
2
Quad5Ny

После некоторых экспериментов с виртуальной машиной кажется, что запуск DISM с добавленным переключателем "/ ResetBase" не будет сжимать какие-либо файлы, в то время как все еще производится очистка замененных компонентов. Однако есть одна загвоздка: запуск ResetBase удалит возможность удаления обновлений.

Полное решение:

  • Изменить задачу очистки компонента
    1. Откройте taskschd.msc и перейдите в \ Microsoft \ Windows \ Servicing \
    2. Дважды щелкните StartComponentCleanup
    3. Удалите пользовательский обработчик на вкладке Действия
    4. Добавьте новое действие, указав «C: \ Windows \ System32 \ Dism.exe» в качестве программы и «/ Online / Cleanup-Image / StartComponentCleanup / ResetBase» в качестве аргументов


  • Распакуйте \ Windows \ WinSxS \, \ Windows \ System32 \ drivers \ and \ Windows \ System32 \ DriverStore \
    1. Откройте повышенную (администратор) командную строку
    2. Перейдите к базовой папке, которую вы хотите распаковать (например: Windows \ WinSxS)
    3. Введите «Компакт / U / S / A / I / Q» и дождитесь его завершения
    4. Тип "PSExec -hsi cmd"
    5. Перейдите к базовой папке, которую вы хотите распаковать
    6. Введите «Компакт / U / S / A / I / Q» и дождитесь его завершения
    7. Тип "Выход"
    8. Типа "net start TrustedInstaller"
    9. Тип "runassystem_x64.exe" runfromtoken_x64.exerustinstaller.exe 1 cmd ""
    10. Перейдите к базовой папке, которую вы хотите распаковать
    11. Введите «Компакт / U / S / A / I / Q» и дождитесь его завершения
    12. Тип "Выход"
    13. Типа "чистый стоп TrustedInstaller"

Примечание. Вы работаете с Compact 3 раза из-за разных списков ACL для файлов (один раз от имени администратора, один раз от имени локальной системы и один раз от службы TrustedInstaller.

Примечание: при запуске утилиты очистки диска Windows с установленными флажками «Пакеты драйверов устройств» или «Очистка центра обновления Windows» файлы будут сжиматься независимо от изменений, внесенных в планировщик задач (taskschd.msc). Quad5Ny 10 лет назад 0

Похожие вопросы