Etapas detalhadas para criar uma junção para a pasta winsxs no Windows 7 [closed]

1

Eu estava procurando uma lista de etapas detalhadas no Windows 7 para mover a pasta winsxs para meu HDD de dados e criar uma junção no SSD com

mklink /J oldpath newpath

Eu só encontrei isso, que está vinculado a uma pergunta de superusuário ( Winsxs pode ser movido e em caso afirmativo como? ), mas é para o Vista e foi publicado em ... 2007:

Como mover o diretório WinSxS no Vista

Também encontrei estas respostas aqui no superusuário:

  1. Nesta pergunta de superusuário, um usuário pergunta se ele pode fazer um mlink para a pasta winsxs depois de movê-lo para outra unidade, e a resposta é " você pode fazer isso para o Installer " . Mas a questão era, você pode fazer isso por winsxs ? Especialmente após o primeiro comentário sob a pergunta dizendo que "isso não pode ser feito porque eles são" já "links simbólicos" .

  2. Isso é para a pasta Windows/Installer , NÃO winsxs e usando a opção /D em vez da opção /J em mlink . Mas eles estão fazendo o que eu quero fazer com o winsxs: copie o conteúdo da pasta para outra, e então faça mklink /D oldpath newpath . Mas posso fazer isso com o winsxs ? (o post do blog vinculado também não moveu a pasta winsxs, eles apenas moveram as outras pastas). Além disso, os comentaristas da postagem do blog vinculada informaram que não podiam mudar de privilégios de administrador para privilégios SYSTEM, que é o primeiro passo antes de executar os comandos ou mover as pastas.

  3. Como posso liberar espaço na unidade do Windows Installer sem matar o Windows? Outro comentarista no link anterior do superusuário diz que, se você fizer uma junção,

"msiexec (apparently) ignores the junction, and manually creates C:\Windows\Installer. This 1) removes the junction, and 2) completely deletes the contents of the target directory."

Isso aconteceria com a pasta winsxs também?

Então, resumindo:

Eu quero mover a pasta winsxs e criar um entroncamento para ela, mas não tenho certeza se posso fazer isso ou as conseqüências dela.

  • As etapas escritas para o Vista em 2007 que vinculei no começo funcionam para o Win 7?
  • É o usuário que diz que "isso não pode ser feito porque eles já são" já "links simbólicos" certos?
  • Se as etapas do Vista para mover a pasta e criar a junção não funcionarem no Win 7, as descritas na postagem do blog vinculado do ponto 2 funcionariam? Como alterar os privilégios corretamente de Admin para SYSTEM sem obter os erros reportados?
  • Se eu conseguir criar a junção, o msiexec ignorará a junção e criará manualmente C: \ Windows \ winsxs, removendo a junção e excluindo completamente o conteúdo do diretório de destino?
  • Qual opção eu usaria, /J (junção) ou /D (link do link simbólico)? Eu estou supondo que /J , e eu sei a diferença entre os dois, mas desde que a outra opção também apareceu em uma resposta, eu não sei mais nada. Diferentes opções aparecem em diferentes fontes. Quem está certo?
por Xirux Nefer 20.06.2015 / 14:22

1 resposta

2

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?

  1. As atualizações podem ser facilmente desinstaladas - arquivos antigos ainda estão lá, esperando por você no WinSxS.
  2. 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.

    
por 20.06.2015 / 16:09