Kenapa ukuran file CBS.log 20 GB

129

Dua hari yang lalu saya memiliki C:drive penuh , setelah itu saya menghapus 8 GB data. Hari berikutnya hard drive penuh lagi, jadi saya melanjutkan dengan menghapus 5 GB lagi, dan sekali lagi hari berikutnya disk penuh.

Setelah beberapa mencari apa yang menyebabkan ruang disk terisi begitu cepat, saya menggunakan windirstatalat untuk menemukan file mana yang paling banyak memakan ruang. Saya menemukan bahwa CBS.logfile tersebut, yang terletak di c:\windows\logs\cbs\, berukuran 20 GB.

Saya menggunakan Windows 8.

  • Haruskah file ini sebesar ini, dan jika tidak, bagaimana saya bisa mengurangi ukurannya?
  • Apa tujuan dari file ini?
  • Bisakah saya menghapusnya?
skmasq
sumber
sudahkah Anda menambahkan logging verbose? blogs.technet.com/b/joscon/archive/2010/11/18/…
magicandre1981

Jawaban:

34

Itu adalah file yang dihasilkan oleh Microsoft Windows Resource Checker (SFC.exe).

Tidak, seharusnya tidak sebesar itu. CBS.persist.log harus dihasilkan ketika CBS mencapai ukuran sekitar 50 mcg. CBS.log harus disalin ke cbs.persist.log dan file cbs.log baru harus dimulai.

Anda dapat mencoba mengompresi file:

  • Jika Anda mengklik kanan pada file CBS.log
  • Kemudian klik Properties
  • Pada tab Umum, klik Tingkat Lanjut
  • Periksa "Kompres konten untuk menghemat ruang disk" dan klik OK

Atau, jika Anda yakin sistem Anda berfungsi dengan baik, Anda dapat menghapus file ini. SFC.exe akan membuat yang baru, lain kali dijalankan. Tapi, ini bisa berguna untuk mengatasi masalah.

Berlama-lama
sumber
16
Hanya FYI, CBS.logtidak dihasilkan oleh SFC. Sementara SFC menambahkannya (dengan [SR]tag) tampaknya TrustedInstaller.exe (alias CBS alias Component Based Servicing) adalah yang membuat file log. Sumber: Memahami Layanan Berbasis Komponen
Vinayak
3
Um, saya benar-benar ragu bahwa kompresi NTFS akan mencegah bentuk TrustedInstaller mencoba berjalan makecabdi logfile, yang akan mati jika ukuran> = 2 GiB. Gagasan yang lebih baik adalah mengompresnya dalam beberapa format kompresi eksplisit lainnya, yang biasanya akan memberinya nama file baru, sehingga mencegah TrustedInstaller dari memberi makan tanpa tujuan ke makecab...
SamB
5
@ Sam benar. Masalah ini terjadi karena format .CAB memiliki batasan keras ukuran file 2GiB, dan TrustedInstaller akan terus mengeluarkan makecabsecara rutin, membuat file ~ 100MiB baru di folder temp Anda setiap kali. Solusinya adalah menghapus file log 2GB (yang dapat dilakukan dengan aman, karena ini hanya digunakan untuk pemecahan masalah).
Syclone0044
6
Mengapa ini ditandai sebagai jawaban yang benar ketika @Vayak menyarankan detail yang salah? Tentunya untuk itulah fungsi "edit" itu?
Criggie
85

Saya punya file cbs.persist.log 17 gb, karena saya yakin bukan saya yang mengisi SSD, saya mencari file besar yang tidak biasa di direktori log windows. Hanya bisa memikirkan masalah kompresi.

Jadi, untuk mengatur ulang kompresi di folder CBS saya telah menggunakan metode berikut:

  1. Nonaktifkan TrustedInstaller.exe (Penginstal Modul Windows) di Layanan Taskmanager
  2. Hapus semua file .log di direktori C: \ Windows \ Logs \ CBS , hapus juga file .persist dan .cab
  3. Aktifkan TrustedInstaller.exe lagi

CATATAN: Membersihkan folder CBS mengatur ulang proses kompresi, sehingga file log yang baru dibuat tidak boleh lebih besar dari 50 Mb sebelum kompresi menjadi file .cab sebagaimana mestinya.

Tidak ada hasil visual langsung, Anda perlu menunggu sampai file log seperti itu cukup besar.

Solusi ini masih berfungsi untuk saya di Windows 7/8 / 8.1 setelah 1 tahun

Meskipun saya tidak dapat memastikan bahwa kompresi tidak akan pernah gagal lagi, jika tidak ... maka cukup ulangi solusinya tetapi pastikan untuk menonaktifkan TrustedInstaller sebelum menghapus file di folder CBS.

Semoga ini membantu.

Gin
sumber
5
Bagaimana Anda menonaktifkan Pemasang Modul Windows? Di jendela "Layanan", semua tombol untuk memulai, berhenti, melanjutkan, jeda, dll berwarna abu-abu. Pengelola tugas Windows juga tidak dapat membunuh TrustedInstaller.exe ..
Alph.Dev
3
@ Alph.Dev Mulai services.mscmelalui Win + R ("Run"), cari layanan, klik kanan - Properties - Start: Disable. Kemudian reboot, bersihkan file, dan atur kembali ke Manual atau Otomatis (otomatis adalah default pada sistem Win7 saya).
chrki
Ada cara yang lebih mudah, cukup gunakan LockHunter untuk menghapusnya.
majkinetor
skrip PowerShell?
PreguntonCojoneroCabrón
27

Kalau-kalau ada yang bertanya-tanya mengapa ini terjadi di tempat pertama. Saya percaya saya telah mereproduksi kondisi khusus (saya yakin ada variasi lain dari kondisi ini yang dapat menyebabkan hasil yang sama):

  1. Saya memulai sejumlah besar pembaruan Windows yang sangat besar (banyak paket bahasa dan paket layanan, dll.), Sementara saya juga memiliki banyak aplikasi dan jendela terbuka (saya seorang pengembang). Saya kemudian pergi makan siang.
  2. Pembaruan Windows berjalan hingga sistem kehabisan memori (RAM). Saya memiliki 32 Gigabytes, tetapi itu tidak cukup.
  3. Layanan "Trusted Installer.exe" ("Windows Module Installer") mencoba untuk mengompresi file log yang tumbuh cepat, tetapi tidak dapat berjalan, baik karena log tumbuh terlalu cepat, atau tidak dapat mulai karena kehabisan memori yang rendah, atau keduanya. Jadi ketika dibutuhkan, layanan Windows Module Installer bahkan tidak memulai sama sekali, (bahkan sementara).
  4. Sejak saat itu, ia tidak dapat menangani file log, karena terlalu besar untuk kompresi .CAB (sekitar 25 Gigabytes!) Dan siklus setan telah dimulai dan tidak ada yang bisa menghentikannya (kecuali dengan intervensi manual seperti yang dijelaskan oleh " Gin "di atas).
  5. Setelah file log tumbuh hingga 60 Gigabytes pada SSD saya, ia menggunakan semua ruang kosong saya dan saya mendapat peringatan "ruang penyimpanan rendah", dan mulai mencari penyebabnya.

Proses berikut ini tampaknya telah memperbaiki masalah: "nonaktifkan layanan Pemasang Modul Windows, hapus konten C: folder \ Windows \ Logs \ CBS \, dan folder 'C: \ Windows \ Temp' — melewatkan file apa pun yang digunakan, kemudian memulai layanan Penginstal Modul Windows lagi dan mengaturnya untuk 'manual' mulai (default) ". Mulai ulang.

Praktek Pertama
sumber
2
Ada ribuan file di c: \ windows \ temp pada mesin saya - mudah-mudahan, memangkas beberapa ratus file akan memiliki efek yang tepat dalam mengurangi pertumbuhan eksplosif CBS.log
Toybuilder
10

Sebagai solusinya, pada Windows 7, jika layanan "Penginstal Modul Windows" dihentikan, maka memulainya akan memicu proses rotasi log yang membuat file cbs.log baru dan memindahkan file lama ke dalam arsip CbsPersist .cab terkompresi. File log 500MB saya dikompresi hingga 30MB.

Perhatikan bahwa mungkin perlu beberapa menit untuk berjalan. Layanan tampaknya berhenti sendiri secara otomatis setelah selesai.

ivanatpr
sumber
10
Catatan yang tidak bekerja dengan sendirinya jika salah satu file sudah mencapai tanda 2GiB, karena makecabmenyerah begitu saja sejauh itu (meninggalkan cab_*file yang rusak %WINDIR%\Temp); dalam hal ini, Anda juga harus membuang CbsPersist_*.logfile besar itu sehingga TrustedInstaller ("Windows Modules Installer") tidak akan mencoba menjalankannya makecabsaat startup. Saya menggunakan 7-zip untuk mengompres file saya ke file .log.xz, tetapi menghapus atau mengganti nama mungkin juga akan menjadi pilihan. Setelah itu, memulai ulang akan menangani yang berukuran cukup besar.
SamB
6
@ Sam benar. Masalah ini terjadi karena format .CAB memiliki batasan keras ukuran file 2GiB, dan TrustedInstaller akan terus mengeluarkan makecabsecara rutin, membuat file ~ 100MiB baru di folder temp Anda setiap kali. Solusinya adalah menghapus file log 2GB (yang dapat dilakukan dengan aman, karena ini hanya digunakan untuk pemecahan masalah). Terima kasih banyak SamB untuk memposting, Anda telah mencapai akar penyebab masalah ini. Saya menggunakan Windows 7 SP1 64-bit. Saya tidak percaya Microsoft belum memperbaikinya.
Syclone0044
Jika layanan itu aktif, memilih "Mulai Ulang" memiliki efek yang sama. Efeknya tidak terlalu bagus jika Anda telah mengatur direktori Logs \ CBS sebagai terkompresi.
PJTraill
5

Dalam kasus saya, saya tidak dapat menghentikan layanan bahkan setelah menonaktifkan. Langkah-langkah berikut membantu saya menghentikan layanan dan menghapus log 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.

Untuk jaga-jaga jika itu akan membantu seseorang.

gnaanaa
sumber
Mungkin. Itu sebabnya kami harus menghentikan layanan seperti di atas untuk menghapus file log.
gnaanaa
1
Ya, tetapi karena Anda tidak dapat menghentikannya secara manual, Anda harus menonaktifkan dan reboot.
StackzOfZtuff
Di W7x64 saya, saya tidak bisa menonaktifkan layanan tetapi saya bisa membunuh TrustedInstaller.exe. Ini menghapus kunci dari file dan saya bisa menghapusnya.
user136036
1

Pada Server 2008 R2, saya C:\windows\tempkosong. Saya mencoba menghapus log cbs dan log cbs 2,5 GB terus kembali, jadi saya memeriksa C:\windows\tempsetelah mencoba untuk menghapus log dan sejumlah besar .dmpfile telah muncul di sana.

Dihapus ini dan file log sekarang hilang. Ruang disk telah pulih. (Milik saya terus kembali bahkan setelah menghapusnya.)

Semoga ini membantu
sumber