Чому розмір файлу CBS.log становить 20 ГБ


129

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

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

Я використовую Windows 8.

  • Чи повинен цей файл бути таким великим, а якщо ні, то як я можу зменшити розмір?
  • Яка мета цього файлу?
  • Чи можна її видалити?

Ви додали багатослівний журнал? 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
Просто FYI, CBS.logне генерується SFC. Хоча SFC додає до нього (з [SR]тегом), здається, що TrustedInstaller.exe (він же CBS aka Component Based Servicing) - це те, що створює файли журналів. Джерело: Розуміння обслуговування на основі компонентів
Vinayak

3
Гм, я серйозно сумніваюся, що стиснення NTFS не дозволить формі TrustedInstaller намагатися запуститись makecabна лог-файл, який загине, якщо розмір> = 2 Гб. Краща ідея - стиснути його в якомусь іншому явному форматі стиснення, який, як правило, дасть йому нове ім'я файлу, тим самим не даючи TrustedInstaller безглуздо подавати його на makecab...
SamB

5
@SamB правильний. Ця проблема трапляється тому, що формат .CAB має жорстке обмеження розміру файлу 2GiB, і TrustedInstaller продовжуватиме makecabрегулярно видавати , створюючи новий ~ 100MiB файл у своїй папці temp. Рішення полягає в тому, щоб видалити файл журналу 2 Гб (що можна сміливо зробити, оскільки вони використовуються лише для усунення несправностей).
Syclone0044

6
Чому це позначено як правильну відповідь, коли @Vinayak припускає, що в нього є неправильні дані? Звичайно, для чого функція "редагування"?
Criggie

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, щоб видалити його.
майкінетор

scripthell скрипт?
PreguntonCojoneroCabrón

27

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

  1. Я запустив дуже велику кількість дуже великих оновлень для Windows (купа мовних пакетів та пакетів послуг тощо), в той час як у мене також було відкрито велику кількість інших програм та вікон (я розробник). Потім я пішов обідати.
  2. Windows Update працював доти, поки у системи не вистачало пам'яті (ОЗУ). У мене 32 гігабайти, але цього було недостатньо.
  3. "Trusted Installer.exe" ("Інсталятор модуля Windows") намагався стиснути швидко зростаючий файл журналу, але не міг запуститися, тому що журнал зростав занадто швидко, або він не міг запуститися через низьку пам'ять, або обидва. Тож коли це було потрібно, служба встановлення модулів Windows навіть не запускалася (навіть тимчасово).
  4. З цього моменту він не міг мати справу з файлом журналу, оскільки він був занадто великий для стиснення .CAB (близько 25 гігабайт!), І тому розпочався порочний цикл, і нічого не могло його зупинити (крім ручного втручання, як описано в " Джин "вище).
  5. Як тільки файл журналу виріс до 60 гігабайт на моєму SSD, він використав весь мій вільний простір, і я отримав попередження про «низький простір пам’яті» і почав шукати причину.

Наступний процес, як видається, вирішив проблему: "відключити службу встановлення модуля Windows, видаліть вміст папки C: \ Windows \ Журнали \ CBS \ та папку" C: \ Windows \ Temp "- пропустіть усі використовувані файли, потім запустити службу інсталятора модуля Windows знову та встановіть його на "ручний" запуск (за замовчуванням) ". Перезавантажте.


2
На моїй машині було тисячі файлів c: \ windows \ temp - сподіваємось, обрізка, що до декількох сотень файлів матиме правильний ефект на зменшення вибухового зростання CBS.log
Toybuilder

10

Як вирішення, у Windows 7, якщо послуга "Установник модулів Windows" зупинена, після запуску виявляється, що вона запускає процес обертання журналу, що створює свіжий файл cbs.log та переміщує старий файл у стислий архів .cab CbsPersist. Мій файл журналу 500 Мб стиснувся до 30 Мб.

Зауважте, що для запуску може знадобитися кілька хвилин. Здається, сервіс автоматично припиняється, як тільки це робиться.


10
Зверніть увагу, що він не працює сам по собі, якщо будь-який з файлів вже потрапив до позначки 2GiB, а makecabпросто здається, коли він потрапляє так далеко (залишаючи пошкоджений cab_*файл у %WINDIR%\Temp); у такому випадку вам також потрібно CbsPersist_*.logякось розпорядитися негабаритним файлом, щоб TrustedInstaller ("інсталятор модулів Windows") не намагався запустити makecabїх при запуску. Я використовував 7-zip для стиснення шахти у файли .log.xz, але видалення чи перейменування, ймовірно, також було б варіантами. Після цього, перезавантажившись, піклуються про розумно розміри.
SamB

6
@SamB правильний. Ця проблема трапляється тому, що формат .CAB має жорстке обмеження розміру файлу 2GiB, і TrustedInstaller продовжуватиме makecabрегулярно видавати , створюючи новий ~ 100MiB файл у своїй папці temp. Рішення полягає в тому, щоб видалити файл журналу 2 Гб (що сміливо можна зробити, оскільки вони використовуються лише для усунення несправностей). Дякую вам дуже SamB за публікацію, що ви зрозуміли першопричину цієї проблеми. Я на 64-розрядному Windows 7 SP1. Не можу повірити, що 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.

Про всяк випадок, якщо це комусь допоможе.


Хлопець на форумах MS каже, що це задумано
StackzOfZtuff

Можливо. Ось чому нам потрібно зупинити службу, як описано вище, щоб видалити файл журналу.
gnaanaa

1
Так, але оскільки ви не можете зупинити це вручну, вам доведеться відключити та перезавантажити.
StackzOfZtuff

На моєму W7x64 я не міг відключити службу, але міг убити TrustedInstaller.exe. Це видалило замок з файлу, і я зміг його видалити.
користувач136036

1

На сервері 2008 R2 "Моє" C:\windows\tempбуло порожнім. Я спробував видалити журнали cbs і журнал cbs 2,5 Гб продовжував повертатися, тому я перевірив C:\windows\tempпісля спроби видалити журнал, і там з’явилася велика кількість .dmpфайлів.

Видалено ці дані, а файл журналу тепер відсутній. Місце на диску було відновлено. (Шахта продовжувала повертатися навіть після її видалення.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.