Movendo pastas do Windows com links de junção (mklink)


23

O espaço no meu SSD está muito baixo e parece haver uma pasta de 19 GB no Windows que se destaca (% windir% \ Installer) e não pode ser excluída com segurança (conforme explicado aqui: /server//q/15746 )

Agora, ele mklinkfornece uma coisinha interessante chamada Links de junção - se eu inicializar no prompt do cmd, movo todos os arquivos para o outro disco rígido e execute o seguinte:

mklink /J C:\Windows\Installer D:\Windows\Installer

Será que vou atrapalhar meu Windows de alguma forma ou isso é uma coisa boa a se fazer? As permissões / atributos da pasta permanecerão os mesmos no link?

Eu usei links físicos antes, e funcionou como um encanto liberando significativamente meu SSD, mas nunca tentei em pastas do sistema (não vejo por que não funcionaria, mas não estou no vontade de reinstalar janelas inteiras, caso eu esteja errado)


Vai estar mexendo. Fiz exatamente isso e depois que um software como o Ramdisk falhou na instalação. Mesmo com mklink / J e / D, apenas movendo a pasta de volta para c, deixe-me concluir a instalação. Possivelmente também minhas atualizações do Windows tiveram problemas.
Cmazay 02/12

Respostas:


29

OK, assumi o risco e valeu a pena - tudo funciona normalmente, mas libertei os 17 GB no meu SSD agora.

Basicamente, as etapas são:

  1. Reinicie o seu PC, pressione F8 continuamente para abrir o menu de inicialização e escolha "Prompt de comando com modo de segurança" (para garantir que você possa mover a pasta do Windows)
  2. Depois que o prompt de comando for exibido, digite o comando para mover a pasta para outra unidade:
    robocopy C:\Windows\Installer D:\Windows\Installer /MOVE /e
  3. Em seguida, crie um link "Junção" para a pasta ausente:
    mklink /J C:\Windows\Installer D:\Windows\Installer

Obviamente, isso pressupõe que seu% WINDIR% seja C: \ Windows, que sua unidade D tenha mais espaço e que você deseja seu destino em "D: \ Windows \ Installer" (pode ser qualquer pasta, apenas consistente) etc ...

Isso deve fazer o truque.


isso funciona no windows 10?
Syaiful Nizam Yahya 15/10/2015

Deveria - todas as informações ainda se aplicam ao AFAIK. Se você tentar, informe-nos como foi!
veljkoz

Trabalhou no Windows 8 - muito incrível, obrigado.
Dunc

1
Trabalhou no Windows 7!
glenviewjeff

3
Esteja ciente de que isso pode causar problemas ao instalar grandes atualizações do Windows (como a Atualização de criadores de queda do Windows 10) porque a junção será substituída por uma pasta vazia.
0xA3 22/11

3

Ao tentar recuperar espaço no meu disco principal, um 120GB SSD, eu encontrei estas instruções sobre como mudar Users, Program Files, Program Files (x86), e ProgramData. Inclui algumas edições do registro "para definir locais padrão", da seguinte maneira:

  1. Substitua as letras de unidade dos caminhos listados em HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows / CurrentVersion (por exemplo, C:\Program Files\Common Filesisso se tornaria D:\Program Files\Common Files)
  2. Substitua variáveis ​​de ambiente %SystemDrive%pelo caminho da unidade em HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows NT / CurrentVersion / ProfileList (ou seja, %SystemDrive%\ProgramDatase tornaria D:\ProgramData)

1
Nota: qualquer aplicativo já instalado ainda poderá procurar no local antigo se as entradas de configuração / registro apontarem para um local que foi resolvido antes dessa alteração. A reinstalação desses aplicativos pode corrigir o problema.
21317 TwiStErRob

2

Tomei medidas semelhantes, mas queria poder usar meu computador enquanto fazia a cópia do arquivo (minha pasta tinha 40 GB).

  1. Copie manualmente a pasta para F: \ Installer
  2. Estou usando o Windows 8.1, portanto, para acessar a inicialização da linha de comando, segurei a tecla Shift enquanto clicava em Reiniciar e, em seguida, em Avançado
  3. Uma vez na linha de comando, tive que descobrir qual letra de unidade usar (não era C: mesmo que esse seja meu% SystemDrive% quando meu sistema operacional for totalmente inicializado). Eu tive que usar echo list volume | diskpartpara descobrir que a unidade C: agora era chamada de E: e a unidade F: ainda era a unidade F:
  4. Eu removi os atributos ocultos e do sistema no E: \ Windows \ Installer attrib -s -h E:\Windows\Installere renomeei-o comrename "E:\Windows\Installer" "Installer_old"
  5. Eu poderia então criar a junção com mklink /J E:\Windows\Installer F:\Installer

2

Você pode usar o mesmo truque para pagefile.sys e swapfile.sys (não tenho certeza se também para hiberfile.sys, não testado, pois eu odeio hibernar no multi-boot).

Apenas certifique-se de desativar o ram virtual e reinicie antes de criar os links simbólicos, depois de criá-los, reative o ram virtual.

Costumo criar (com o bloco de notas) um arquivo vazio no destino do link antes de criar o link.

Lembre-se: Quando o Windows 10 UpGrade remove os links e coloca os arquivos reais, após o UpGrades você pode repetir o processo.

Trabalhando até o Windows 10 versão 1803.48, desde o WindowsXP (o mais antigo que eu havia tentado).


se você não quiser hibernação, desative-a powercfg -h off. O uso de links nesses arquivos parece um recibo seguro para desastres
NiKiZe

Por que se preocupar em mover / liningk swap com seu conteúdo TEMPORÁRIO que você não deseja preservar se pode simplesmente desativá-lo em uma unidade e ativar em outra?
Oleg V. Volkov

0
  1. Copie C:\Windows\Installerpara outro disco como D:\C\Windows\Installer.
  2. Verifique e compare os tamanhos de ambas as pastas se o diretório de origem ativado C:não tiver sido alterado durante a cópia.
  3. Renomeie a pasta no disco C:, por exemplo Installer=>InstallerX
  4. Execute o comando como administrador e execute o seguinte comando:
    • mklink /d C:\Windows\Installer D:\C\Windows\Installer
  5. Aguarde algum tempo (alguns dias) se estiver tudo bem.
    • Se sim, você pode excluir o backup da pasta C:\Windows\InstallerX.
    • Se não, exclua a pasta simbólica C:\Windows\Installere renomeie InstallerXpara Installer, ou copie novamente a pasta D:\C\Windows\Installerpara C:\Windows\Installer.

Isso duplica outra resposta e não adiciona novo conteúdo. Não poste uma resposta, a menos que você realmente tenha algo novo para contribuir.
DavidPostill
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.