Movendo pastas para outra unidade no Win7 usando junção

2

Eu pretendo instalar uma unidade SSD msata no meu notebook para manter janelas e programas, mantendo os arquivos de dados, o diretório de usuários, etc. no HD antigo.

Seria mais fácil se eu continuasse me referindo aos arquivos de dados como c: \ whatever, mesmo que eles estejam fisicamente em d: \ whatever.

Se bem entendi, a melhor maneira é criar uma junção, como

mklink /j d:\whatever c:\whatever

Eu então movo o diretório antigo e todos os seus subdiretórios para d: \ whatever, usando o windows explorer ou algo da linha de comando? Ou criaria problemas de circularidade?

Windows7x64 Pro, se isso importa.

    
por foosion 23.12.2011 / 17:49

3 respostas

3

Eu faço exatamente a mesma coisa para mover arquivos de dados grandes do meu SSD em C: para outro disco rígido.

Você precisa mover a pasta primeiro.

Em seguida, crie um link simbólico (ou junção, se preferir, neste caso, eles fornecem a mesma funcionalidade) do local original para o local de destino usando o comando:

mklink /D OriginalLocation DestinationLocation

O /D cria um link de diretório simbólico que pode abranger volumes. (Edit: junções também podem abranger volumes)

Usando o Windows Explorer, você verá um pequeno ícone de atalho na pasta do local original. Usar dir /a no diretório pai mostrará <SYMLINKD> no lugar de <DIR> .

    
por 23.12.2011 / 18:02
0

As etapas que uso são as seguintes. Mudei Users e ProgramData para outra unidade.

1) inicialize no disco do sistema, acesse o prompt de comando, localize sua antiga C:\ Drive e anote a letra da unidade de destino

robocopy /copyall /e /xj Users <CURRENT_LETTER_OF_DESTINATION_DRIVE>:\Users
robocopy /copyall /e /xj ProgramData <CURRENT_LETTER_OF_DESTINATION_DRIVE>:\ProgramData
Rename Users Old_Users
Rename ProgramData Old_ProgramData
cd Old_Users
attrib desktop.ini -S -H
Rename desktop.ini desktop.ini.old

Isso mantém uma cópia da pasta de usuários como "Old_Users". Eu mudei isso em outro lugar como um backup. Se você não alterar o arquivo .ini , talvez não consiga distinguir as duas pastas depois!

Opcionalmente, rmdir /s /q Users e rmdir /s /q ProgramData se você estiver limpando o espaço.

2) então

mklink /J Users <USUAL_LETTER_OF_DESTINATION_DRIVE>:\Users
mklink /J ProgramData <USUAL_LETTER_OF_DESTINATION_DRIVE>:\ProgramData
rmdir "Documents and Settings"
mklink /J "Documents and Settings" "<USUAL_LETTER_OF_DESTINATION_DRIVE>:\Documents and settings"

Agora, quando você reiniciar o Windows, tudo estará OK.

Se você cometer um erro, você pode acabar com um perfil de usuário quebrado. Nesse caso, vá para o modo de segurança (ou outro usuário) e abra regedit at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList . Seu antigo perfil de usuário provavelmente estará na lista com uma extensão .bak e um novo fictício em seu lugar. Exclua o perfil fictício e renomeie a chave .bak sem o "bak".

Você pode então encontrar vários erros de segurança. Eu também tive que fazer o seguinte:

icacls "%programdata%\Microsoft\Internet Explorer\Quick Launch" /SetIntegritylevel (OI)(CI)Medium
icacls "%userprofile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch" /SetIntegritylevel (OI)(CI)Medium
icacls "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu" /SetIntegritylevel (OI)(CI)Medium

A propriedade dos meus arquivos também mudou de alguma forma e eu precisei usar o recurso "Apropriar-se" ou "Propriedades / Segurança / Avançado / Proprietário / Editar / Substituir proprietário em subcontainers" para que tudo funcionasse.

    
por 26.05.2014 / 19:56
-1

FAR Manager pode criar links simbólicos usando Alt + F6, também as pastas vinculadas serão marcadas com <link> , o que torna mais fácil identificá-los. Não sei sobre o Windows 7, mas em versões anteriores do Windows, usar o Explorer para excluir uma pasta com links simbólicos resultaria em resultados catastróficos, como excluir a pasta de destino real.

Para alias de arquivos (não pastas), você pode usar: fsutil hardlink create <new filename> <existing filename> .

Se o Gerenciador de FAR não é bom o suficiente para você, então você poderia ligar simbolicamente as pastas com o junção utilitário de linha de comando por Mark Russinovich, por exemplo:

junction d:\symlinked_folder c:\winnt

E não, você não pode realmente 'mover uma pasta usando a junção', uma junção é apenas um alias para outra pasta que os aplicativos clientes veriam como 'a coisa real'.

    
por 20.01.2012 / 23:52