In Windows 7 (und anderen Versionen) gibt es einen CBS.log-Bug, der Microsoft seit Jahren bekannt sein sollte. Eine Windows-Komponente schreibt Daten in eine Log-Datei, die dadurch sehr groß werden kann. Eine Funktion zum Komprimieren der Log-Datei versagt aber, wenn diese Datei zu groß wird.

Woody Leonhard hat das Problem (nach einem Leserhinweis) auf ComputerWorld behandelt. Das Problem tritt unter Windows 7, Windows 8, Windows Server 2008 R2 und möglicherweis unter anderen Versionen auf. Ich bin über Twitter darauf hingewiesen worden.Das Log-File-Größen-Problem
Das Problem: Bei manchen Nutzern geht Windows 7 irgendwann der freie Speicherplatz auf dem Systemlaufwerk aus, weil in C:\Windows\TEMP hunderte Dateien geschrieben werden. Ursache ist ein Bug, der Microsoft seit 2015 bekannt sein muss. Ein Nutzer beschreibt das Problem in Microsoft Answers in diesem Forenthread.

Component-Based Servicing (cbs.log) causes all drive space to be consumed
Because I’ve seen this question asked in many places and not answered, I thought I’d post my issue and resolution here. I regard this as a Bug, but I’m not invested enough to deal with the support incident process.
I’ve had repeated instances where a Windows 7 x64 client runs out of hard drive space, and found that C:\Windows\TEMP is being consumed with hundreds of files with names following the pattern “cab_XXXX_X”, generally 100 MB each, and these files are constantly generated until the system runs out of space. Upon removing the files & rebooting, the files start being generated again.
I’ve found that this is caused by large Component-Based Servicing logs. These are stored at C:\Windows\Logs\CBS. The current log file is named “cbs.log”. When “cbs.log” reaches a certain size, a cleanup process renames the log to “CbsPersist_YYYYMMDDHHMMSS.log” and then attempts to compress it into a .cab file.
However, when the cbs.log reaches a size of 2 GB before that cleanup process compresses it, the file is to large to be handled by the makecab.exe utility. The log file is renamed to CbsPersist_date_time.log, but when the makecab process attempts to compress it the process fails (but only after consuming some 100 MB under \Windows\Temp). After this, the cleanup process runs repeatedly (approx every 20 minutes in my experience). The process fails every time, and also consumes a new ~ 100 MB in \Windows\Temp before dying. This is repeated until the system runs out of drive space.

In Kurzform: Das Windows-Laufwerk wird mit Einträgen im Temp-Ordner voll gemüllt, weil Protokolldateien zu groß werden. Die Component-Based Servicing-Funktion protokolliert Ereignisse unter C:\Windows\Logs\CBS in cbs.log. Erreicht diese Datei eine bestimmte Größe, wird die Datei in CbsPersist_YYYYMMDDHHMMSS.log umbenannt. Erreicht die Datei CBS.log in C:\Windows\Logs\CBS 2 GByte, versucht Windows diese Datei mit makecab.exe als CAB-Datei zu komprimieren. Das Problem: makecab.exe kann aber keine Datei größer 2 GByte komprimieren. Beim Versuch legt das Tool eine 100 MByte große Datei unter \Windows\Temp an und scheitert anschließend nach ca. 20 Minuten mit der Kompression. Das wird dann solange wiederholt, bis das Systemlaufwerk voll ist.

Die CBS.log löschen

Wer in dieses Problem läuft, kann nur versuchen, die CBS.log manuell zu löschen. Dazu sind folgende Schritte erforderlich:
  1. Den Windows Modules Installer (TrustedInstaller) Dienst stoppen.
  2. Die zu große Cbspersist_XX.log-Datei in \Windows\Logs\CBS löschen oder aus dem Verzeichnis verschieben.
  3. Den Windows Modules Installer (TrustedInstaller) Dienst neu starten.

Ist die Festplatte bereits voll gemüllt, kann man mit Windows PE booten und die Dateien in \Windows\Temp löschen. Woody Leonhard beschreibt die Schritte hier etwas detaillierter. Nach einem Neustart sollte das Schreiben der 100 MByte großen Dateien in \Windows\Temp durch makecab.exe unterbleiben.

Diesen Artikel fand ich bei BornCity