it-swarm.asia

Mengapa folder / winsxs tumbuh begitu besar, dan bisakah membuatnya lebih kecil?

Sebuah mesin virtual Vista yang saya gunakan hanya memiliki hard disk virtual 10 GB - dan saya khawatir akan kehabisan ruang seiring waktu.

Saya menggunakan TreeSize untuk memeriksa penyebabnya ..

enter image description here

Dan penyebab utamanya adalah folder /winsxs atau "Windows Side-By-Side" .

enter image description here

Apakah folder Windows Side By Side? Nah, itu dijelaskan dengan cukup baik di sini .

Semua komponen dalam sistem operasi ditemukan di folder WinSxS - sebenarnya kita menyebut lokasi ini sebagai penyimpan komponen. Setiap komponen memiliki nama unik yang mencakup versi, bahasa, dan arsitektur prosesor yang dibuat untuknya. Folder WinSxS adalah satu-satunya lokasi komponen ditemukan pada sistem, semua contoh lain dari file yang Anda lihat pada sistem "diproyeksikan" oleh tautan keras dari penyimpanan komponen. Saya ulangi poin terakhir - hanya ada satu contoh (atau salinan data lengkap) dari setiap versi setiap file di OS, dan contoh itu terletak di folder WinSxS. Jadi dilihat dari perspektif itu, folder WinSxS benar-benar keseluruhan OS, disebut sebagai "flat" dalam sistem operasi down-level. Ini juga menjelaskan mengapa Anda tidak akan lagi diminta untuk media ketika menjalankan operasi seperti System File Checker (SFC), atau ketika menginstal fitur dan peran tambahan.

Itu menjelaskan mengapa folder mulai besar, tetapi bukan mengapa folder menjadi lebih besar dari waktu ke waktu - jawaban untuk pertanyaan itu adalah servis. Dalam versi Windows sebelumnya, unit layanan atom adalah file, di Windows Vista itu adalah komponennya. Ketika kami memperbarui biner tertentu kami merilis versi baru dari seluruh komponen, dan versi baru disimpan di samping yang asli di toko komponen. Versi komponen yang lebih tinggi diproyeksikan ke sistem, tetapi versi yang lebih lama di toko tidak tersentuh. Alasan untuk itu adalah bagian ketiga mengapa penyimpanan komponen menjadi sangat besar.

Banyak orang lain juga mengeluh tentang ukuran folder/winsxs :

Seorang rekan kerja baru-baru ini menerima penyegaran laptop kerja setiap dua tahun dan tengah memuat laptop barunya dengan Vista. Untuk beberapa alasan, hard drive C: hanya dipartisi menjadi 25GB dan sisanya digunakan untuk drive yang jauh lebih besar D :.

Bagaimanapun, setelah memuat banyak Pembaruan Windows, ia hampir tidak memiliki ruang drive yang tersisa di C :, dan untuk beberapa alasan, direktori WinSxS telah menggelembung hingga lebih dari 8GB.

Sementara saya tahu untuk apa direktori WinSxS (Windows Side-by-Side), saya tidak begitu yakin mengapa direktori itu akan meledak dalam ukuran begitu cepat dengan pembaruan sistem operasi normal.

Saya tidak benar-benar peduli tentang memiliki semua file duplikat ini untuk keselamatan, tetapi saya melakukan peduli dengan ledakan VM karena kesalahan ruang disk. Jadi .. bisakah/winxs dengan aman dikupas dengan cara apa pun? Sepertinya tidak bisa ..

Administrator tidak boleh, dengan alasan apa pun, mengambilnya sendiri untuk membersihkan direktori/winxs - melakukan hal itu dapat mencegah Pembaruan Windows dan MSI dari berfungsi dengan baik setelahnya. Mencegah penghapusan tidak disengaja dari direktori dilakukan dengan menempatkan deskriptor keamanan yang kuat pada direktori yang mewarisi anak-anaknya.

Jika folder/winsxs ini menjadi lebih besar, saya harus gambar ulang mesin virtual ini .. yang saya benar-benar tidak ingin melakukannya!

174
Jeff Atwood

Sepertinya akhirnya ada cara untuk melakukan ini di Windows 8.1 paket layanan 1 dan Windows Server 2012 R2 .

Alat analisis toko komponen:

Dism.exe /Online /Cleanup-image /AnalyzeComponentStore

Di akhir pemindaian, pengguna mendapat laporan hasil (ukuran aktual folder winxs) seperti ini:

analyzecomponentstore results

Pembersihan toko komponen:

Saat ini, Pembersihan Toko Komponen harus dipicu secara manual oleh pengguna akhir, baik dengan menjalankan DISM, atau menggunakan Wisaya Pembersihan Disk. Untuk membuat Pembersihan Toko Komponen lebih bermanfaat bagi pengguna akhir rata-rata, ini akan ditambahkan ke dalam tugas pemeliharaan, secara otomatis menghemat ruang disk untuk pengguna akhir. Untuk mengaktifkan ini, perubahan akan dilakukan untuk memungkinkan penghapusan driver kotak masuk menggantikan tanpa memerlukan reboot (hari ini, semua driver menginstal/mencopot pemasangan yang dilakukan oleh CBS memerlukan reboot).

  1. Dism.exe /online /Cleanup-Image /StartComponentCleanup

  2. Alat Pembersihan Disk, Bersihkan tombol file sistem.

    disk cleanup tool

  3. schtasks.exe /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup"

6
Jeff Atwood

Ada perintah Nice yang membersihkan setelah instalasi Windows 7 SP1 (ini menyelamatkan saya sekitar 3 GB):

DISM /online /cleanup-Image /spsuperseded

Harus dijalankan dari Prompt perintah yang ditinggikan

101
GvS

TL; DR

winsxs sebenarnya mengandung tautan keras . Tidak mengambil sebanyak data tambahan seperti yang Anda pikirkan.

Tautan keras seperti 'pintasan' atau 'penunjuk' ke file aktual yang terletak di suatu tempat di disk Anda. Hard link tidak mengambil ruang hard drive dengan sendirinya: itu hanya berfungsi sebagai pengalihan.

Karena winxs terdiri dari tautan keras, menghapus tautan ini tidak akan membebaskan ruang apa pun. File yang sebenarnya akan tetap berada di berbagai lokasi pada disk Anda.


winx tidak masalah

... itu solusinya! (Ya, kebanyakan .)

Ringkasan, "Ditandai Sebagai Jawaban oleh Ronnie Vernon, MVP, Moderator", di sini :

Wow, diskusi panjang tentang hardlink dan winx. Pokoknya di sini adalah beberapa poin yang dirangkum dari apa yang saya mengerti tentang bagaimana semua itu bekerja.

Untuk memulai dengan menjawab pertanyaan OP dengan jawaban sempurna yang diposting di atas oleh Andre.Ziegler, Anda tidak menyentuh winsxs. Mungkin beberapa file dapat dipangkas seperti mp3, avi's, dll tetapi sisa file sistem harus dibiarkan sendiri . Saya juga menggunakan Link Shell Extension seperti yang diposting di atas oleh Ronnie Vernon, cara mudah untuk melihat mana yang ditautkan (panah merah) dan yang merupakan file sederhana.

Sebelum sampai di sini saya melihat di banyak tempat orang-orang meminta alat pembersihan setelah menginstal SP1 untuk Windows 7 seperti vsp1cln. Tidak ada alat khusus, semuanya terintegrasi ke dalam layanan Disk Cleanup. Satu catatan yang akan saya buat di sini adalah bahwa bahkan jika opsi mengatakan akan menghapus beberapa ratus MB setelah saya membersihkan drive saya layanan dihapus sekitar 3GB file berlebih, sehingga bervariasi dari satu sistem ke sistem. Lucu, sekarang saya memiliki lebih banyak ruang daripada yang saya miliki sebelum menginstal SP1. Bagus, MS.

Mengenai tautan keras, saya merasa terhibur dengan kebingungan yang terjadi di sekitar mereka. Saya bukan geek linux, dan saya biasanya hanya menggunakan tautan lunak ... itu sudah cukup bagi saya, tetapi orang-orang tidak mengerti cara kerja yang sulit dan bagaimana ukuran dihitung.

Sekelompok file yang dipilih, tautan atau tidak, akan selalu dihitung sebagai jumlah. Ini berarti bahwa jika saya mengambil file 10MB, dan membuat 2 tautan keras, pemilihan ketiganya akan memiliki 30MB dan ini adalah ukuran yang benar, karena tidak seperti tautan lunak yang terkait dengan entri Tabel File Master asli dan memiliki 0 byte, tautan keras terkait dengan data itu sendiri , memiliki entri mereka sendiri di MFT tetapi menunjuk ke alamat data yang sama, jelas memiliki ukuran ukuran data aktual, waktu yang sama, atribut dan sebagainya. Kenapa, di bawah.

Berapa banyak yang tersisa di drive? Sederhana: persis seperti laporan properti drive sendiri . Jangan memilih semua file, tersembunyi dan tidak tersembunyi pada C dan membuat perbandingan, atau menggunakan alat yang melakukannya secara otomatis karena tidak akan menunjukkan penggunaan HDD yang sebenarnya. Mengapa? Karena:

  1. operasi yang membuat daftar semua file yang dipilih termasuk hard link sebagai file terpisah, mengambil masing-masing dan menambah ukuran, properti drive menghitung data yang tersimpan sebenarnya
  2. tidak semua file akan dihitung, folder yang dilindungi dari traverse dan file dari membaca tidak akan dihitung dan Informasi Volume Sistem biasanya memiliki file yang sangat besar yang dilindungi hanya dengan cara ini
  3. jumlah itu hanya berguna dalam kasus transfer file, jika file, tautan, dll perlu disalin ke DVD atau NAS, itulah jumlah yang akan mereka tempati, dan tautan itu tidak akan dipertahankan karena mereka adalah fitur khusus NTFS, tidak tersedia atau tersedia dalam berbagai bentuk di bawah ISO, UDF, NFS dan sistem file lainnya, tetapi mereka akan dikloning.

Lakukan tes ... salin file 10MB, a.exe, dari drive yang berbeda dan perhatikan bagaimana ruang kosong turun 10MB. Buat tautan keras (mklink/H b.exe a.exe). Sekarang kedua file yang dipilih akan "menggunakan" 20MB di properti pemilihan , tetapi sebenarnya hanya 10MB yang diverifikasi di properti drive , yang akan memiliki ruang kosong yang sama seperti yang dilakukan/dilakukan setelah salinan file. Hapus satu, satu, ruang kosong akan tetap sama. Sekarang hapus yang terakhir dan ruang akan bertambah 10MB. Apakah ada kerusakan yang dilakukan? TIDAK.

Apa itu winx? Dllcache yang jauh lebih baik. Di mana dengan dllcache di XP kami memiliki salinan file yang benar-benar ditambahkan ke penggunaan ukuran sejak mereka dikloning, ini sebenarnya meningkatkan penggunaan tetapi bukan perlindungan total (terhadap virus ). Jika uninstaller jahat berpikir itu harus menghapus beberapa lib runtime dari System32, itu hanya akan menghapus tautan, tetapi bukan data, maka tautan itu akan dibuat ulang sambil menjaga penggunaan ruang data serendah mungkin, lebih baik daripada pengarsipan winxs di taksi dan memiliki taksi di samping file asli. Winxs juga membawa serialisasi, mengelompokkan file dengan nama yang sama tetapi versi yang berbeda, demi dev, yang merupakan hal yang baik/buruk, itu membuat mereka malas untuk kode dengan benar tetapi membantu ketika mereka tidak ingin kode lagi.

Saya melakukan ini untuk membantu siapa pun yang mendarat di sini karena alasan yang sama saya lakukan ... "penggunaan ruang" yang berlebihan oleh winxs setelah SP1. Dan saya harap itu membantu.

44
Mateen Ulhaq

Duplikat dan cadangan ini sangat mengganggu ketika memiliki ruang disk terbatas.

Berada di tempat itu, satu-satunya cara saya menemukan bahwa tidak akan membahayakan stabilitas OS adalah dengan murah hati menggunakan "Kompres konten untuk menghemat ruang disk" pengaturan.

Dengan memadatkan semua direktori cadangan di bawah direktori Windows, saya dapat mengurangi ukuran direktori dari 6,5 GB menjadi 5 GB, tanpa efek samping yang dapat dikenali. Menggunakannya pada beberapa barang Anda di luar direktori Window akan meregangkan 10 GB Anda bahkan lebih.

33
eran

Jika Anda memiliki Vista dan telah menginstal SP2, Anda dapat membersihkan file sistem lama dengan Alat Pembersihan Paket Layanan baru .

  1. Klik Mulai> Semua Program> Aksesori> Prompt Perintah atau klik Mulai> Jalankan dan ketik cmd untuk membuka Command Prompt Windows
  2. Jalankan perintah "Compcln.exe". Jalannya adalah "c:\Windows\System32\compcln.exe".
  3. Pengguna akan dimunculkan pertanyaan apakah akan menyimpan Vista SP2 secara permanen di sistem.
  4. Ketik "Y" dan tekan enter, sistem akan mulai melakukan komponen windows bersih.
27
Tomas Andrle

Dalam Windows 8 Anda dapat mengurangi ukuran folder WinSxS dengan menghapus Fitur Windows :

DISM.exe /Online /Disable-Feature /Featurename:<name> /Remove

Yang penting adalah /Hapus parameter yang baru untuk Windows 8 .

Ruang terbanyak di WinSxS adalah WindowsUpdates yang Anda instal dari waktu ke waktu. Dalam Windows 8/Windows 10 Anda dapat mendeteksi dan menghapus Pembaruan yang digantikan oleh pembaruan yang lebih baru (seperti kumulatif yang lebih baru IE Pembaruan) menjalankan perintah ini:

dism.exe /online /cleanup-image /startcomponentcleanup

atau menjalankan wisaya pembersihan disk dan pilih "Pembaruan Pembaruan Windows"

enter image description here

enter image description here

enter image description here

Juga pastikan Anda telah menginstal pembaruan tumpukan servis http://support.Microsoft.com/kb/2821895 .

Pembaruan ini menjalankan pembersihan mendalam pada WinSxS dan mengkompres semua file DLL/Exe, dari WinSxS yang saat ini tidak digunakan, menjadi file delta yang lebih kecil:

enter image description here

Lihatlah ukuran file yang berbeda.

Windows 8.1 menambahkan perintah DISM baru . /startcomponentcleanup mendapatkan parameter baru /ResetBase yang menjadikan Pembaruan terakhir Anda permanen dan menghapus semua file lama untuk menghemat lebih banyak ruang.

Anda juga dapat menjalankan perintah baru dism /online /cleanup-image /analyzecomponentstore untuk menganalisis folder WinSxS:

enter image description here

Ini memberitahu Anda sekarang kapan Anda harus menjalankan pembersihan untuk menghemat ruang.

21
magicandre1981

Anda dapat menggunakan VSP1CLN.EXE untuk membuat SP1 permanen, yang menurut halaman ini akan membebaskan komponen-komponen yang digantikan oleh SP1.

20
Ben Lings

Kabar baik! Sekarang ada metode resmi sanksi , dari Microsoft, untuk Windows 7 SP1, hingga membersihkan folder WinSXS Anda .

  1. Instal HotFix 2852386 - Anda dapat mengunduh secara manual, atau menunggu sampai datang melalui Pembaruan Windows Anda
  2. Ini menambahkan opsi baru ke Pembersihan Disk Wizard (Di bawah Bersihkan File Sistem) yang dapat Anda aktifkan untuk "Pembaruan Pembaruan Windows". Centang opsi ini.
  3. Klik OK

Peringatan: Anda mungkin tidak dapat menginstal Pembaruan Windows tertentu setelah menjalankan pembersihan folder WinSxS Anda.

9
Mark Henderson

Dism ++ adalah yang Anda cari ( https://www.chuyu.me/en/index.html ).

Anda akan menghemat ruang gigabytes ...

Anda harus memilih "Rakitan WinSxS yang Diganti". Jika Anda melakukan ini - itu akan memberi Anda peringatan bahwa pembaruan yang diinstal ini tidak dapat dihapus. Klik ok, lalu pindai

enter image description here

Ini akan memberi Anda gambaran tentang seberapa banyak ruang yang akan Anda hemat. Hit cleanup, dan itu harus membersihkan ruang itu.

2
user425154

Semoga akan membantu untuk memiliki satu penumpang sederhana sebagai jawaban hebat Jeff Atwood melewatkan /ResetBase switch.

Perhatian : Switch ini sangat membantu mengurangi ukuran folder WinSxS, tetapi sepenuhnya menghapus versi komponen sebelumnya, sehingga Anda tidak akan dapat membatalkan pembaruan yang diinstal sebelumnya. Tetapi jika sistem Anda berperilaku baik, Anda harus aman (terutama jika Anda tidak berada di lingkungan Produksi)

dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase

Ini berfungsi di Windows 8.1 dan yang lebih baru

1
maoizm

Selain solusi yang disebutkan di atas, salah satu cara untuk mendapatkan ruang yang signifikan adalah dengan mengompresi seluruh isi folder. Namun, ini tidak dapat dilakukan dengan menggunakan Explorer (diperlukan hak yang tepat), setidaknya mulai dari Windows 7.

Instruksi-instruksi ini menunjukkan cara mencapai ini:

sc query msiserver 
sc query TrustedInstaller

sc stop msiserver
sc stop TrustedInstaller

sc config msiserver start= disabled
sc config TrustedInstaller start= disabled

icacls "%WINDIR%\WinSxS" /save "%WINDIR%\WinSxS.acl" /t

takeown /f "%WINDIR%\WinSxS" /r

icacls "%WINDIR%\WinSxS" /grant "%USERDOMAIN%\%USERNAME%":(F) /t

compact /s:"%WINDIR%\WinSxS" /c /a /i *

icacls "%WINDIR%\WinSxS" /setowner "NT SERVICE\TrustedInstaller" /t

icacls "%WINDIR%" /restore "%WINDIR%\WinSxS.acl"
del "%WINDIR%\WinSxS.acl"

sc config msiserver start= demand
sc config TrustedInstaller start= demand

sc start msiserver
sc start TrustedInstaller

Catatan/tips:

  1. Pengelompokan menandai cara yang disarankan untuk menjalankan perintah ini, jika dilakukan secara manual. Biasanya, seharusnya tidak ada masalah (kecuali dari beberapa file yang dilewati, karena sedang digunakan), tetapi hasil untuk setiap kelompok harus diperiksa

  2. Saya telah melakukan langkah-langkah ini pada berbagai instalasi sistem operasi di rumah dan di tempat kerja: Win7x64, Win10x64, Windows Server 2008R2 dan Windows Server 2012 dan saya tidak melihat masalah sejauh ini.

  3. Beberapa langkah memakan waktu cukup lama, terutama waktu mengompresi. Sebagian besar langkah akan mengulangi dan menampilkan file yang diproses. Meminimalkan perintah Jendela Prompt mungkin mendapatkan beberapa kecepatan.

0
Alexei