PDA

View Full Version : Vista/Win7 - WinSxS e spazio occupato su disco


ezio
27-03-2009, 21:57
In Vista, come in Windows 7, è presente una cartella winsxs di notevoli dimensioni, che va man mano espandendosi nel tempo.

Tale cartella non va eliminata, modificata, spostata.

- A cosa serve?
Le applicazioni sono sviluppate appoggiandosi a specifiche componenti del sistema operativo, per lo più tramite l'utilizzo di appositi file con estensione ".dll"; versioni differenti di questi file potrebbero comprometterne la stabilità o il corretto caricamento/funzionamento.
Su Vista e 7 si è lavorato molto alla modularità e versatilità del sistema operativo, la cartella winsxs ne è un esempio.

Windows raccoglie in questa cartella tutte le versioni delle componenti (o dll) richiesti in fase d'installazione dai software e dagli hotfix di Microsoft.
In questo modo sono preservati i file principali del sistema operativo (che non vengono sovrascritti), e allo stesso tempo è garantita la corretta compatibilità dell'applicazione le cui chiamate ai file .dll (o altra estensione) verranno automaticamente reindirizzate nel rispettivo percorso tramite winsxs.

Anche le routine caricate dagli aggiornamenti Microsoft usufruiscono di questa cartella per individuare lo stato del sistema, eventuali file da aggiornare o possibili conflitti con gli update stessi (vedi i service pack che, in caso di qualche driver o software con noti problemi di compatibilità installati sul sistema, non vengono proposti tramite Windows Update).
In alcuni casi, la cancellazione del contenuto di Winsxs provoca l'errore 80070002 durante l'utilizzo di Windows Update impedendo l'aggiornamento del sistema.

- Come mai è così grande?
In realtà, è molto più piccola di quanto appaia.

Può capitare che più applicazioni richiedano la stessa versione della stessa componente o dll. In questo caso, anzichè creare un doppione, Windows è in grado di assegnare un "hard link", un "puntatore" che permetta all'applicazione di caricare il file corretto.

Supponiamo di avere due software, A e B. Entrambi richiedono la dll X. Verranno creati due puntatori in winsxs, uno per ogni applicazione, che fanno riferimento al file X.
Puntatori che ovviamente avranno una dimensione in termini di spazio occupato notevolmente inferiore al file originario.

Bene, ma perchè winsxs è così grande?
Perchè Windows Explorer, come qualsiasi altra shell e come le stesse applicazioni A e B, "vede" il puntatore come se fosse il file (X) vero e proprio.
Controllando la dimensione di winsxs, quindi, lo spazio occupato da X che appare a video sarà moltiplicato per il numero di puntatori creati nella cartella stessa.

In linea di massima, per installazioni normali la dimensione reale si aggira sui 400mb.

- Posso spostarla in un altra partizione o disco?
In rete si trova qualche guida, ma Vista (e di conseguenza Win7) supporta la gestione di winsxs solo nella partizione principale su cui è stato installato.




----

Fonti msdn:
- Link 1 (http://blogs.technet.com/askcore/archive/2008/09/17/what-is-the-winsxs-directory-in-windows-2008-and-windows-vista-and-why-is-it-so-large.aspx)
- Link 2 (http://blogs.msdn.com/e7/archive/2008/11/19/disk-space.aspx)

letsmakealist
28-03-2009, 09:14
Bene, ma perchè winsxs è così grande?
Perchè Windows Explorer, come qualsiasi altra shell e come le stesse applicazioni A e B, "vedono" il puntatore come il file (X) vero e proprio.
Controllando la dimensione di winsxs, quindi, lo spazio occupato da X che appare a video sarà moltiplicato per il numero di puntatori creati nella cartella stessa.

In linea di massima, per installazioni normali la dimensione reale si aggira sui 400mb.
quindi anche se il mio sistema vede 15,5 GB (con 73000 file e 20000 cartelle) in realtà lo spazio occupato è minore.
e dunque anche i 3,97GB che mi rimangono liberi nella partizione di Vista sono in realtà di più, giusto ?
c'è un modo per sapere la reale dimensione della cartella ?

ezio
28-03-2009, 10:14
Non penso si possa controllare l'effettiva dimensione, proprio perchè le applicazioni ed Explorer stesso vedono ogni hard link come un file a tutti gli effetti.
Cercando in rete non ho trovato informazioni su questa possibilità.

Di conseguenza, anche lo spazio libero sulla partizione dovrebbe effettivamente essere maggiore...

beee
29-03-2009, 23:17
In linea di massima, per installazioni normali la dimensione reale si aggira sui 400mb.


...non so che dire, ma questa affermazione mi pare un pò strana!
Vista ultimate, installato da giugno 2008 e 'dismesso' per cambio hardware a fine anno...ultimamente ho recuperato l'hd, e sono impazzito per prendere possesso dei file di windows per cancellarli (avevo gia messo un pacco di dati su quel hd).. la cartella in questione era di 9gb, e dopo averla eliminata lo spazio libero sull'hd è aumentato di circa 9gb (ho fatto il conto al volo, per cui potrebbero anche essere 8 o 10). Non torna la dimensione, appurato il fatto che la dimensione reale di winsxs, se inferiore a quella visualizzata, lo è di poco, 400mb non va! Stessa versione di vista che uso tuttora, winsx è 13.8gb, occupa 13.9gb, 17251 cartelle e 63609 file. Curioso, controllo anche 2 pc al lavoro con vista home... 9.5gb entrambi, molto simili...
Se explorer non vede correttamente la dimensione della cartella, non cambia nulla, se 'vede' 15gb che magari sono uno solo, vede anche 15gb di spazio libero in meno sull'hd, per cui ai fini pratici la dimensione vista da explorer, anche se non reale, è corretta!

ezio
30-03-2009, 20:01
Le tue considerazioni sullo spazio libero disponibile non sono errate, ho pensato la stessa cosa ma al momento non ho trovato ulteriori informazioni sui blog Microsoft e Technet...

leoben
31-03-2009, 19:32
Se explorer non vede correttamente la dimensione della cartella, non cambia nulla, se 'vede' 15gb che magari sono uno solo, vede anche 15gb di spazio libero in meno sull'hd, per cui ai fini pratici la dimensione vista da explorer, anche se non reale, è corretta!

Confermo.
Avevo creato una partizione per il s.o. da 30Gb. Inizialmente (dopo aver installato qualche programma) ne avevo oltre 10Gb liberi.
Col passare del tempo, tale spazio si è continuamente ridotto fino ad arrivare ad un paio di Gb o poco più. In tale condizione il pc swappava tantissimo, l'hard disk era sempre in lettura/scrittura e la velocità generale del pc ne risentiva molto. Inoltre non riuscivo ad installare nessun nuovo software (i giochi ad esempio) che mi superasse tale soglia di spazio perchè mi usciva l'errore di spazio insufficiente.
Ho dovuto ampliare la partizione per tornare ad avere un pc performante...

ezio
09-04-2009, 20:32
Aggiunta una piccola nota al primo post:
In alcuni casi, la cancellazione del contenuto di Winsxs provoca l'errore 80070002 durante l'utilizzo di Windows Update impedendo l'aggiornamento del sistema.

shark79
17-05-2009, 10:45
Affetto dal problema ho letto la discussione... 12.9GB:doh:

Ma purtroppo non sembra esserci una soluzione.

Rimango sintonizzato, magari riusciamo a trovarla.

(Ciao ezio!!!!:D )

ignazioc
11-09-2009, 14:40
[cut]
nell'impossibilità di rimuovermi da questa board ho cancellato il mio unico messaggio.

ezio
11-09-2009, 18:26
Interessante, chissà come mai questa differenza :fagiano:

gstef
17-09-2009, 08:32
Non sono d'accordo!!! ho windows vista x64 e la directory WINSXS è grande 16 gb, ho un disco da 25Gb, le altre directory + S.O. occupano un po meno di 7Gb.
Facendo un calcolo rapido mi restano 2Gb liberi.
Ho cercato di spostare una cartella da 3 GB ma appena lo spazio disponibile arriva a zero la copia si interrompe per spazio libero insufficiente.
Quindi 16GB E' LA DIMENDIONE EFFETTIVA DELLA CARTELLA!!!!

UNA COSA INSULSA, 5GB di sistema operativo e ben 16GB di una cartella che contiene moltissimi file che non servono, come ad esempio una cartella chiamata BACKUP, di ben 2GB.

Non so che dire.....

Ottimo metodo per ridurre lo spazio utilizzato da winsxs: http://www.kreslavsky.com/2009/03/vista-winsxs-folder-how-to-reduce-winsxs-folder-size.html

ezio
17-09-2009, 16:12
Ne abbiamo discusso nei post successivi, proprio perchè il sistema non è in grado di riconoscere lo spazio reale lo identifica come occupato, quindi ai fini pratici è come se winsxs fosse veramente molto grande ;)

swan_x
03-11-2009, 10:26
ok! detto ciò e capito a a cosa serve...
è possibile ridurre le sue dimensioni? oltre a fare una pulizia tramite "vsp1cln.exe"?? e tra l'altro ne esiste uno anche x il SP2??
la cartella backup è possibile eliminarla??

swan_x
04-11-2009, 10:13
allora ieri ho provato...
se avete (come me) installato il SP2 x vista, il comando vsp1cln.exe da cmd non funziona, non viene trovato il file...anche se lo cercate manualmente (è presente in una cartella di winsxs, ma non funziona lo stesso)
ma funziona il comando compcln.exe (sempre da cmd) che elimina il file superflui del SP2 e anche del SP1 (credo)...comunque io ho alleggerito di circa 1 GB!
però vorrei ancora sapere se posso eliminare la cartella backup...

LoTeK_
07-11-2009, 01:49
14gb qui, vista64 premium sp2.
Le dimensioni sono molto realistiche..altro chè, il peso di quei 14gb lo sento tutto.
Averlo saputo prima di installare facevo la partizione per l'os da 50gb invece che da 40gb, con solo l'os, qualche programma installato e 6gb di swap, avanzano 5 miseri gb a causa di sta cartella e se si prova ad installare qualcosa dice spazio insufficiente.
La trovo prioprio una genialata...fino al prossimo format è un po' come giocare al risparmio dato che non si può nemmeno spostarla, grazie MS!

beee
07-11-2009, 06:57
14gb qui, vista64 premium sp2.
Le dimensioni sono molto realistiche..altro chè, il peso di quei 14gb lo sento tutto.
Averlo saputo prima di installare facevo la partizione per l'os da 50gb invece che da 40gb, con solo l'os, qualche programma installato e 6gb di swap, avanzano 5 miseri gb a causa di sta cartella e se si prova ad installare qualcosa dice spazio insufficiente.
La trovo prioprio una genialata...fino al prossimo format è un po' come giocare al risparmio dato che non si può nemmeno spostarla, grazie MS!

Esistono vari programmi che permettono di ingrandire le partizioni.....e lo swap è consigliabile metterlo in un'altra partizione, ancora meglio in un altro disco!

swan_x
07-11-2009, 13:45
la cartella backup si può eliminare????

ezio
08-11-2009, 18:36
la cartella backup si può eliminare????
Eviterei, l'errore 80070002 relativo a Windows Update di cui si parla nel primo post può derivare proprio dalla mancanza della cartella Backup (non ho trovato documentazione tecnica che accerti la cosa, comunque).

Killalol
19-11-2009, 01:53
Esistono vari programmi che permettono di ingrandire le partizioni.....e lo swap è consigliabile metterlo in un'altra partizione, ancora meglio in un altro disco!

Anche io ho fatto male i conti per la mia cara C: in cui ho installato Windows 7. L'ho fatta di soli 20 giga perchè tutti i programmi li ho installati su un'altra partizione, così come musica, video e directory di destinazione di tutti i download, ma quella maledetta winsxs continua a crescere da sola! :mc:

Che programmino mi consigliate per estendere la partizione? 60 giga mi basteranno? Voi quanto l'avete fatta grande la partizione in cui è installato Windows 7?

Aiutoh :cry:

beee
19-11-2009, 08:05
Seven l'ho sul disco 'principale', un raid 0 con 2 hd da 250gb, diviso in 2 partizioni da circa 250gb! Con 50gb credo che non avrai problemi! Notavo ora che con seven, da -gestione computer-gestione disco- è possibile, con qualche limite, ingrandire o ridurre le partizioni....

mcgyver83
16-12-2009, 13:32
E' una cosa veramente ridicola..
Ho una partizione con solo win7 da 20GB mentre tutti i programmi/giochi/documenti li salvo su un'altra partizione, cartella file temporanei inclusa.
E' possibile che si arrivi a 19GB occupati da questo SO?!?!
Ho disabilitato e cancellato i punti di ripristino,cosa posso fare di più?!?!?La cartella WinSxS e DriverStore stanno crescendo!

mcgyver83
03-01-2010, 19:38
Nessuno??

beee
03-01-2010, 23:23
Nessuno??

Nessuno no! Puoi solo ingrandire la partizione, e se leggevi i messaggi precedenti lo capivi da solo! Purtroppo (non tanto) è così, winsx è enorme, ma rimane sempre 1/50 o 1/100 dello spazio di un hd medio odierno!