Usando links físicos para mover a pasta Usuários do Windows

2

Atualmente, estou tentando mover pastas volumosas do meu SSD para o meu HDD (minha pasta Users e ProgramData ). Estou seguindo um guia resumido usando Junções de Diretório para fazer isto efetivamente. No entanto, isso não funciona para mim. Isso é exatamente o que fiz na minha última tentativa:

  1. Localize a pasta Usuários antigos no disco rígido - aquela que eu quero manter
  2. Instalar o Windows 8 no SSD
  3. Reinicie no console de recuperação - SSD = C: HDD = D:
  4. Copie ProgramData para HDD robocopy /copyall /mir /xj C:\ProgramData D:\ProgramData
  5. Reinicie no Ubuntu para copiar qualquer coisa que falhe e exclua ProgramData
  6. Reinicie no console de recuperação
  7. Renomear C:\Users para C:\Users.old
  8. Criar junções
    1. mklink /J C:\Users D:\Users
    2. mklink /J C:\ProgramData D:\ProgramData
  9. Verifique com dir se tudo está bem.

No entanto, quando eu iniciei o backup, a tela inicial de login era azul, eu não tinha nenhuma foto de perfil de usuário e, ao fazer login, recebi:

User Profile Service service failed the sign-in. User profile cannot be loaded

Então, movi ProgramData novamente e renomei Users.old de volta para Usuários. Desta vez, a tela inicial é exibida corretamente, mas ainda recebo o problema do perfil do usuário.

O que eu fiz de errado?

    
por CJxD 12.03.2013 / 19:20

1 resposta

0

Encontrei a resposta depois de muito jogar. A razão pela qual isso não funciona é porque ao copiar os dados do SSD para o HDD, quaisquer junções existentes são removidas. Isso ocorre por causa do /xj flag em robocopy , que é necessário para impedir que ele entre em um loop infinito.

Para contornar isso, um script do PowerShell poderia ser feito para fazer o seguinte:

  1. Copie os dados do SSD para o HDD com robocopy /copyall /mir /xj C:\Stuff D:\Stuff
  2. Para cada junção em C:\Stuff , crie uma junção idêntica em D:\Stuff
  3. Para cada junção em C:\Stuff , copie as permissões de ACL para a junção correspondente em D:\Stuff
  4. Observe os atributos de C:\Stuff com attrib C:\Stuff
  5. Remover ou renomear C:\Stuff
  6. Crie a junção mklink /J C:\Stuff D:\Stuff
  7. Aplique os atributos de C:\Stuff ao ponto de junção com attrib /L C:\Stuff +H +I (por exemplo, - ProgramData usa esses atributos)

Espero que isso mude tudo de C:\Stuff para D:\Stuff , mantendo todos os pontos de junção, permissões e atributos.

Mas há um 'atalho', que eu peguei. Em vez de me preocupar com tudo isso, fiz uma imagem da unidade completa de C: e a restaurei para D: ( obviamente, certificando-se de que nenhum arquivo estava em D: que seria substituído. Há software livre lá fora para fazer isso, como Macrium Reflect Free e Drive Image XML .

Eu então copiei os dados extras necessários para D: e passei para a etapa 4 dos itens acima. Depois disso, acabei de remover todos os meus arquivos do Windows que não eram necessários na unidade (tive que usar meu pendrive do Ubuntu para essa parte).

Tudo funcionando!

    
por 17.03.2013 / 15:31