題 為什麼CBS.log文件大小為20 GB


兩天前我吃飽了 C: 驅動器,之後我刪除了8 GB的數據。第二天硬盤再次滿了,所以我繼續刪除另外5 GB,第二天磁盤已經滿了。

在搜索了導致磁盤空間如此快速填充的原因之後,我使用了 windirstat 用於查找哪些文件佔用空間最多的工具。我發現了 CBS.log 文件,位於 c:\windows\logs\cbs\,是20 GB大。

我使用的是Windows 8。

  • 這個文件應該大嗎,如果沒有,我該如何減小尺寸?
  • 這個文件的目的是什麼?
  • 我可以刪除它嗎?

127
2017-08-27 18:16


起源


你添加了詳細的日誌記錄嗎? blogs.technet.com/b/joscon/archive/2010/11/18/... - magicandre1981


答案:


這是由Microsoft Windows資源檢查器(SFC.exe)生成的文件。

不,它不應該那麼大。當CBS的大小約為50兆時時,應生成CBS.persist.log。應將CBS.log複製到cbs.persist.log,並應啟動新的cbs.log文件。

您可以嘗試壓縮文件:

  • 如果右鍵單擊CBS.log文件
  • 然後單擊“屬性”
  • 在常規選項卡上,單擊高級
  • 選中“壓縮內容以節省磁盤空間”,然後單擊“確定”

或者,如果您確定係統運行正常,則可以刪除此文件。下次運行時,SFC.exe將創建一個新的。但是,它可能對解決問題很有用。


34
2017-08-27 18:30



只是一個FYI, CBS.log 不是由證監會產生的。雖然證監會確實附加了它(與 [SR] 標籤)似乎TrustedInstaller.exe(又名CBS又基於組件的服務)是創建日誌文件的東西。資源: 了解基於組件的服務 - Vinayak
嗯,我嚴重懷疑NTFS壓縮會阻止TrustedInstaller表單嘗試運行 makecab 在日誌文件上,如果它的大小> = 2 GiB,它將會死亡。一個更好的想法是以其他一些顯式壓縮格式壓縮它,這通常會給它一個新的文件名,從而防止TrustedInstaller毫無意義地將它提供給 makecab... - SamB
@SamB是正確的。出現此問題是因為.CAB格式具有2GiB文件大小的硬限制,並且TrustedInstaller將繼續發出 makecab通常,每次在temp文件夾中創建一個新的~100MiB文件。解決方案是刪除2GB日誌文件(可以安全地完成,因為它們僅用於故障排除)。 - Syclone0044
當@Vinayak表示錯誤的細節時,為什麼這被標記為正確的答案?當然這就是“編輯”功能的用途? - Criggie


我有一個17 gb的cbs.persist.log文件,因為我確信不是我填滿了我的ssd,我在windows日誌目錄中搜索了不尋常的大文件。 無論如何只能想到壓縮問題。

因此,要重置CBS文件夾中的壓縮,我使用了以下方法:

  1. 在Taskmanager服務中禁用TrustedInstaller.exe(Windows模塊安裝程序)
  2. 刪除C:\ Windows \ Logs \中的所有.log文件 CBS 目錄, 也刪除.persist和.cab文件
  3. 再次啟用TrustedInstaller.exe

注意:清理CBS文件夾會重置壓縮過程,因此在壓縮到.cab文件之前,新創建的日誌文件不應超過50 Mb。

沒有直接的視覺效果,您需要等到這樣的日誌文件足夠大。

1年後,此解決方案仍適用於Windows 7/8 / 8.1

雖然我不能確定壓縮永遠不會再次失敗,如果它... 然後再簡單地重複解決方案但確保在刪除CBS文件夾中的文件之前禁用TrustedInstaller。

希望這可以幫助。


85
2017-07-22 23:26



謝謝你! “makecab.exe”讓我發瘋,將所有4個內核保持在50%並且一直拋出交互式服務檢測消息。最後,Windows再次表現自己。 - bythescruff
如何禁用Windows模塊安裝程序?在“服務”窗口中,啟動,停止,恢復,暫停等所有按鈕都顯示為灰色。 Windows任務管理器也無法殺死TrustedInstaller.exe .. - Alph.Dev
@ Alph.Dev我也是 - cja
@ Alph.Dev開始 services.msc 通過Win + R(“運行”),找到服務,右鍵單擊 - 屬性 - 開始:禁用。然後重新啟動,清理文件,並將其設置回手動或自動(自動是我的Win7系統上的默認設置)。 - chrki
有更簡單的方法,只需使用LockHunter刪除它。 - majkinetor


萬一有人想知道為什麼會發生這種情況。我相信我已經復制了特殊條件(我確信這些條件的其他變化可能導致相同的結果):

  1. 我開始了大量非常大的Windows更新(一堆語言包和服務包等),而我也是 有大量其他應用程序和窗口打開(我是開發人員)。 然後我去吃午飯。
  2. Windows Update一直運行,直到系統內存不足(RAM)。我有 32 GB,但還不夠。
  3. “Trusted Installer.exe”(“Windows模塊安裝程序”服務) 試圖壓縮快速增長的日誌文件,但無法運行, 要么因為日誌增長太快,要么因為日誌無法啟動 內存不足或兩者兼而有之。所以當需要時,Windows模塊 安裝程序服務甚至根本沒有啟動(甚至暫時)。
  4. 從那時起,它就無法處理日誌文件,因為它也是如此 大.CAB壓縮(大約25千兆!)等等 惡性循環已經開始,沒有什麼可以阻止它(除了手動 如上文“杜松子酒”所述的干預。
  5. 一旦我的SSD上的日誌文件增長到60千兆字節,就會使用我所有的 自由空間,我得到了一個“低存儲空間”的警告,並開始了 尋找原因。

以下過程似乎已修復此問題:“禁用Windows模塊安裝程序服務,刪除C:\ Windows \ Logs \ CBS \文件夾的內容,以及'C:\ Windows \ Temp'文件夾 - 跳過正在使用的所有文件,然後再次啟動Windows模塊安裝程序服務並將其設置為“手動”啟動(默認)“。重啟。


26
2018-01-26 23:35



好帖子,非常有趣。 - zb226
在我的機器上c:\ windows \ temp中有成千上萬的文件 - 希望修剪到幾百個文件將對減少CBS.log的爆炸性增長產生正確的影響。 - Toybuilder


作為解決方法,在Windows 7上,如果“Windows模塊安裝程序”服務已停止,則啟動它似乎會觸發日誌輪換過程,該過程將創建新的cbs.log文件並將舊文件移動到壓縮的CbsPersist .cab存檔中。我的500mb日誌文件壓縮到30mb。

請注意,可能需要幾分鐘才能運行。一旦完成,該服務似乎會自動停止。


10
2017-07-29 00:16



請注意,如果任何文件已經達到2GiB標記,則它本身不起作用 makecab 當它走得那麼遠時就放棄了(留下一個腐敗的 cab_* 檔案 %WINDIR%\Temp);在這種情況下,你還需要處理超大號 CbsPersist_*.log 文件以某種方式使TrustedInstaller(“Windows模塊安裝程序”)不會嘗試運行 makecab 在他們啟動時。我使用7-zip壓縮我的.log.xz文件,但刪除或重命名也可能是選項。之後,重新啟動它將照顧合理大小的。 - SamB
@SamB是正確的。出現此問題是因為.CAB格式具有2GiB文件大小的硬限制,並且TrustedInstaller將繼續發出 makecab 通常,每次在temp文件夾中創建一個新的~100MiB文件。解決方案是刪除2GB日誌文件(可以安全地完成,因為它們僅用於故障排除)。非常感謝SamB發帖,你找到了這個問題的根本原因。我使用的是Windows 7 SP1 64位。我不敢相信微軟還沒有解決這個問題。 - Syclone0044
如果該服務處於活動狀態,則選擇“重新啟動”具有相同的效果。如果你設置了,效果並不是那麼好 日誌\ CBS 目錄為壓縮。 - PJTraill


在我的情況下,即使禁用後我也無法停止服務。以下步驟幫助我停止服務並刪除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.

以防萬一它會幫助某人。


5
2018-05-18 03:13



MS論壇上的一個人說這是設計的: 請注意,在Windows 7中,您無法停止此服務,但可以禁用它,重新啟動,然後刪除cbs.log。 - StackzOfZtuff
有可能。這就是我們需要停止上述服務以刪除日誌文件的原因。 - gnaanaa
是的,但由於您無法手動停止,因此您必須禁用並重新啟動。 - StackzOfZtuff
在我的W7x64上,我無法禁用該服務,但我可以殺死TrustedInstaller.exe。這從文件中刪除了鎖,我可以刪除它。 - user136036


在Server 2008 R2上,我的 C:\windows\temp 空了。 我嘗試刪除cbs日誌和一個2.5 GB的cbs日誌保持返回,所以我檢查 C:\windows\temp 在嘗試刪除日誌和大量的 .dmp 文件出現在那裡。

刪除了這些,日誌文件現已消失。磁盤空間已恢復。 (即使在刪除它之後我一直都會回來。)


1
2018-06-03 16:30