C:\Windows\temp 或 C:\Windows\logs\cbs 有非常多不明 cab_xxxx 檔或 CBS.log 及其相關 log 檔異常肥大,造成C槽空間被用盡。
症狀
最近用戶端電腦常發生C槽空間被用盡的狀況。甚至有些使用者在3、4個小時內C:\Windows\temp 被塞入了近50G的 cab_xxxx 檔導致空間用盡而無法儲存任何檔案。
(C:\Windows\temp 內有非常多cab_xxxx 檔)
發生原因
這些塞滿 C:\Windows\temp 的 cab_xxxx 檔案可能跟 Windows Resource Protection(WRP) 及 C:\Windows\logs\cbs 這資料夾內的 log 檔壓縮失敗有關係。在 CBS.log 成長到大概 50MB 的時候就會轉存為CbsPersist_XXXXXXXXXXXXXX.log 然後在長到一定大小後會自動壓縮成CbsPersist_XXXXXXXXXXXXXX.cab 並刪除原來的 log 檔,但在某些 Windows update 更新失敗的狀況下,不斷地向 CBS.log 寫入錯誤紀錄且衍生的紀錄檔無法正常被壓縮且刪除。導致這些處理中的暫存檔就這麼留在 C:\Windows\temp 裡面,由於不斷地重複進行失敗的壓縮作業,導致最終整個C槽空間被用盡。
(C:\Windows\logs\cbs 內有異常肥大的log檔)
解決方式
1. 如TrustedInstaller 服務執行中,需先停止 TrustedInstaller 服務(此服務預設為停用),刪除 C:\Windows\logs\cbs 內 CBS.log 和 CbsPersist_XXXXXXXXXXXXXX.log,然後 C:\Windows\temp 內所有 cab_xxxx 檔。
開啟命令提示字元視窗,分別輸入以下命令
net stop trustedinstaller
del %SystemRoot%\logs\cbs\cbs*.log /f /q
del %SystemRoot%\temp\* /f /q2. 檢查更新失敗原因並修復。
心得與觀察
雖然很多討論都是提到 sfc/scannow 造成 CBS.log 肥大,但實際上會在 CBS.log 裡寫入大筆資訊的大多是 Windows update patch 安裝失敗的訊息。造成C槽空間用盡的可能很多,但最近常遇到的常為以下幾種狀況。
- C:\Windows\temp 有非常大量 cab_xxxx 檔,且 C:\Windows\logs\cbs 內 log 檔肥大。
- C:\Windows\temp 有非常大量 cab_xxxx 檔,但 C:\Windows\logs\cbs 內 log 檔略大。
- C:\Windows\temp 無異常,但 C:\Windows\logs\cbs 內 log 檔肥大。
後記:
經追蹤後已確定在當初製作映像檔時過多的 Windows Update patch 及安裝失敗訊息造成 Log 檔高達 2.1 G,導致後續產生的 CbsPersist_XXXXXXXXXXXXXX.log 無法正常壓縮。嘗試將造成問題的肥大 Log 檔刪除後,當天下午系統就自動將後續產生的 CbsPersist_XXXXXXXXXXXXXX.log 順利壓成約數MB的壓縮檔,C:\Windows\temp 底下新產生的 cab_xxxx 檔大小為0K。
最後就是怎麼將該機型的電腦統一修正此問題了。
留言