¿Por qué el tamaño del archivo CBS.log es de 20 GB?

129

Hace dos días tenía un C:disco completo , después de lo cual eliminé 8 GB de datos. Al día siguiente, el disco duro estaba lleno nuevamente, así que continué eliminando otros 5 GB, y una vez más al día siguiente, el disco estaba lleno.

Después de buscar lo que causó que el espacio en el disco se llenara tan rápido, utilicé la windirstatherramienta para encontrar qué archivos ocupaban más espacio. Descubrí que el CBS.logarchivo, que se encuentra en c:\windows\logs\cbs\, tiene un tamaño de 20 GB.

Estoy usando Windows 8.

  • ¿Debería ser este archivo tan grande, y si no, cómo puedo reducir el tamaño?
  • ¿Cuál es el propósito de este archivo?
  • ¿Puedo borrarlo?
skmasq
fuente
¿ha agregado el registro detallado? blogs.technet.com/b/joscon/archive/2010/11/18/…
magicandre1981

Respuestas:

34

Ese es un archivo generado por el Comprobador de recursos de Microsoft Windows (SFC.exe).

No, no debería ser tan grande. El CBS.persist.log debe generarse cuando el CBS tenga un tamaño de alrededor de 50 meg. CBS.log debe copiarse en cbs.persist.log y debe iniciarse un nuevo archivo cbs.log.

Puedes intentar comprimir el archivo:

  • Si hace clic derecho en el archivo CBS.log
  • Luego haga clic en Propiedades
  • En la pestaña General, haga clic en Avanzado
  • Marque "Comprimir contenido para ahorrar espacio en disco" y haga clic en Aceptar

O bien, si está seguro de que su sistema funciona bien, puede eliminar este archivo. SFC.exe creará uno nuevo la próxima vez que se ejecute. Pero, podría ser útil para solucionar problemas.

Persistir
fuente
16
Solo un FYI, CBS.logno es generado por SFC. Si bien SFC se agrega a él (con la [SR]etiqueta), parece que TrustedInstaller.exe (también conocido como CBS también conocido como Servicio basado en componentes) es lo que crea los archivos de registro. Fuente: Comprensión del servicio basado en componentes
Vinayak,
3
Um, dudo seriamente que la compresión NTFS impida que el formulario TrustedInstaller intente ejecutarse makecaben el archivo de registro, que morirá si es> = 2 GiB de tamaño. Una mejor idea es comprimir en algún otro formato de compresión explícita, que normalmente darle un nuevo nombre de archivo, evitando así TrustedInstaller desde inútilmente de dársela a makecab...
Samb
55
@SamB es correcto. Este problema ocurre porque el formato .CAB tiene una limitación estricta del tamaño de archivo de 2GiB, y TrustedInstaller continuará emitiendo makecabrutinariamente, creando un nuevo archivo ~ 100MiB en su carpeta temporal cada vez. La solución es eliminar el archivo de registro de 2 GB (que se puede hacer de forma segura, ya que solo se usan para la resolución de problemas).
Syclone0044
66
¿Por qué está marcado como la respuesta correcta cuando @Vinayak sugiere que tiene detalles incorrectos? ¿Seguramente para eso está la función "editar"?
Criggie
85

Tenía un archivo cbs.persist.log de 17 gb, ya que estaba seguro de que no era yo quien llenaba mi ssd, busqué archivos grandes inusuales en el directorio de registro de Windows. Solo podía pensar en un problema de compresión de todos modos.

Entonces, para restablecer la compresión en la carpeta CBS, he usado el siguiente método:

  1. Deshabilite TrustedInstaller.exe (instalador del módulo de Windows) en los servicios del Administrador de tareas
  2. Elimine todos los archivos .log en el directorio C: \ Windows \ Logs \ CBS , elimine también los archivos .persist y .cab
  3. Habilite TrustedInstaller.exe nuevamente

NOTA: La limpieza de la carpeta CBS restablece el proceso de compresión, por lo que los nuevos archivos de registro creados no deberían crecer más de 50 Mb antes de la compresión en archivos .cab como debería ser.

No hay un resultado visual directo, debe esperar hasta que dicho archivo de registro sea lo suficientemente grande.

Esta solución todavía funciona para mí en Windows 7/8 / 8.1 después de 1 año

Aunque no puedo estar seguro de que la compresión nunca volverá a fallar, si lo hace ... simplemente repita la solución nuevamente, pero asegúrese de desactivar TrustedInstaller antes de eliminar los archivos en la carpeta CBS.

Espero que esto ayude.

Ginebra
fuente
55
¿Cómo deshabilita el instalador del módulo de Windows? En la ventana "Servicios", todos los botones para iniciar, detener, reanudar, pausar, etc. están en gris. El administrador de tareas de Windows tampoco puede eliminar TrustedInstaller.exe ..
Alph.Dev
3
@ Alph.Dev Comience a services.msctravés de Win + R ("Ejecutar"), busque el servicio, haga clic derecho - Propiedades - Inicio: Desactivar. Luego reinicie, limpie los archivos y vuelva a configurarlo en Manual o Automático (automático era el predeterminado en mi sistema Win7).
chrki
Hay una manera más fácil, solo use LockHunter para eliminarlo.
majkinetor
script de PowerShell?
PreguntonCojoneroCabrón
27

En caso de que alguien se pregunte por qué sucede esto en primer lugar. Creo que he reproducido las condiciones especiales (aunque estoy seguro de que hay otras variaciones de estas condiciones que podrían causar el mismo resultado):

  1. Comencé una gran cantidad de actualizaciones de Windows muy grandes (un montón de paquetes de idiomas y paquetes de servicios, etc.), mientras que también tenía una gran cantidad de otras aplicaciones y ventanas abiertas (soy desarrollador). Luego fui a almorzar.
  2. Windows Update se ejecutó hasta que el sistema se quedó sin memoria (RAM). Tengo 32 Gigabytes, pero no fue suficiente.
  3. El "Trusted Installer.exe" (servicio "Instalador de módulos de Windows") intentó comprimir el archivo de registro de rápido crecimiento, pero no pudo ejecutarse, ya sea porque el registro creció demasiado rápido o no pudo iniciarse debido a la poca memoria, o ambos. Entonces, cuando era necesario, el servicio del Instalador de módulos de Windows ni siquiera se inició (ni siquiera temporalmente).
  4. A partir de ese momento, no pudo manejar el archivo de registro, ya que era demasiado grande para la compresión .CAB (¡aproximadamente 25 Gigabytes!), Por lo que el ciclo vicioso había comenzado y nada podía detenerlo (excepto por intervención manual como se describe en " Gin "arriba).
  5. Una vez que el archivo de registro creció a 60 Gigabytes en mi SSD, utilizó todo mi espacio libre y recibí una advertencia de "poco espacio de almacenamiento", y comencé a buscar la causa.

El siguiente proceso parece haber solucionado el problema: "deshabilite el servicio del instalador del módulo de Windows, elimine el contenido de la carpeta C: \ Windows \ Logs \ CBS \ y la carpeta 'C: \ Windows \ Temp', omitiendo los archivos en uso, luego inicie el servicio del Instalador de módulos de Windows nuevamente y configúrelo en inicio 'manual' (predeterminado) ". Reiniciar.

FirstFraktal
fuente
2
Había miles de archivos en c: \ windows \ temp en mi máquina; con suerte, podar eso a unos cientos de archivos tendrá el efecto correcto para reducir el crecimiento explosivo de CBS.log
Toybuilder
10

Como solución alternativa, en Windows 7, si se detiene el servicio "Instalador de módulos de Windows", al iniciarlo parece que se activa el proceso de rotación de registros que crea un archivo cbs.log nuevo y mueve el archivo antiguo a un archivo comprimido .bsb de CbsPersist. Mi archivo de registro de 500 MB se comprimió a 30 MB.

Tenga en cuenta que puede tardar unos minutos en ejecutarse. El servicio parece detenerse automáticamente una vez que está hecho.

ivanatpr
fuente
10
Tenga en cuenta que eso no funciona por sí solo si alguno de los archivos ya ha alcanzado la marca de 2GiB, ya que makecabsimplemente se da por vencido cuando llega tan lejos (dejando un cab_*archivo dañado %WINDIR%\Temp); en ese caso, también debe deshacerse del CbsPersist_*.logarchivo de gran tamaño para que TrustedInstaller ("Instalador de módulos de Windows") no intente ejecutarse makecaben ellos al inicio. Utilicé 7-zip para comprimir el mío en archivos .log.xz, pero presumiblemente también sería una opción eliminar o renombrar. Después de eso, reiniciarlo se encargará de los de tamaño razonable.
SamB
66
@SamB es correcto. Este problema ocurre porque el formato .CAB tiene una limitación estricta del tamaño de archivo de 2GiB, y TrustedInstaller continuará emitiendo de manera makecabrutinaria, creando un nuevo archivo de ~ 100MiB en su carpeta temporal cada vez. La solución es eliminar el archivo de registro de 2 GB (que se puede hacer de forma segura, ya que solo se usan para la resolución de problemas). Muchas gracias SamB por publicar, llegaste a la causa raíz de este problema. Estoy en Windows 7 SP1 de 64 bits. No puedo creer que Microsoft no haya solucionado esto todavía.
Syclone0044
Si ese servicio está activo, elegir "Reiniciar" tiene el mismo efecto. El efecto no es tan bueno si ha configurado el directorio Logs \ CBS como comprimido.
PJTraill
5

En mi caso, no pude detener el servicio incluso después de deshabilitarlo. Los siguientes pasos me ayudaron a detener el servicio y eliminar el registro de 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.

Por si acaso ayudaría a alguien.

gnaanaa
fuente
Un tipo en los foros de MS dice que esto es así por diseño: tenga en cuenta que en Windows 7 no puede detener este servicio, pero puede deshabilitarlo, reiniciarlo y luego eliminar cbs.log.
StackzOfZtuff
Posiblemente. Es por eso que debemos detener el servicio como se indicó anteriormente para eliminar el archivo de registro.
gnaanaa
1
Sí, pero como no puede detenerlo manualmente, debe deshabilitarlo y reiniciarlo.
StackzOfZtuff
En mi W7x64 no pude deshabilitar el servicio pero pude eliminar TrustedInstaller.exe. Esto eliminó el bloqueo del archivo y pude eliminarlo.
user136036
1

En Server 2008 R2, My C:\windows\tempestaba vacío. Intenté eliminar registros de cbs y un registro de cbs de 2.5 GB seguía regresando, así que lo verifiqué C:\windows\tempdespués de intentar eliminar el registro y .dmpallí apareció una gran cantidad de archivos.

Los eliminó y el archivo de registro ya no está. El espacio en disco se ha recuperado. (El mío seguía volviendo incluso después de eliminarlo).

Espero que esto ayude
fuente