Почему размер файла CBS.log составляет 20 ГБ?

129

Два дня назад у меня был полный C:диск, после которого я удалил 8 ГБ данных. На следующий день жесткий диск снова был заполнен, поэтому я продолжил удаление еще 5 ГБ, и на следующий день диск снова был заполнен.

После некоторых поисков причин, по которым дисковое пространство заполнялось так быстро, я воспользовался этим windirstatинструментом, чтобы определить, какие файлы занимают больше всего места. Я обнаружил, что CBS.logразмер файла c:\windows\logs\cbs\20 ГБ.

Я использую Windows 8.

  • Должен ли этот файл быть таким большим, а если нет, как я могу уменьшить его размер?
  • Какова цель этого файла?
  • Могу ли я удалить это?
skmasq
источник
Вы добавили подробное ведение журнала? blogs.technet.com/b/joscon/archive/2010/11/18/…
magicandre1981

Ответы:

34

Это файл, который создается средством проверки ресурсов Microsoft Windows (SFC.exe).

Нет, оно не должно быть таким большим. CBS.persist.log должен генерироваться, когда размер CBS достигает около 50 мегабайт. CBS.log должен быть скопирован в cbs.persist.log, и должен быть запущен новый файл cbs.log.

Вы можете попробовать сжать файл:

  • Если вы щелкните правой кнопкой мыши на файле CBS.log
  • Затем нажмите на Свойства
  • На вкладке Общие нажмите Дополнительно
  • Установите флажок «Сжать содержимое для экономии места на диске» и нажмите «ОК».

Или, если вы уверены, что ваша система работает нормально, вы можете удалить этот файл. SFC.exe создаст новый файл при следующем запуске. Но это может быть полезно для устранения неполадок.

задерживаться
источник
16
Просто к сведению, CBS.logне генерируется SFC. Хотя SFC добавляет к нему (с [SR]тегом), кажется, что TrustedInstaller.exe (он же CBS, он же компонентный сервис) создает файлы журналов. Источник: Понимание обслуживания на основе компонентов
Vinayak
3
Гм, я серьезно сомневаюсь, что сжатие NTFS предотвратит попытку запуска формы TrustedInstaller makecabв лог- файле , который умрет, если его размер> = 2 ГБ. Лучшая идея состоит в том, чтобы сжать его в каком-то другом явном формате сжатия, который обычно дает ему новое имя файла, таким образом предотвращая бессмысленную подачу TrustedInstaller его в makecab...
SamB
5
@SamB правильно. Эта проблема возникает из-за того, что формат .CAB имеет жесткое ограничение размера файла 2 ГБ, и TrustedInstaller будет продолжать выпускать makecabрегулярно, каждый раз создавая новый файл ~ 100 МБ в вашей временной папке. Решение состоит в том, чтобы удалить файл журнала объемом 2 ГБ (это можно безопасно сделать, поскольку они используются только для устранения неполадок).
Syclone0044
6
Почему это помечается как правильный ответ, когда @Vinayak предлагает неверные детали? Конечно, для этого предназначена функция «редактировать»?
Кригги
85

У меня был файл cbs.persist.log 17 ГБ, так как я был уверен, что это не я заполняю свой ssd, я искал необычные большие файлы в каталоге журналов Windows. В любом случае мог думать только о проблеме сжатия.

Итак, чтобы сбросить сжатие в папке CBS, я использовал следующий метод:

  1. Отключите TrustedInstaller.exe (установщик модуля Windows) в службах диспетчера задач
  2. Удалите все файлы .log в каталоге C: \ Windows \ Logs \ CBS , а также удалите файлы .persist и .cab
  3. Снова включите TrustedInstaller.exe

ПРИМЕЧАНИЕ. Очистка папки CBS сбрасывает процесс сжатия, поэтому новые созданные файлы журналов не должны превышать 50 МБ до сжатия в CAB-файлы, как это должно быть.

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

Это решение все еще работает для меня на Windows 7/8 / 8.1 через 1 год

Хотя я не могу быть уверен, что сжатие никогда не завершится неудачей, если это произойдет ... тогда просто повторите решение снова, но обязательно удалите TrustedInstaller перед удалением файлов в папке CBS.

Надеюсь это поможет.

Джин
источник
5
Как отключить установщик модулей Windows? В окне «Службы» все кнопки запуска, остановки, возобновления, паузы и т. Д. Выделены серым цветом. Диспетчер задач Windows также не может убить TrustedInstaller.exe ..
Alph.Dev
3
@ Alph.Dev Запустите services.mscчерез Win + R («Выполнить»), найдите сервис, щелкните правой кнопкой мыши - Свойства - Пуск: Отключить. Затем перезагрузите компьютер, очистите файлы и установите для него значение «Вручную» или «Автоматически» (автоматическое было по умолчанию в моей системе Win7).
chrki
Есть более простой способ, просто используйте LockHunter, чтобы удалить его.
майкинетор
скрипт PowerShell?
PreguntonCojoneroCabrón
27

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

  1. Я запустил очень большое количество очень больших обновлений Windows (кучу языковых пакетов и пакетов обновления и т. Д.), В то время как у меня также было открыто большое количество других приложений и окон (я разработчик). Затем я пошел на обед.
  2. Центр обновления Windows работал, пока система не исчерпала память (RAM). У меня 32 гигабайта, но этого было недостаточно.
  3. «Trusted Installer.exe» (служба «Установщик модуля Windows») пыталась сжать быстро растущий файл журнала, но не смогла запустить его, либо потому, что журнал рос слишком быстро, либо не мог запуститься из-за нехватки памяти, или оба. Поэтому, когда это было необходимо, служба установщика модулей Windows даже не запускалась вообще (даже временно).
  4. С тех пор он не мог обрабатывать файл журнала, поскольку он был слишком большим для сжатия .CAB (около 25 гигабайт!), И поэтому начался порочный цикл, и ничто не могло его остановить (кроме как при ручном вмешательстве, как описано в « Джин "выше).
  5. Как только размер файла журнала увеличился до 60 гигабайт на моем SSD, он занял все мое свободное пространство, и я получил предупреждение «недостаточно места на диске», и начал искать причину.

Кажется, следующий процесс устранил проблему: «отключите службу установщика модуля Windows, удалите содержимое папки C: \ Windows \ Logs \ CBS \ и папки« C: \ Windows \ Temp »- пропустите все используемые файлы, затем снова запустите службу установщика модулей Windows и установите для нее «ручной» запуск (по умолчанию) ». Перезагрузка.

FirstFraktal
источник
2
На моей машине в c: \ windows \ temp находились тысячи файлов - надеюсь, сокращение до нескольких сотен файлов окажет правильное влияние на снижение взрывного роста CBS.log
Toybuilder
10

В качестве обходного пути, в Windows 7, если служба «Установщик модулей Windows» остановлена, то ее запуск запускает процесс ротации журналов, который создает новый файл cbs.log и перемещает старый файл в сжатый архив CbsPersist .cab. Мой лог-файл 500 МБ был сжат до 30 МБ.

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

ivanatpr
источник
10
Обратите внимание, что это не работает само по себе, если какой-либо из файлов уже достиг отметки 2 ГБ, а makecabпросто сдается, когда заходит так далеко (оставляя поврежденный cab_*файл %WINDIR%\Temp); в этом случае вам также необходимо CbsPersist_*.logкаким-то образом избавиться от негабаритного файла, чтобы TrustedInstaller («Установщик модулей Windows») не пытался запустить makecabих при запуске. Я использовал 7-zip, чтобы сжать мои файлы в .log.xz, но удаление или переименование, вероятно, также были бы возможны. После этого перезапуск позаботится о разумных размерах.
СамБ
6
@SamB правильно. Эта проблема возникает из-за того, что формат .CAB имеет жесткое ограничение на размер файла 2 ГБ, и TrustedInstaller будет продолжать выпускать его makecabрегулярно, каждый раз создавая новый файл размером ~ 100 МБ в вашей временной папке. Решение состоит в том, чтобы удалить файл журнала объемом 2 ГБ (это можно безопасно сделать, поскольку они используются только для устранения неполадок). Большое спасибо SamB за публикацию, вы достигли первопричины этой проблемы. Я на Windows 7 SP1 64-разрядная. Я не могу поверить, что Microsoft еще не исправила это.
Syclone0044
Если эта служба активна, выбор «Перезапустить» имеет тот же эффект. Эффект не так велик, если вы установили каталог Logs \ CBS как сжатый.
PJTraill
5

В моем случае я не смог остановить службу даже после отключения. Следующие шаги помогли мне остановить службу и удалить журнал CBS.

C:\Windows\system32>net stop TrustedInstaller
The requested pause, continue, or stop is not valid for this service.

More help is available by typing NET HELPMSG 2191.

C:\Windows\system32>sc qc TrustedInstaller
[SC] QueryServiceConfig SUCCESS

SERVICE_NAME: TrustedInstaller
    TYPE               : 10  WIN32_OWN_PROCESS
    START_TYPE         : 4   DISABLED
    ERROR_CONTROL      : 1   NORMAL
    BINARY_PATH_NAME   : C:\Windows\servicing\TrustedInstaller.exe
    LOAD_ORDER_GROUP   : ProfSvc_Group
    TAG                : 0
    DISPLAY_NAME       : Windows Modules Installer
    DEPENDENCIES       :
    SERVICE_START_NAME : localSystem

C:\Windows\system32>tasklist | find /i "TrustedInstaller.exe"
TrustedInstaller.exe          2164 Services                   0    132,404 K

C:\Windows\system32>taskkill /f /im "TrustedInstaller.exe"
SUCCESS: The process "TrustedInstaller.exe" with PID 2164 has been terminated.

На всякий случай, если это кому-нибудь поможет.

gnaanaa
источник
Возможно. Вот почему нам нужно остановить службу, как указано выше, чтобы удалить файл журнала.
gnaanaa
1
Да, но так как вы не можете остановить это вручную, вы должны отключить и перезагрузить компьютер.
StackzOfZtuff
На моем W7x64 я не мог отключить службу, но я мог убить TrustedInstaller.exe. Это сняло блокировку с файла, и я смог удалить ее.
user136036
1

На сервере 2008 R2 My C:\windows\tempбыло пусто. Я попытался удалить журналы cbs, и журнал cbs объемом 2,5 ГБ продолжал возвращаться, поэтому я C:\windows\tempпопытался после попытки удалить журнал, и там появилось большое количество .dmpфайлов.

Удалил их и файл журнала теперь исчез. Дисковое пространство восстановлено. (Мой продолжал возвращаться даже после удаления.)

Надеюсь это поможет
источник