两天前,我有一个完整的C:
驱动器,此后删除了8 GB的数据。第二天,硬盘驱动器再次装满,因此我继续删除另外5 GB,第二天磁盘又装满了。
在搜索了导致磁盘空间如此之快填充的原因之后,我使用了该windirstat
工具来查找哪些文件占用了最多的空间。我发现CBS.log
位于中的文件c:\windows\logs\cbs\
大20 GB。
我正在使用Windows 8。
- 该文件应该太大吗?如果没有,该如何减小大小?
- 该文件的目的是什么?
- 我可以删除它吗?
两天前,我有一个完整的C:
驱动器,此后删除了8 GB的数据。第二天,硬盘驱动器再次装满,因此我继续删除另外5 GB,第二天磁盘又装满了。
在搜索了导致磁盘空间如此之快填充的原因之后,我使用了该windirstat
工具来查找哪些文件占用了最多的空间。我发现CBS.log
位于中的文件c:\windows\logs\cbs\
大20 GB。
我正在使用Windows 8。
Answers:
这是由Microsoft Windows资源检查器(SFC.exe)生成的文件。
不,它不应该那么大。当CBS的大小达到50兆左右时,应生成CBS.persist.log。CBS.log应该复制到cbs.persist.log,并应该启动一个新的cbs.log文件。
您可以尝试压缩文件:
或者,如果您确定系统运行良好,则可以删除此文件。下次运行时,SFC.exe将创建一个新文件。但是,这对于解决问题可能很有用。
CBS.log
不是由SFC生成的。尽管SFC确实附加了(带有[SR]
标签),但TrustedInstaller.exe(又名CBS,又名基于组件的服务)似乎是创建日志文件的源。来源:了解基于组件的服务
makecab
在日志文件上运行,如果日志文件的大小> = 2 GiB,该文件将死亡。一个更好的主意是以其他显式压缩格式压缩它,这通常会给它一个新的文件名,从而防止TrustedInstaller毫无意义地将其馈送到makecab
...
makecab
常规发行,每次在您的temp文件夹中创建一个新的〜100MiB文件。解决方案是删除2GB日志文件(可以安全地完成此操作,因为它们仅用于故障排除)。
我的cbs.persist.log文件为17 gb,因为我确定不是我填满了ssd,所以我在Windows日志目录中搜索了异常的大文件。反正只能想到压缩问题。
因此,要重置CBS文件夹中的压缩,我使用了以下方法:
注意:清理CBS文件夹将重置压缩过程,因此在压缩成.cab文件之前,新创建的日志文件不应超过50 Mb。
没有直接的视觉结果,您需要等待直到这样的日志文件足够大。
一年后,此解决方案仍适用于Windows 7/8 / 8.1
虽然我不能确定压缩是否会再次失败,但是如果确实如此,则只需再次重复该解决方案,但请确保在删除CBS文件夹中的文件之前禁用TrustedInstaller。
希望这可以帮助。
services.msc
通过Win + R(“运行”)启动,找到服务,右键单击-属性-开始:禁用。然后重新启动,清理文件,然后将其设置回“手动”或“自动”(自动是Win7系统上的默认设置)。
以防万一有人想知道为什么会首先发生这种情况。我相信我已经重现了特殊条件(我确信这些条件还有其他变化可能会导致相同的结果):
以下过程似乎已解决了该问题:“禁用Windows Module Installer服务,删除C:\ Windows \ Logs \ CBS \文件夹和'C:\ Windows \ Temp'文件夹的内容-跳过使用中的所有文件,然后再次启动Windows Module Installer服务,并将其设置为“手动”启动(默认)”。重启。
解决方法是,在Windows 7上,如果“ Windows模块安装程序”服务已停止,则启动该服务似乎会触发日志循环过程,该过程将创建新的cbs.log文件并将旧文件移动到压缩的CbsPersist .cab存档中。我的500mb日志文件压缩到30mb。
请注意,它可能需要几分钟才能运行。该服务似乎在完成后会自动停止。
makecab
时就放弃了(将损坏的cab_*
文件保留在中%WINDIR%\Temp
);在这种情况下,您还需要以CbsPersist_*.log
某种方式处理超大文件,以便TrustedInstaller(“ Windows模块安装程序”)makecab
在启动时不会尝试在它们上运行。我使用7-zip将我的文件压缩为.log.xz文件,但是删除或重命名也可能是选项。在那之后,重新启动它将照顾大小合适的那些。
makecab
常规发行,每次在您的temp文件夹中创建一个新的〜100MiB文件。解决方案是删除2GB日志文件(可以安全地完成此操作,因为它们仅用于故障排除)。非常感谢SamB的发布,您已经找到了此问题的根本原因。我使用的是Windows 7 SP1 64位。我不敢相信Microsoft尚未解决此问题。
就我而言,即使禁用,我也无法停止服务。以下步骤帮助我停止了服务并删除了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.
以防万一它会帮助某人。