Dlaczego rozmiar pliku CBS.log wynosi 20 GB

129

Dwa dni temu miałem pełny C:dysk, po którym usunąłem 8 GB danych. Następnego dnia dysk twardy był ponownie pełny, więc kontynuowałem usuwanie kolejnych 5 GB, a następnego dnia dysk był pełny.

Po kilku poszukiwaniach przyczyny tak szybkiego zapełnienia miejsca na dysku użyłem windirstatnarzędzia do znalezienia plików, które zajmowały najwięcej miejsca. Dowiedziałem się, że CBS.logplik, który się znajduje c:\windows\logs\cbs\, ma rozmiar 20 GB.

Korzystam z systemu Windows 8.

  • Czy ten plik powinien być tak duży, a jeśli nie, jak mogę go zmniejszyć?
  • Jaki jest cel tego pliku?
  • Czy mogę to usunąć?
skmasq
źródło
czy dodałeś pełne logowanie? blogs.technet.com/b/joscon/archive/2010/11/18/…
magicandre1981

Odpowiedzi:

34

Jest to plik generowany przez narzędzie Microsoft Windows Resource Checker (SFC.exe).

Nie, nie powinno być tak duże. Plik CBS.persist.log powinien zostać wygenerowany, gdy rozmiar CBS osiągnie około 50 megabajtów. Plik CBS.log należy skopiować do cbs.persist.log i uruchomić nowy plik cbs.log.

Możesz spróbować skompresować plik:

  • Jeśli klikniesz prawym przyciskiem myszy plik CBS.log
  • Następnie kliknij Właściwości
  • Na karcie Ogólne kliknij opcję Zaawansowane
  • Zaznacz „Kompresuj zawartość, aby zaoszczędzić miejsce na dysku” i kliknij OK

Lub, jeśli masz pewność, że twój system działa poprawnie, możesz usunąć ten plik. SFC.exe utworzy nowy, przy następnym uruchomieniu. Ale może być przydatny do rozwiązywania problemów.

Marudzić
źródło
16
Tylko informacja, CBS.lognie jest generowana przez SFC. Podczas gdy SFC do niego dołącza (wraz ze [SR]znacznikiem), wydaje się, że to pliki TrustedInstaller.exe (inaczej CBS aka Component Based Servicing) są tym, co tworzy pliki dziennika. Źródło: Zrozumienie obsługi opartej na komponentach
Vinayak
3
Poważnie wątpię, że kompresja NTFS uniemożliwi próbę uruchomienia formularza TrustedInstaller makecabna pliku dziennika, który umrze, jeśli będzie miał rozmiar> 2 GiB. Lepszym pomysłem jest skompresowanie go w innym jawnym formacie kompresji, który zazwyczaj nadałby mu nową nazwę pliku, uniemożliwiając w ten sposób TrustedInstaller bezcelowe podawanie go do makecab...
SamB 18.09.15
5
@SamB jest poprawny. Ten problem występuje, ponieważ format .CAB ma twarde ograniczenie rozmiaru pliku 2GiB, a TrustedInstaller będzie nadal makecabrutynowo wydawać , za każdym razem tworząc nowy plik ~ 100MiB w folderze tymczasowym. Rozwiązaniem jest usunięcie pliku dziennika 2 GB (co można bezpiecznie zrobić, ponieważ służą one wyłącznie do rozwiązywania problemów).
Syclone0044,
6
Dlaczego jest to oznaczone jako poprawna odpowiedź, kiedy @Vinayak sugeruje, że podał błędne dane? Na pewno po to jest funkcja „edycji”?
Criggie
85

Miałem plik cbs.persist.log o wielkości 17 GB, ponieważ byłem pewien, że to nie ja wypełniam swoje ssd, szukałem niezwykłych dużych plików w katalogu dziennika systemu Windows. Zresztą mogłem tylko pomyśleć o problemie z kompresją.

Aby zresetować kompresję w folderze CBS, zastosowałem następującą metodę:

  1. Wyłącz TrustedInstaller.exe (Instalator modułów systemu Windows) w Usługach Taskmanager
  2. Usuń wszystkie pliki .log z katalogu C: \ Windows \ Logs \ CBS , a także usuń pliki .persist i .cab
  3. Włącz ponownie TrustedInstaller.exe

UWAGA: Czyszczenie folderu CBS resetuje proces kompresji, więc nowo utworzone pliki dziennika nie powinny być większe niż 50 Mb przed kompresją do plików cab.

Nie ma bezpośredniego wyniku wizualnego, musisz poczekać, aż taki plik dziennika będzie wystarczająco duży.

To rozwiązanie nadal działa dla mnie w systemie Windows 7/8 / 8.1 po 1 roku

Chociaż nie mogę być pewien, że kompresja nigdy się nie powiedzie, jeśli tak się stanie ... to po prostu powtórz rozwiązanie jeszcze raz, ale pamiętaj o wyłączeniu TrustedInstaller przed usunięciem plików w folderze CBS.

Mam nadzieję że to pomoże.

Gin
źródło
5
Jak wyłączyć Instalatora modułów systemu Windows? W oknie „Usługi” wszystkie przyciski do uruchamiania, zatrzymywania, wznawiania, wstrzymywania itp. Są wyszarzone. Menedżer zadań systemu Windows nie może także zabić TrustedInstaller.exe ..
Alph.Dev
3
@ Alph.Dev Start services.mscprzez Win + R („Uruchom”), znajdź usługę, kliknij prawym przyciskiem myszy - Właściwości - Start: Wyłącz. Następnie uruchom ponownie komputer, wyczyść pliki i ustaw go z powrotem na Ręczny lub Automatyczny (automatyczny był domyślny w moim systemie Win7).
chrki 30.04.16
Jest prostszy sposób, po prostu użyj LockHunter, aby go usunąć.
majkinetor
skrypt PowerShell?
PreguntonCojoneroCabrón
27

Na wypadek, gdyby ktoś zastanawiał się, dlaczego tak się dzieje. Wydaje mi się, że odtworzyłem warunki specjalne (jestem pewien, że istnieją inne odmiany tych warunków, które mogą powodować ten sam rezultat):

  1. Rozpocząłem bardzo dużą liczbę bardzo dużych aktualizacji systemu Windows (kilka pakietów językowych i dodatków Service Pack itp.), A także miałem otwartych wiele innych aplikacji i okien (jestem programistą). Potem poszedłem na lunch.
  2. Windows Update działał, dopóki w systemie nie zabrakło pamięci (RAM). Mam 32 gigabajty, ale to nie wystarczyło.
  3. Usługa „Trusted Installer.exe” (usługa „Windows Module Installer”) próbowała skompresować szybko rosnący plik dziennika, ale nie mogła uruchomić się, ponieważ dziennik był zbyt szybki lub nie mógł zostać uruchomiony z powodu małej ilości pamięci lub obydwa. Kiedy było to potrzebne, usługa Instalatora modułów systemu Windows nawet się nie uruchomiła (nawet tymczasowo).
  4. Odtąd nie mógł sobie poradzić z plikiem dziennika, ponieważ był zbyt duży do kompresji .CAB (około 25 gigabajtów!), Więc zaczął się błędny cykl i nic nie mogło go zatrzymać (z wyjątkiem ręcznej interwencji opisanej przez „ Gin ”powyżej).
  5. Gdy plik dziennika urósł do 60 gigabajtów na moim dysku SSD, wykorzystał całe moje wolne miejsce, dostałem ostrzeżenie o „małej ilości miejsca” i zacząłem szukać przyczyny.

Wydaje się, że problem został rozwiązany w następujący sposób: „wyłącz usługę Instalatora modułów systemu Windows, usuń zawartość folderu C: \ Windows \ Logs \ CBS \ oraz folderu„ C: \ Windows \ Temp ”- pomijając wszystkie używane pliki, a następnie uruchom ponownie usługę Instalatora modułów systemu Windows i ustaw ją na „uruchamianie ręczne” (domyślnie) ”. Restart.

FirstFraktal
źródło
2
Na moim komputerze znajdowały się tysiące plików w folderze c: \ windows \ temp - mam nadzieję, że przycięcie do kilkuset plików będzie miało właściwy wpływ na ograniczenie gwałtownego wzrostu CBS.log
Toybuilder
10

Aby obejść ten problem, w systemie Windows 7 usługa „Instalator modułów systemu Windows” jest zatrzymana, a następnie wydaje się, że jej uruchomienie powoduje uruchomienie procesu rotacji dziennika, który powoduje utworzenie nowego pliku cbs.log i przeniesienie starego pliku do skompresowanego archiwum .cab CbsPersist. Mój plik dziennika 500 MB został skompresowany do 30 MB.

Pamiętaj, że uruchomienie może potrwać kilka minut. Usługa wydaje się automatycznie zatrzymywać po zakończeniu.

ivanatpr
źródło
10
Zauważ, że samo z siebie nie działa, jeśli któryś z plików ma już znak 2GiB, ponieważ makecabpo prostu poddaje się, gdy dociera tak daleko (pozostawiając uszkodzony cab_*plik %WINDIR%\Temp); w takim przypadku należy również w CbsPersist_*.logjakiś sposób pozbyć się zbyt dużego pliku, aby TrustedInstaller („Instalator modułów systemu Windows”) nie próbował makecabna nim uruchomić podczas uruchamiania. Użyłem 7-zip do kompresji mojego pliku .log.xz, ale usunięcie lub zmiana nazwy prawdopodobnie byłyby również opcjami. Następnie ponowne uruchomienie zajmie się rozsądnymi rozmiarami.
SamB
6
@SamB jest poprawny. Ten problem występuje, ponieważ format .CAB ma twarde ograniczenie rozmiaru pliku 2GiB, a TrustedInstaller będzie nadal makecabrutynowo wydawać , za każdym razem tworząc nowy plik ~ 100MiB w folderze tymczasowym. Rozwiązaniem jest usunięcie pliku dziennika 2 GB (co można bezpiecznie zrobić, ponieważ służą one wyłącznie do rozwiązywania problemów). Dziękuję bardzo SamB za opublikowanie, osiągnąłeś podstawową przyczynę tego problemu. Używam 64-bitowego systemu Windows 7 z dodatkiem SP1. Nie mogę uwierzyć, że Microsoft jeszcze tego nie naprawił.
Syclone0044,
Jeśli ta usługa jest aktywna, wybranie opcji „Uruchom ponownie” ma ten sam efekt. Efekt nie jest tak wspaniały, jeśli ustawiłeś katalog Logs \ CBS jako skompresowany.
PJTraill,
5

W moim przypadku nie byłem w stanie zatrzymać usługi nawet po wyłączeniu. Poniższe kroki pomogły mi zatrzymać usługę i usunąć dziennik 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.

Na wszelki wypadek, gdyby to komuś pomogło.

gnaanaa
źródło
Facet na forach MS mówi, że jest to zgodne
StackzOfZtuff
Możliwie. Dlatego musimy zatrzymać usługę jak wyżej, aby usunąć plik dziennika.
gnaanaa
1
Tak, ale ponieważ nie można zatrzymać go ręcznie, należy go wyłączyć i uruchomić ponownie.
StackzOfZtuff 30.09.16
Na moim W7x64 nie mogłem wyłączyć usługi, ale mogłem zabić TrustedInstaller.exe. To usunęło blokadę z pliku i udało mi się ją usunąć.
user136036
1

Na serwerze 2008 R2 moja C:\windows\tempbyła pusta. Próbowałem usunąć dzienniki cbs, a dziennik cbs 2,5 GB powracał, więc sprawdziłem C:\windows\temppo próbie usunięcia dziennika i .dmppojawiła się tam duża liczba plików.

Usunięto je i plik dziennika zniknął. Odzyskano miejsce na dysku. (Mój powracał nawet po usunięciu).

Mam nadzieję że to pomoże
źródło