A coisa mais importante que você deve saber sobre WinSxS
:
Não ocupa tanto espaço quanto suas propriedades mostram.
OWinSxScontémprincipalmentelinksfísicos.Umlinkfísicoésemelhanteaosymlink,masémuitomaistransparente.
Osarquivosnãosãoarmazenadosnodiscorígidocomoumaárvore,massimemumaestruturaplana.Ositensdessaestruturasãoentãomapeadosnaárvoredepastasenosnomesdados.Cadaumdessesmapeamentoséumúnicolinkfísico.Tãohardlinkéoqueconectaumnomedearquivoeumcaminhoparaoconteúdodoarquivo.
Amaioriadosarquivostemapenasumlinkfísico.Porexemplo,quandovocêfazodownloaddeumarquivo,seuconteúdoéarmazenadoemalgumlugarnodiscorígidoeumlinkfísiconomeadoécriadoemC:\Users\<yourUsername>\Downloads
.
Vocêpodecriarumhardlinkextra,sedesejar,nomesmodiretório(comumnomedearquivodiferente)ouemoutrolugarnamesmaunidade.Oconteúdodoarquivoseráarmazenadonaunidadeapenasumavez,portanto,criarumsegundolinkfísiconãoaumentaráousododisco.Oarquivoseráacessívelapartirdedoiscaminhos.Essesdoishardlinkscompartilharãopropriedades,datasdemodificaçãoeconteúdodoarquivo.Quaisquermodificaçõesemumarquivosãoimediatamenteefetivasnosegundo.Oarquivonãoseráapagadodaestruturaplanaatéquetodososlinkssejamremovidos,portanto,excluirolinkfísicodeixaráoarquivointacto,amenosquesejaoúltimolinkfísico.Linksrígidossãoindistinguíveisunsdosoutros,vocênãopodedizerqualdelesfoicriadoprimeiro.Ambossãocompletamenteequivalentes.(Aocontráriodelinkssimbólicos,ondeexisteumarquivo"mestre").
Arquivos de outras unidades podem ser vinculados a qualquer unidade e as junções de diretório podem ser criadas nas unidades. Você não pode criar um link físico para um arquivo em outra unidade, no entanto. Todos os hard links têm que apontar para um arquivo no mesmo volume.
Agora vamos fazer uma experiência. Vou criar duas pastas, depois um arquivo de 64 KB em um deles e um link para esse arquivo no segundo.
C:\Users\gronostaj\Desktop\experiment>mkdir A B
C:\Users\gronostaj\Desktop\experiment>fsutil file createnew A\hardlink1 65536
File C:\Users\gronostaj\Desktop\experiment\A\hardlink1 is created
C:\Users\gronostaj\Desktop\experiment>mklink /h B\hardlink2 A\hardlink1
Hardlink created for B\hardlink2 <<===>> A\hardlink1
Temos uma árvore de pastas como esta:
+ experiment
|-+ A
| '-- hardlink1
'-+ B
'-- hardlink2
Aqui estão as propriedades de A, que contém um link físico para um arquivo de 64 KB:
Parecelegítimo.PropriedadesdeB,quetambémcontémumlinkfísicoparaomesmoarquivode64KB:
Isso também está bem. Agora vou selecionar tanto A quanto B e vamos ver quanto espaço eles ocupam de acordo com as propriedades:
... e esta janela está mentindo para nós. Existe apenas um arquivo físico que leva 64 KB. O Windows Explorer não sabe disso - ele conta o tamanho total de arquivos apontados por links físicos e há dois links para arquivos de 64 KB. É por isso que acha que essas pastas ocupam o dobro do espaço que realmente ocupam. Não confie no tamanho da pasta nas propriedades.
O WinSxS contém links físicos para arquivos de sistema que o Windows usou em algum momento. Quando um arquivo de sistema é instalado, ele é vinculado em sua localização principal e no WinSxS. Em um sistema Windows recém-instalado, o WinSxS parece ter poucos GB, mas seu tamanho efetivo é zero, porque contém apenas arquivos com link físico em algum outro lugar.
Quando um arquivo de sistema é substituído (por exemplo, pelo Windows Update), ele é removido do local principal e um novo arquivo é instalado em seu lugar. Este novo arquivo também é linkado no WinSxS. Neste ponto, o Windows usa apenas uma versão mais recente do arquivo, mas seu disco rígido contém duas versões, uma delas não é mais usada. Isso realmente faz com que o WinSxS cresça.
Por que o Windows faz isso?
- As atualizações podem ser facilmente desinstaladas - arquivos antigos ainda estão lá, esperando por você no WinSxS.
- O Windows é capaz de corrigir automaticamente alguns problemas com arquivos danificados, pois boas cópias são mantidas no WinSxS. Isso é o que o
sfc /scannow
faz.
Neste ponto, podemos concluir que não podemos mover o WinSxS para uma unidade diferente, porque alguns arquivos dentro dele estão vinculados em algum outro lugar em C:\Windows
. Você poderia copiá-los para uma unidade diferente e criar uma junção, mas aumentaria o uso total do disco (links extras não ocupam espaço, cópias extras) e provavelmente quebrariam o WinSxS.
A única maneira razoável de reduzir o tamanho do WinSxS é remover versões antigas dos arquivos. Isso pode ser feito usando a ferramenta Disk Cleanup (disponível no Windows) marcando a caixa de seleção Windows Update Cleanup . Se ele não aparecer na Limpeza de Disco, seu WinSxS já estará compactado.