两天前,我有一个完整的C:驱动器,此后,我删除了8 GB的数据。第二天,硬盘驱动器再次装满,因此我继续删除另外5 GB,第二天磁盘又装满了。

在搜索了导致磁盘空间如此迅速填充的原因之后,我使用了windirstat工具来查找哪些文件占用了最大的空间。我发现位于CBS.log中的c:\windows\logs\cbs\文件大20 GB。

我正在使用Windows8。


该文件应该是这个文件吗?大的,如果不是的话,如何减小大小?
此文件的用途是什么?
我可以删除它吗?


评论

您是否添加了详细的日志记录? blogs.technet.com/b/joscon/archive/2010/11/18/…

#1 楼

那是由Microsoft Windows资源检查器(SFC.exe)生成的文件。

不,它不应该那么大。当CBS的大小达到50兆左右时,应生成CBS.persist.log。应该将CBS.log复制到cbs.persist.log并启动一个新的cbs.log文件。

您可以尝试压缩文件:


如果右键单击CBS.log文件
,然后单击“属性”
在“常规”选项卡上,单击“高级”
检查“压缩内容以节省磁盘空间”,然后单击“确定”

或者,如果您确定系统运行正常,则可以删除此文件。下次运行时,SFC.exe将创建一个新文件。但是,这对于解决问题可能很有用。

评论


仅供参考,SFC不会生成CBS.log。尽管SFC确实附加了它(带有[SR]标记),但似乎TrustedInstaller.exe(又名CBS,又名基于组件的服务)是创建日志文件的原因。来源:了解基于组件的服务

– Vinayak
15年2月6日在11:09

嗯,我严重怀疑NTFS压缩是否会阻止TrustedInstaller表单尝试在日志文件上运行makecab,如果文件大小> = 2 GiB,它将死掉。一个更好的主意是以其他显式压缩格式压缩它,这通常会给它一个新的文件名,从而防止TrustedInstaller毫无意义地将其提供给makecab ...

– SamB
2015年9月18日于17:16

@SamB是正确的。发生此问题的原因是.CAB格式具有2GiB文件大小的硬限制,并且TrustedInstaller将继续例行发出makecab,每次在您的temp文件夹中创建一个新的〜100MiB文件。解决方案是删除2GB日志文件(可以安全地完成此操作,因为它们仅用于故障排除)。

–Syclone0044
2015年12月25日在21:02

当@Vinayak建议输入错误的详细信息时,为什么将此标记为正确答案?当然这就是“编辑”功能的作用吗?

–松脆
16年2月11日在1:48

#2 楼

我有一个17 gb的cbs.persist.log文件,因为我确定不是我填写了ssd,所以我在Windows日志目录中搜索了异常的大文件。
反正只能想到压缩问题。

因此,要重置CBS文件夹中的压缩,我使用了以下方法:


在Taskmanager Services中禁用TrustedInstaller.exe(Windows模块安装程序)
删除C:\ Windows \ Logs \ CBS目录中的所有.log文件,
也删除.persist和.cab文件
再次启用TrustedInstaller.exe

注意:清理CBS文件夹将重置压缩过程,因此新创建的日志文件在压缩为.cab文件之前应不超过50 Mb。是。

没有直接的视觉结果,您需要等待,直到这样的日志文件足够大为止。 1年后

尽管我不能确定压缩将永远不会再次失败,但是如果确实如此...
那么只需再次重复该解决方案,但是请确保在删除文件之前禁用TrustedInstaller在CBS文件夹中。

跳e这会有所帮助。

评论


如何禁用Windows模块安装程序?在“服务”窗口中,所有开始,停止,继续,暂停等按钮均显示为灰色。 Windows任务管理器也无法杀死TrustedInstaller.exe。

– Slava
15年12月28日在10:05

@ Alph.Dev通过Win + R(“运行”)启动services.msc,找到该服务,右键单击-属性-开始:禁用。然后重新启动,清理文件,并将其设置回“手动”或“自动”(自动是Win7系统上的默认设置)。

–chrki
16-4-30在16:18



#3 楼

以防万一有人想知道为什么会首先发生这种情况。我相信我已经复制了特殊条件(我敢肯定这些条件的其他变化可能会导致相同的结果):


我开始了很多Windows更新(一堆语言包和Service Pack等),同时我也
打开了许多其他应用程序和窗口(我是开发人员)。
然后我去吃了午饭。
Windows Update一直运行到系统内存(RAM)耗尽为止。我有32 GB,但还不够。
“受信任的Installer.exe”(“ Windows模块安装程序”服务)
试图压缩快速增长的日志文件,但是无法运行,
因为日志增长太快,或者由于内存不足而无法启动,或者两者兼而有之。因此,当需要时,Windows Module
安装程序服务甚至根本无法启动(甚至是临时启动)。
从那时起,它就无法处理日志文件,因为它也是
/>对于.CAB压缩,它很大(大约25 GB!),因此恶性循环已经开始,没有什么可以阻止它(除了上面“ Gin”所述的手动干预之外)。
一旦我的SSD上的日志文件增加到60 GB,它就使用了我所有的可用空间,并且我得到了“存储空间不足”警告,并开始
寻找原因。
以下过程似乎已解决了该问题:“禁用Windows Module Installer服务,删除C:\ Windows \ Logs \ CBS \文件夹和“ C:\ Windows \ Temp”文件夹的内容-跳过任何文件在使用中,然后再次启动Windows Module Installer服务,并将其设置为“手动”启动(默认)”。重新启动。

评论


我的计算机上c:\ windows \ temp中有成千上万个文件-希望修剪成几百个文件将对减少CBS.log的爆炸性增长产生正确的影响

–玩具制造商
16年6月14日在2:23

仅作记录,Windows会不断更新RAM的使用情况(即使我从未想过它可能会很糟糕以至于32 GB还不够)是这个问题。

–mirh
20-2-15在15:24

#4 楼

解决方法是,在Windows 7上,如果“ Windows模块安装程序”服务已停止,则启动该服务似乎会触发日志轮换过程,该过程将创建新的cbs.log文件并将旧文件移动到压缩的CbsPersist .cab存档中。我的500mb日志文件压缩到30mb。

请注意,它可能需要几分钟才能运行。该服务似乎一旦完成就自动停止。

评论


请注意,如果任何文件已经达到2GiB标记,它本身将无法正常工作,因为makecab只会在达到此程度时放弃(将损坏的cab_ *文件保留在%WINDIR%\ Temp中);在这种情况下,您还需要以某种方式处理超大的CbsPersist _ *。log文件,以便TrustedInstaller(“ Windows模块安装程序”)在启动时不会尝试在它们上运行makecab。我使用7-zip将我的文件压缩为.log.xz文件,但是删除或重命名也可能是选项。在那之后,重新启动它会照顾到合理大小的对象。

– SamB
2015年9月18日于17:05

@SamB是正确的。发生此问题的原因是.CAB格式具有2GiB文件大小的硬限制,并且TrustedInstaller将继续例行发出makecab,每次在您的temp文件夹中创建一个新的〜100MiB文件。解决方案是删除2GB日志文件(可以安全地完成此操作,因为它们仅用于故障排除)。非常感谢SamB的发布,您已经找到了此问题的根本原因。我使用的是Windows 7 SP1 64位。我不敢相信微软还没有解决这个问题。

–Syclone0044
2015年12月25日在21:03

如果该服务处于活动状态,则选择“重新启动”具有相同的效果。如果您将Logs \ CBS目录设置为压缩状态,效果将不那么理想。

– PJTraill
16 Mar 16 '16 at 19:36

#5 楼

就我而言,即使禁用,我也无法停止服务。以下步骤帮助我停止了服务并删除了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.


以防万一,它对某人有帮助。

评论


MS论坛上的一个人说这是设计使然:请注意,在Windows 7中,您无法停止此服务,但可以禁用它,重新启动,然后删除cbs.log。

– StackzOfZtuff
16-09-28在11:37

可能吧。因此,我们需要如上所述停止服务以删除日志文件。

– gnaanaa
16-09-29在20:03

是的,但是由于无法手动停止,因此必须禁用并重新启动。

– StackzOfZtuff
16 Sep 30'6:50

在我的W7x64上,我无法禁用该服务,但可以杀死TrustedInstaller.exe。这从文件中删除了锁定,我可以将其删除。

–user136036
17年1月18日在9:39

#6 楼

在Server 2008 R2上,我的C:\windows\temp是空的。
我尝试删除cbs日志,并且不断返回2.5 GB的cbs日志,因此尝试删除日志后检查了C:\windows\temp,并且在那里出现了很多.dmp文件。

删除这些文件,日志文件现在消失了。磁盘空间已恢复。 (即使删除后,我也一直返回。)