Otázka čitateľa: Pred nejakým časom mi na počítači prestal dobre fungovať Windows 7. Veľmi pomaly sa vypínal (niekoľko minút) a nedokázal som to vyriešiť inak, než preinštáláciou. Problém sa tým odstránil, ale objavil sa nový. Disk „C“ s Windows sa začal prepĺňať až po samý okraj. Začal som ho čistiť programom Ccleaner, ale po pár týždňoch sa všetko zopakovalo. Zistil som, že všetko je spôsobené tým, že sa neustále, cca každých 30 až 50 minút, vytvorí nový identický súbor CAB v priečinku C:WindowsTEMP. Má veľkosť 122 MB a netuším, na čo slúži a čo ho vytvára. Za deň sa takto objavia na disku 2 GB dát a za pár dní už desiatky a postupne stovky GB. Čo je to za problém a ako by som tento proces mohol zastaviť?

Nejde o infekciu a ani o škodlivý proces. To, čo popisujete je relatívne bradatý bug (cca 10 rokov), týkajúci sa systémovej kompresie logov. Súbory CAB ktoré pribúdajú na vašom disku vytvára samotný Windows, konkrétne jeho funkcia CBS (Component-Based Servicing), tiež známa ako Trusted Installer (podľa jej spúšťacieho súboru TRUSTEDINSTALLER.EXE)

Tento komponent sa stará o bezpečnú inštaláciu aktualizácií, ovládačov a iného softvéru, pričom si o svojej práci zaznamenáva log v rámci súboru cbs.log, ktorý sa nachádza v priečinku C:WindowsLogsCBS.

Ukážka bežného obsahu CBS logu Windows

Ukážka bežného obsahu CBS logu Windows

Tento log súbor má v základe len pár MB, pričom Windows ho nenechá narásť do veľkého objemu a v prípade potreby na ňom vykoná kompresiu. Vzhľadom na to, že ide len o text, kompresia je veľmi účinná. Trusted Installer si na to zavolá systémový kompresný mechanizmus, pracujúci s formátom CAB, čo je ekvivalent iných známejších kompresných algoritmov, ako je ZIP či RAR. Súbor sa skomprimuje na pozadí, pričom sa dočasne použije priečinok C:WindowsTEMP.

Používateľ si pri tejto operácii nič nevšimne, pretože všetko prebehne raz za čas obvykle tak, že sa napríklad 50 MB log zmení kompresiou na 1 MB a je hotovo (temp sa následne automaticky vymaže).

PREČO SA DISK TÝMITO SÚBORMI ZAPĹŇA:

Existuje však bug, ktorý nastane v prípade, že váš CBS log narastie na viac ako 2 GB. K takejto situácii by totiž nikdy nemalo dôjsť a obvykle takto log zaplní len nejaká opakovaná cyklická operácia (chyba), ktorá mohla nastať v priebehu rokov celej prevádzky vášho systému (mimochodom, takáto cyklická operácia sa mohla prejavovať aj ako pomalé vypínanie systému, ktoré ste riešili).

Výsledkom je veľký 2 GB log, ktorý integrovaný CAB mechanizmus (makecab.exe) z dôvodu bugu nezvládne skomprimovať. V základe stihne skomprimovať 1,99 GB na spomenutých 122 MB a chce pokračovať ďalej, ale pri preplnení svojho kompresného zásobníka nad 2 GB spadne.

Kopiace sa súbory CAB v priečinku Temp

Kopiace sa súbory CAB v priečinku Temp

Proces kompresie sa tak nedokončí. Pôvodný log súbor zostane nedotknutý (proces nedobehol) a jeho spadnutá rozpracovaná kompresné kópia v priečinku TEMP zostane ako mŕtvola, o ktorej nie je záznam (proces jej spracovania sa takisto z dôvodu pádu nedokončil).

Systém za hodinu či obdobný čas deteguje, že CBS súbor je priveľký a treba ho komprimovať a celý proces sa tak začne znova s rovnakým výsledkom. A mŕtve súbory nedokončenej kompresie sa kopia a kopia, až pokiaľ disk dovolí.

Vo vašom prípade je nezvyčajné, že sa problém objavil na systéme, ktorý ste nedávno nainštalovali. Dôvodom bude zrejme proces reinštalácie, ktorý ste zvolili (priamo prepis starých systémových dát, pričom starý log zostal zachovaný a ešte sa do neho dopisujú nové dáta). To sa mohlo skombinovať ešte s neaktualizovanosťou systému.

VYRIEŠENIE PROBLÉMU:

Každopádne, nech už je dôvod vzniku tohto problému akýkoľvek, je možné ho ľahko a natrvalo odstrániť. Proces je pre bežných používateľov síce trochu nefamiliárny, ale nie je dôvod sa ľakať. V základe ide len o pár krokov, ktoré dokáže replikovať ktokoľvek.

Ako z predošlého popisu príčiny vyplýva, to čo potrebujete zmazať sú nielen nedokončené kompresné mŕtvoly v podobe pribúdajúcich CAD súborov, ale hlavne ich zdroj, ktorý danú chybu z dôvodu svojej veľkosti spôsobuje. Teda konkrétny cbs.log.

Ako prvé musíte dočasne zastaviť proces Windows Modules Installer, patriaci súboru TrustedInstaller.exe, ktorý log drží otvorený v rámci svojich operácií a používa ho. Otvorte menu Štart a do integrovaného vyhľadávania zadajte výraz Services. Vyhľadanú položku s ikonou ozubených koliesok následne spustite.

Kopiace sa súbory CAB v priečinku Temp

Kopiace sa súbory CAB v priečinku Temp

Zobrazí sa vám okno so systémovými službami Windows. Posuňte sa v ňom nižšie a v abecedne zoradenom zozname nájdite položku Windows Modules Installer a dvojklikom ju otvorte. Objaví sa doplnkové okno, v ktorom uvidíte tlačidlá Start – Stop – Pause – Resume. Kliknite na tlačidlo Stop.

Počkajte kým sa proces zastaví a v riadku „Services status“ uvidíte hodnotu „Stopped“.

Podľa aktuálneho stavu vášho systému sa môže aj stať, že proces bude aktuálne zastavený. V takom prípade bude tlačidlo Stop šedé a v stave služby budete ihneď vidieť hodnotu „stopped“. To je takisto v poriadku a skrátka len pokračujte k ďalšiemu kroku.

Následne otvorte klasickou cestou priečinok C:WindowsLogsCBS a všetok jeho obsah kompletne vymažte. Ide predovšetkým o inkriminovaný súbor cbs.log. Nemusíte sa báť. Nejde o žiadne dôležité dáta. Ide skrátka len o záznamy z minulých inštalačných procesov v súvislosti s tým, ako prebiehali. Pre bežného používateľa nemajú význam.

Následne otvorte priečinok C:WindowsTemp a pokiaľ ste to ešte neurobili, zmažte aj nahromadené chybné CAB súbory.

Týmto krokom je všetko hotové. Proces Windows Modules Installer môžete nazad spustiť ručne, alebo skrátka len reštartujte počítač. Windows si ho spustí pri štarte sám. Vytvorí si takisto nový čerstvý súbor cbs.log, s miniatúrnou veľkosťou, do ktorého bude zapisovať odteraz už nové záznamy. Chyba sa už prejavovať nebude.

František Urban

František Urban
Zameriavam sa najmä na prehľadové a analytické články z oblasti najrôznejších technológií a ich vývoja. Nájdete ma takisto pri diagnostike HW a SW problémov.