Perché la dimensione del file CBS.log è di 20 GB


129

Due giorni fa avevo un C:disco completo , dopo di che ho eliminato 8 GB di dati. Il giorno successivo il disco rigido era di nuovo pieno, quindi ho continuato con l'eliminazione di altri 5 GB e ancora una volta il giorno successivo il disco era pieno.

Dopo aver cercato ciò che ha causato lo spazio su disco da riempire così rapidamente, ho usato lo windirstatstrumento per trovare quali file occupavano più spazio. Ho scoperto che il CBS.logfile, che si trova in c:\windows\logs\cbs\, ha una dimensione di 20 GB.

Sto usando Windows 8.

  • Questo file dovrebbe essere così grande e, in caso contrario, come posso ridurre la dimensione?
  • Qual è lo scopo di questo file?
  • Posso cancellarlo?

hai aggiunto la registrazione dettagliata? blogs.technet.com/b/joscon/archive/2010/11/18/…
magicandre1981

Risposte:


34

Questo è un file generato dal Controllo risorse di Microsoft Windows (SFC.exe).

No, non dovrebbe essere così grande. Il CBS.persist.log dovrebbe essere generato quando la CBS raggiunge una dimensione di circa 50 mega. CBS.log dovrebbe essere copiato in cbs.persist.log e dovrebbe essere avviato un nuovo file cbs.log.

Puoi provare a comprimere il file:

  • Se si fa clic con il tasto destro sul file CBS.log
  • Quindi fare clic su Proprietà
  • Nella scheda Generale, fare clic su Avanzate
  • Seleziona "Comprimi i contenuti per risparmiare spazio su disco" e fai clic su OK

Oppure, se sei sicuro che il tuo sistema funzioni correttamente, puoi eliminare questo file. SFC.exe ne creerà uno nuovo alla successiva esecuzione. Ma potrebbe essere utile per la risoluzione dei problemi.


16
Solo una FYI, CBS.lognon generata da SFC. Mentre SFC lo aggiunge (con il [SR]tag) sembra TrustedInstaller.exe (aka CBS aka Component Based Servicing) è ciò che crea i file di registro. Fonte: Informazioni sulla manutenzione basata su componenti
Vinayak,

3
Ehm, dubito seriamente che la compressione NTFS impedirà al modulo TrustedInstaller di tentare di essere eseguito makecabsul file di registro, che morirà se ha dimensioni> = 2 GiB. Un'idea migliore è comprimerlo in qualche altro formato di compressione esplicito, che in genere gli darebbe un nuovo nome file, impedendo così a TrustedInstaller di inoltrarlo inutilmente a makecab...
SamB

5
@SamB è corretto. Questo problema si verifica perché il formato .CAB ha una limitazione rigida della dimensione del file 2GiB e TrustedInstaller continuerà a emettere makecabregolarmente, creando ogni volta un nuovo file ~ 100MiB nella cartella temporanea. La soluzione è rimuovere il file di registro da 2 GB (che può essere fatto in modo sicuro, poiché questi vengono utilizzati solo per la risoluzione dei problemi).
Syclone0044,

6
Perché questo è contrassegnato come la risposta corretta quando @Vinayak suggerisce che i dettagli sono sbagliati? Sicuramente è a questo che serve la funzione "modifica"?
Criggie,

85

Avevo un file cbs.persist.log di 17 GB, dato che ero sicuro che non ero io a riempire il mio SSD, ho cercato grandi file insoliti nella directory di registro di Windows. Potrei pensare solo a un problema di compressione comunque.

Quindi, per ripristinare la compressione nella cartella CBS ho usato il seguente metodo:

  1. Disabilitare TrustedInstaller.exe (programma di installazione del modulo di Windows) in Taskmanager Services
  2. Elimina tutti i file .log nella directory C: \ Windows \ Logs \ CBS , elimina anche i file .persist e .cab
  3. Abilita di nuovo TrustedInstaller.exe

NOTA: la pulizia della cartella CBS ripristina il processo di compressione, quindi i nuovi file di registro creati non devono superare i 50 Mb prima della compressione in file .cab come dovrebbero essere.

Non esiste alcun risultato visivo diretto, è necessario attendere fino a quando un file di registro di questo tipo non è abbastanza grande.

Questa soluzione funziona ancora per me su Windows 7/8 / 8.1 dopo 1 anno

Anche se non posso essere sicuro che la compressione non fallirà mai più, in caso affermativo ... ripeti semplicemente la soluzione ma assicurati di disabilitare TrustedInstaller prima di eliminare i file nella cartella CBS.

Spero che sia di aiuto.


5
Come si disabilita Windows Module Installer? Nella finestra "Servizi", tutti i pulsanti per avviare, arrestare, riprendere, mettere in pausa ecc. Sono disattivati. Anche il Task Manager di Windows non è in grado di uccidere TrustedInstaller.exe.
Alph.Dev,

3
@ Alph.Dev Avvia services.msctramite Win + R ("Esegui"), trova il servizio, fai clic destro - Proprietà - Avvia: Disabilita. Quindi riavviare, ripulire i file e ripristinarlo su Manuale o Automatico (l'impostazione predefinita era automatica sul mio sistema Win7).
Chrki,

C'è un modo più semplice, basta usare LockHunter per eliminarlo.
majkinetor,

script PowerShell?
PreguntonCojoneroCabrón

27

Nel caso in cui qualcuno si chieda perché questo accada in primo luogo. Credo di aver riprodotto le condizioni speciali (sono sicuro che ci sono altre varianti di queste condizioni che potrebbero causare lo stesso risultato):

  1. Ho avviato un gran numero di aggiornamenti di Windows molto grandi (un sacco di language pack, service pack ecc.), Mentre avevo anche un gran numero di altre app e finestre aperte (sono uno sviluppatore). Poi sono andato a pranzo.
  2. Windows Update ha funzionato fino a quando il sistema ha esaurito la memoria (RAM). Ho 32 Gigabyte, ma non era abbastanza.
  3. Il "Trusted Installer.exe" (servizio "Windows Module Installer") ha tentato di comprimere il file di registro in rapida crescita, ma non è stato possibile eseguirlo, perché il registro è cresciuto troppo velocemente o non è stato avviato a causa della memoria insufficiente, o entrambi. Quindi, quando era necessario, il servizio di installazione del modulo di Windows non si è nemmeno avviato (anche temporaneamente).
  4. Da quel momento in poi, non è stato in grado di gestire il file di registro, poiché era troppo grande per la compressione .CAB (circa 25 Gigabyte!) E quindi il ciclo vizioso era iniziato e nulla poteva fermarlo (tranne l'intervento manuale come descritto da " Gin "sopra).
  5. Una volta che il file di registro è cresciuto a 60 Gigabyte sul mio SSD, ha utilizzato tutto il mio spazio libero e ho ricevuto un avviso di "spazio di archiviazione ridotto" e ho iniziato a cercare la causa.

Il seguente processo sembra aver risolto il problema: "disabilita il servizio Windows Module Installer, elimina i contenuti della cartella C: \ Windows \ Logs \ CBS \ e la cartella" C: \ Windows \ Temp ", saltando tutti i file in uso, quindi riavviare il servizio Windows Module Installer e impostarlo su 'manual' start (impostazione predefinita) ". Reboot.


2
C'erano migliaia di file in c: \ windows \ temp sulla mia macchina - si spera che la potatura a poche centinaia di file avrà l'effetto giusto sulla riduzione della crescita esplosiva di CBS.log
Toybuilder

10

Come soluzione alternativa, su Windows 7, se il servizio "Windows Modules Installer" viene interrotto, quindi l'avvio sembra attivare il processo di rotazione del registro che crea un nuovo file cbs.log e sposta il vecchio file in un archivio compresso CbsPersist .cab. Il mio file di registro da 500 MB è stato compresso fino a 30 MB.

Si noti che potrebbero essere necessari alcuni minuti per l'esecuzione. Il servizio sembra arrestarsi automaticamente una volta terminato.


10
Nota che non funziona da solo se qualcuno dei file ha già raggiunto il segno 2GiB, dato makecabche si arrende quando arriva così lontano (lasciando un cab_*file corrotto %WINDIR%\Temp); in tal caso, è anche necessario disporre del CbsPersist_*.logfile di grandi dimensioni in qualche modo in modo che TrustedInstaller ("Windows Modules Installer") non proverà a eseguirli makecaball'avvio. Ho usato 7-zip per comprimere il mio in file .log.xz, ma la cancellazione o la ridenominazione presumibilmente sarebbero anche opzioni. Successivamente, il riavvio si occuperà di quelli di dimensioni ragionevoli.
SamB,

6
@SamB è corretto. Questo problema si verifica perché il formato .CAB ha una limitazione rigida della dimensione del file 2GiB e TrustedInstaller continuerà a emettere makecabregolarmente, creando ogni volta un nuovo file ~ 100MiB nella cartella temp. La soluzione è rimuovere il file di registro da 2 GB (che può essere fatto in modo sicuro, poiché questi vengono utilizzati solo per la risoluzione dei problemi). Grazie mille SamB per la pubblicazione, hai raggiunto la causa principale di questo problema. Sono su Windows 7 SP1 a 64 bit. Non posso credere che Microsoft non l'abbia ancora risolto.
Syclone0044,

Se quel servizio è attivo, la scelta di "Riavvia" ha lo stesso effetto. L'effetto non è eccezionale se hai impostato la directory Logs \ CBS su compressa.
PJTraill

5

Nel mio caso non sono stato in grado di interrompere il servizio anche dopo aver disabilitato. I seguenti passaggi mi hanno aiutato a interrompere il servizio e rimuovere il registro 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.

Nel caso in cui fosse utile a qualcuno.



Possibilmente. Ecco perché è necessario interrompere il servizio come sopra per rimuovere il file di registro.
gnaanaa,

1
Sì, ma poiché non è possibile arrestarlo manualmente, è necessario disabilitare e riavviare.
StackzOfZtuff,

Sul mio W7x64 non sono riuscito a disabilitare il servizio ma ho potuto eliminare TrustedInstaller.exe. Questo ha rimosso il blocco dal file e sono stato in grado di eliminarlo.
user136036,

1

Su Server 2008 R2, My C:\windows\tempera vuoto. Ho provato a eliminare i registri cbs e un registro cbs da 2,5 GB ha continuato a tornare, quindi ho controllato C:\windows\tempdopo aver tentato di eliminare il registro e .dmplì era apparso un gran numero di file.

Eliminati questi e il file di registro ora è sparito. Lo spazio su disco è stato recuperato. (Il mio continuava a tornare anche dopo averlo eliminato.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.