Por que o tamanho do arquivo CBS.log é de 20 GB

129

Dois dias atrás, eu tinha uma C:unidade completa , após o que excluí 8 GB de dados. No dia seguinte, o disco rígido estava cheio novamente, então continuei com a exclusão de mais 5 GB e, mais uma vez, no dia seguinte, o disco estava cheio.

Depois de pesquisar o que causou o preenchimento do espaço em disco tão rapidamente, usei a windirstatferramenta para descobrir quais arquivos ocupavam mais espaço. Descobri que o CBS.logarquivo, localizado em c:\windows\logs\cbs\, tem 20 GB de tamanho.

Estou usando o Windows 8.

  • Esse arquivo deve ser tão grande e, se não, como posso reduzir o tamanho?
  • Qual é o objetivo deste arquivo?
  • Posso deletá-lo?
skmasq
fonte
você adicionou o log detalhado? blogs.technet.com/b/joscon/archive/2010/11/18/…
magicandre1981

Respostas:

34

Esse é um arquivo que é gerado pelo Microsoft Windows Resource Checker (SFC.exe).

Não, não deve ser tão grande. O CBS.persist.log deve ser gerado quando o CBS tiver aproximadamente 50 meg de tamanho. CBS.log deve ser copiado para cbs.persist.log e um novo arquivo cbs.log deve ser iniciado.

Você pode tentar comprimir o arquivo:

  • Se você clicar com o botão direito do mouse no arquivo CBS.log
  • Depois clique em Propriedades
  • Na guia Geral, clique em Avançado
  • Marque "Compactar conteúdo para economizar espaço em disco" e clique em OK

Ou, se tiver certeza de que seu sistema está funcionando corretamente, você pode excluir este arquivo. O SFC.exe criará um novo, na próxima vez em que for executado. Porém, pode ser útil para solucionar problemas.

Linger
fonte
16
Apenas um FYI, CBS.lognão é gerado pelo SFC. Enquanto o SFC anexa a ele (com a [SR]tag), parece que TrustedInstaller.exe (também conhecido como CBS ou Component Based Service) é o que cria os arquivos de log. Fonte: Entendimento Serviço Baseado em Componentes
Vinayak
3
Hum, duvido seriamente que a compactação NTFS impeça que o formulário TrustedInstaller tente executar makecabno arquivo de log, que morrerá se tiver um tamanho> = 2 GiB. A melhor idéia é para comprimi-lo em algum outro formato de compressão explícita, o que normalmente dar-lhe um novo nome de arquivo, evitando assim TrustedInstaller de inutilmente alimentando-o para makecab...
Samb
5
@SamB está correto. Esse problema ocorre porque o formato .CAB possui uma limitação total do tamanho do arquivo 2GiB, e o TrustedInstaller continuará emitindo makecabrotineiramente, criando um novo arquivo ~ 100MiB na sua pasta temporária a cada vez. A solução é remover o arquivo de log de 2 GB (o que pode ser feito com segurança, pois eles são usados ​​apenas para solução de problemas).
Syclone0044
6
Por que isso está marcado como a resposta correta quando @Vinayak sugere detalhes incorretos? Certamente é para isso que serve a função "editar"?
Criggie
85

Eu tinha um arquivo cbs.persist.log de 17 gb, como tinha certeza de que não era eu quem estava enchendo meu ssd, procurei por arquivos grandes e incomuns no diretório de log do Windows. Só conseguia pensar em um problema de compactação de qualquer maneira.

Portanto, para redefinir a compactação na pasta CBS, usei o seguinte método:

  1. Desativar TrustedInstaller.exe (Windows Module Installer) nos Serviços do Gerenciador de Tarefas
  2. Exclua todos os arquivos .log no diretório C: \ Windows \ Logs \ CBS , exclua os arquivos .persist e .cab também
  3. Ativar TrustedInstaller.exe novamente

NOTA: A limpeza da pasta CBS redefine o processo de compactação, portanto, os novos arquivos de log criados não devem ter mais de 50 Mb antes da compactação nos arquivos .cab, como deveria.

Não há resultado visual direto, você precisa esperar até que esse arquivo de log seja grande o suficiente.

Esta solução ainda funciona para mim no Windows 7/8 / 8.1 após 1 ano

Embora eu não tenha certeza de que a compactação nunca falhará novamente, se ocorrer ... simplesmente repita a solução novamente, mas certifique-se de desativar o TrustedInstaller antes de excluir os arquivos na pasta CBS.

Espero que isto ajude.

Gin
fonte
5
Como você desabilita o Windows Module Installer? Na janela "Serviços", todos os botões para iniciar, parar, retomar, pausar etc. ficam acinzentados. O gerenciador de tarefas do Windows também não pode matar o TrustedInstaller.exe ..
Alph.Dev
3
@ Alph.Dev Inicie services.mscatravés do Win + R ("Executar"), localize o serviço, clique com o botão direito do mouse - Propriedades - Iniciar: Desativar. Em seguida, reinicie, limpe os arquivos e defina-o novamente como Manual ou Automático (automático era o padrão no meu sistema Win7).
chrki
Existe uma maneira mais fácil, basta usar o LockHunter para excluí-lo.
majkinetor
script do PowerShell?
PreguntonCojoneroCabrón
27

Apenas no caso de alguém se perguntar por que isso acontece em primeiro lugar. Acredito que reproduzi as condições especiais (tenho certeza de que existem outras variações dessas condições que podem causar o mesmo resultado):

  1. Iniciei um número muito grande de atualizações muito grandes do Windows (vários pacotes de idiomas e service packs etc.), enquanto também havia um grande número de outros aplicativos e janelas abertos (eu sou desenvolvedor). Depois fui almoçar.
  2. O Windows Update foi executado até o sistema ficar sem memória (RAM). Eu tenho 32 Gigabytes, mas não foi suficiente.
  3. O "Trusted Installer.exe" (serviço "Windows Module Installer") tentou compactar o arquivo de log de crescimento rápido, mas não pôde ser executado, porque o log cresceu muito rápido ou não pôde ser iniciado devido à pouca memória, ou ambos. Portanto, quando necessário, o serviço Windows Module Installer nem sequer foi iniciado (mesmo que temporariamente).
  4. A partir de então, ele não pôde lidar com o arquivo de log, pois era muito grande para a compactação .CAB (cerca de 25 Gigabytes!) E, portanto, o ciclo vicioso havia começado e nada poderia impedi-lo (exceto pela intervenção manual, conforme descrito por " Gin "acima).
  5. Depois que o arquivo de log aumentou para 60 Gigabytes no meu SSD, ele usou todo o meu espaço livre e recebi um aviso de "pouco espaço de armazenamento" e comecei a procurar a causa.

O processo a seguir parece ter corrigido o problema: "desative o serviço Windows Module Installer, exclua o conteúdo da pasta C: \ Windows \ Logs \ CBS \ e a pasta 'C: \ Windows \ Temp' - ignorando todos os arquivos em uso e, em seguida, inicie o serviço Windows Module Installer novamente e defina-o como 'manual' start (o padrão) ". Reinicie.

FirstFraktal
fonte
2
Havia milhares de arquivos em c: \ Windows \ Temp na minha máquina - esperançosamente, poda que, para algumas centenas de arquivos terão o efeito desejado sobre a redução do crescimento explosivo da CBS.log
Toybuilder
10

Como solução alternativa, no Windows 7, se o serviço "Instalador de Módulos do Windows" for interrompido, inicie o processo de rotação do log que cria um novo arquivo cbs.log e move o arquivo antigo para um arquivo compactado do CbsPersist .cab. Meu arquivo de log de 500mb foi compactado para 30mb.

Observe que pode levar alguns minutos para ser executado. O serviço parece parar automaticamente quando terminar.

ivanatpr
fonte
10
Observe que não funciona por si só se algum dos arquivos já atingiu a marca 2GiB, pois makecabapenas desiste quando chega tão longe (deixando um cab_*arquivo corrompido %WINDIR%\Temp); nesse caso, você também precisará descartar o CbsPersist_*.logarquivo de grandes dimensões para que o TrustedInstaller ("Windows Modules Installer") não tente executá makecab-los na inicialização. Usei o 7-zip para compactar o meu em arquivos .log.xz, mas excluir ou renomear provavelmente também seria uma opção. Depois disso, a reinicialização cuidará das de tamanho razoável.
SamB 18/09/2015
6
@SamB está correto. Esse problema ocorre porque o formato .CAB possui uma limitação total do tamanho de arquivo de 2GiB e o TrustedInstaller continuará emitindo makecabrotineiramente, criando um novo arquivo de ~ 100MiB na pasta temporária a cada vez. A solução é remover o arquivo de log de 2 GB (o que pode ser feito com segurança, pois eles são usados ​​apenas para solução de problemas). Muito obrigado SamB por postar, você alcançou a causa raiz deste problema. Estou no Windows 7 SP1 de 64 bits. Não acredito que a Microsoft ainda não tenha corrigido isso.
Syclone0044
Se esse serviço estiver ativo, a escolha de "Reiniciar" terá o mesmo efeito. O efeito não é tão bom se você tiver definido o diretório Logs \ CBS como compactado.
PJTraill
5

No meu caso, não consegui interromper o serviço mesmo após a desativação. As etapas a seguir me ajudaram a interromper o serviço e remover o log do 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.

Apenas no caso, se isso ajudaria alguém.

gnaanaa
fonte
Um cara nos fóruns da Microsoft diz que isso ocorre por design: observe que no Windows 7 você não pode parar este serviço, mas pode desativá-lo, reinicializar e excluir o cbs.log.
StackzOfZtuff
Possivelmente. É por isso que precisamos interromper o serviço conforme descrito acima para remover o arquivo de log.
gnaanaa 29/09/16
1
Sim, mas como você não pode pará-lo manualmente, é necessário desativar e reiniciar.
StackzOfZtuff
No meu W7x64, não pude desativar o serviço, mas poderia matar o TrustedInstaller.exe. Isso removeu o bloqueio do arquivo e eu pude excluí-lo.
precisa saber é o seguinte
1

No Server 2008 R2, Meu C:\windows\tempestava vazio. Tentei excluir logs cbs e um log cbs de 2,5 GB continuava retornando; portanto, verifiquei C:\windows\tempdepois de tentar excluir o log e um grande número de .dmparquivos havia aparecido lá.

Excluídos e o arquivo de log agora se foi. O espaço em disco foi recuperado. (O meu continuava voltando mesmo depois de excluí-lo.)

Espero que isto ajude
fonte