Pastas virtuais do Windows 7?


16

Eu tenho o Steam instalado. O Steam está instalado em c: \ Arquivos de Programas \ Steam. O Steam baixa vários jogos para uma subpasta chamada SteamApps. A única opção disponível é o Steam baixar e instalar aplicativos no mesmo local que o Steam. Uma configuração típica pode ser assim:

C:\Program Files\Steam\SteamApps\common\Game1
C:\Program Files\Steam\SteamApps\common\Game2
C:\Program Files\Steam\SteamApps\common\Game3
C:\Program Files\Steam\SteamApps\common\Game4

Etc.

Minha unidade C é um SSD, portanto, o espaço é um problema. O Game1 consome muito disco, por isso preciso que ele permaneça na unidade C, mas tenho um terrabyte de espaço em que gostaria que o Game2 e o Game3 fossem instalados.

Existe uma maneira de criar uma pasta virtual chamada "Game2" que realmente aponte para o meu disco rígido maior e faça com que o Steam (ou qualquer aplicativo realmente) possa navegar até o local na unidade C e não nem percebeu que estava realmente acessando a unidade D: para onde a pasta virtual aponta?

Portanto, no final, C: \ Arquivos de Programas \ Steam \ SteamApps \ Common \ Game2 existiria como uma pasta, mas na realidade ele mapeia para D: \ Games \ Game2.


11
Tenho o mesmo "problema". O que faço é fazer um backup dos jogos que não jogo atualmente e excluir o conteúdo local. Quando você quiser reproduzi-los novamente, basta ir ao menu "Steam -> backup e restauração" e restaurá-los. Dessa forma, você não precisa baixar todos os dados novamente ao reinstalar. No entanto, é um design ruim que você não pode ter jogos em discos diferentes.
T. Kaltnekar

11
Devo também vincular os excelentes "tipos de links no Windows" superuser.com/a/347946/24500
surfasb


11
Melhor ainda ... forneci mais detalhes em uma nova resposta abaixo. Por favor dê uma olhada.
Flak DiNenno

Respostas:


21

Tente o seguinte:

Abra um prompt de comando com permissões administrativas:

mklink / D Pasta virtual_Aqui Pasta_Aqui

Por exemplo, você deseja instalar algo em D: \ Games, mas deseja que ele apareça como C: \ Games.

mklink / DC: \ Jogos D: \ Jogos

Isso criará uma pasta D: \ Game, que também aparece como C: \ Game. Qualquer coisa que faça referência a C: \ Game será redirecionada para D: \ Game.

Como não estou completamente familiarizado com o steam, não dei um exemplo que corresponda à sua pasta exata. Se o steam permitir que você escolha a pasta na qual instala (o que, devido a você não apenas instalá-lo na outra unidade, não tenho tanta certeza disso), você pode criar primeiro o link simbólico. Se, no entanto, isso não acontecer, talvez seja necessário fazer algumas transferências de arquivos, movendo-o para o novo local e criando o link simbólico. Exemplo:

O Steam instalou o seu jogo em: C: \ Arquivos de Programas \ Steam \ SteamApps \ common \ Game2

Agora, você cria sua pasta: D: \ GameGoesHere

Em seguida, copie todos os arquivos da pasta original e coloque-o em D: \ GameGoesHere, e crie o link:

mklink / D "C: \ Arquivos de programas \ Steam \ SteamApps \ common \ Game2" "D: \ GameGoesHere"

Observe que usei citações dessa vez devido ao espaçamento de "Arquivos de Programas". Observe também que antes de criar o link, a pasta virtual NÃO deve ser uma pasta real. Portanto, se a pasta que você deseja ser um link existir, você deve excluí-la primeiro (não antes de copiá-lo, é claro!)


9

RESPOSTA: Por que (e como) Esta solução funciona


Se você precisar recuperar esse espaço / realocar o uso para outra unidade, terá ótimas opções

Você pode se mudar com segurança para qualquer novo local de armazenamento, como ...

  • armazenamento local / ao vivo
  • armazenamento online
  • armazenamento near-line
  • armazenamento offline

... desde que a sua localização ANTIGA seja NTFS e a nova localização:

  1. é baseado em SMB
  2. está em conformidade com o Windows LANman - se você usa links simbólicos / deseja realocar-se em um servidor / dispositivo de rede (veja abaixo ())
  3. pode ser adicionado / atribuído ao sistema de arquivos existente / " My Computer" usando uma ferramenta como:
    • o assigncomando shell do DOS / Windows
    • Windows "Gerenciamento do computador" ( compmgmt.msc)
  4. pode ser montado em uma letra de unidade ou em outro ponto / diretório de montagem

Então, basicamente a partir de hoje (02/05/2014), estamos falando sobre:

  • outra partição ao vivo (montada)
  • um disco óptico (CD, DVD, etc.) com um sistema de arquivos ao vivo como FAT ou NTFS
  • um disco rígido externo
  • uma unidade USB
  • uma unidade de rede

    NOTA:

    Se e quando a mídia for solicitada ou você receber algum erro sobre a falta de arquivos / local ausente, basta remontar / reinserir sua unidade / mídia, caso ela ainda não seja uma partição ativa.

.

9 em 10 vezes, este será o caso:

Portanto, você achará isso muito simples e terá algumas ótimas opções para escolher, que, francamente, produzem aproximadamente os mesmos resultados:

  1. Crie uma junção de diretório para o novo local:

    • As junções permitem que um diretório aponte para outro.
    • As junções podem ser usadas apenas no armazenamento local
    • Eles são reconhecidos no nível do sistema de arquivos como uma entrada de alias na Tabela do Sistema de Arquivos (FSTAB).
      • Portanto, é transparente para todos os programas, incluindo o próprio sistema operacional.
      • Em outras palavras, NÃO é visto como um arquivo que simplesmente aponta para outro local (como um atalho) e, portanto, sempre funciona sem incidentes.
    • As junções podem ter apenas referências absolutas aos arquivos. Portanto, mesmo se você mover uma estrutura de diretório inteira com uma junção dentro dela, com a estrutura completamente intacta, será necessário recriar sua junção.
    • As junções podem ter qualquer nome, ou seja, não precisam refletir o mesmo nome da pasta para a qual estão apontando.
  2. Crie um link simbólico para o novo local:

    • Links simbólicos são objetos do sistema de arquivos que apontam para outros objetos do sistema de arquivos.
    • Eles são semelhantes a junções e são pontos de nova análise.
    • No entanto, em algumas ocasiões raras, com alguns programas, eu os vi NÃO serem reconhecidos (esse é o caso das Pastas Especiais do Windows) .
    • Mas, eles são mais flexíveis nisso:
      • Links simbólicos podem ser criados como referências absolutas ou relativas.
      • pode ser usado para apontar para locais de rede SMB / LANman (servidores Windows, dispositivos SMB, etc.)

PROCEDIMENTOS:


Então, mova seus arquivos e pastas para o novo local:

  1. OPÇÃO1 (nativa): basta emitir o comando interno do Windows Vista / 7/8 e o prompt do cmd:

    • Crie uma junção (link "rígido" para um diretório):

      mklink /J <oldpath> <newpath>
      
    • Crie um link simbólico ( link "soft" para um diretório):

      mklink /D <oldpath> <newpath>
      
  2. Opção2 (use uma ferramenta): Uma ótima alternativa é um utilitário gratuito e útil que venho usando há anos, chamado "Link Shell Extension" (LSE) (ou no Google).

    Basta baixar, descompactar e executar (sem instalação)

    O LSE permite criar:

    • links simbólicos
    • hardlinks
    • junções
    • smartcopies
    • smartclones
    • espelhos inteligentes
    • movimentos inteligentes
    • emendas
    • Várias fontes
    • e muitas outras coisas que eu nunca uso, francamente
      .

    É um produto gratuito brilhante que cria um menu de contexto do Windows Explorer que permite clicar com o botão direito do mouse na pasta LINK-TARGET e arrastá-la para onde você deseja criar o link real.

    É claro que você pode renomear o link para o que quiser .


8

Surpreendentemente, há uma ferramenta para esse mecanismo chamado steam steam, projetada para resolver o mesmo problema, que funciona no Windows 7. É realmente uma maneira disfarçada de disfarçar os links simbólicos com facilidade. Basicamente, ele moverá os arquivos automaticamente e fará um link simbólico para você, então tudo parece estar onde o steam espera, em C: mas está realmente em outro lugar.

Eu observaria que isso só funcionará no Windows 7 e no Vista, já que a MS adicionou links simbólicos com essas versões do Windows.


11
Você pode usar o link do utilitário do kit de recursos Win2K nessa plataforma ou a junção de ferramentas Sysinternals no WinXP. Não é realmente relevante para a questão.
Patrick Seymour

11
@ Patrick: pequeno detalhe técnico. Linkd não cria links simbólicos, mas cria junções de diretório.
surfasb

2
junções funcionam apenas dentro da mesma unidade que eu acredito. A coisa mais próxima de links simbólicos para sistemas mais antigos é o uso astuto de mapeamento de uma unidade como uma pasta eu acredito
Journeyman Geek

11
@surfasb bem quem usa o win2k, afinal? :) (infelizmente, o que fazemos.)
Patrick Seymour

11
@JourneymanGeek: Não, os cruzamentos funcionam em volumes locais . Em vez disso, os hardlinks que não abrangem volumes.
Surfasb

0

As junções podem apontar para qualquer pasta NTFS, independentemente de qual disco é a origem versus o destino.

Como o WinXP Junctions funciona com qualquer partição NTFS conectada diretamente, não importa se elas estão no mesmo disco ou em diks diferentes.

Portanto, ter uma junção é a melhor solução (simbólica pode causar alguns problemas).

Eu o uso muito para fazer isso:

  • Tenha algumas pastas "virtuais" na partição do sistema (normalmente é C :) que apontam para uma pasta em uma partição em um disco USB (SSD, HDD, pendrive, cartão de memória, etc).

Para que eu possa ter alguns dados de aplicativos em mídia externa e ter apenas uma cópia para mais de um PC, não é necessário fazer uma sincronização etc. É claro que apenas um PC os verá ao mesmo tempo.

Além disso, as junções podem apontar para uma pasta em uma partição NTFS criptografada pelo veraCrypt etc.

Os cruzamentos precisam apenas de três coisas:

  • Partição de origem seja um NTFS
  • A partição de destino seja um NTFS
  • Ambas as partições são locais (conectadas fisicamente ao PC) ... isso não é sempre uma necessidade, existem algumas ferramentas que permitem colocar um FTP como uma unidade local e ser visto como um NTFS, para que junções possam ser criadas para apontar para isso

O que quero dizer é que a junção precisa ver a origem e o destino dentro de uma partição NTFS.

  • Para XP, use a ferramenta SysInternals chamada junction: link: Download do TechNet Junction .
  • Para 7 a 10, use a ferramenta nativa mklinkcom o /jparâmetro

Ambas são ferramentas de linha de comando e, na maioria das vezes, exigem direitos de administrador.

As junções são a maneira mais fácil, mas não a única:

  • Você pode usar uma partição NTFS montada em uma pasta NTFS em diferentes discos
  • Você pode criar um arquivo VHD / VHDX (o XP e o Vista exigem uma ferramenta, 7 a 10 são nativos no gerenciamento de disco), criar uma ou mais partições dentro dele e montá-las em qualquer pasta NTFS
  • etc

O truque do VHD / VHDX também permite usar o armazenamento dinâmico, portanto, não é necessário se preocupar com o tamanho do GiB:

  1. Crie o VHD / VHDX no modo dinâmico (nem todo o tamanho atribuído ao disco virtual será o tamanho do arquivo) e ofereça o quanto você desejar (o VHD é limitado a pouco menos de 2 TB, o limite do VHDX é 64 TB), mas crie-o em um NTFS, pois o FAT32 limita o tamanho do arquivo a menos que 4GiB.
  2. Inicialize o disco virtual como MBR ou GPT (depende do que você deseja, o MBR não suporta mais de 4 partições primárias e está limitado a um pouco menos do que 2TiB, GPT é limitado a 8ZiB, mas o Windows XP não pode ver unidades GPT), veja mais informações sobre esses limites na Wikipedia: en.wikipedia.org/wiki/GUID_Partition_Table
  3. Particione o disco virtual como desejar
  4. Atribua o formato NTFS à partição desejada
  5. Se você precisar mover dados em uma pasta (a que você deseja estar em outro lugar) monte temporariamente essa nova partição como qualquer letra, mova os dados para ela e desmonte-a ... mas não exclua a pasta de onde você moveu o conteúdo.
  6. Monte essa partição sobre essa pasta

E $ MFT tem um truque para ser o menor possível (muito importante se você criar partições NFTS muito grandes para armazenar ISOs, etc ... menos de 1000 arquivos de tamanho realmente grande cada um):

  • O básico disso é ter o tamanho inicial de $ MFT o menor possível
  • $ MFT aumentará se você colocar mais arquivos e não houver espaço suficiente, portanto, não tenha medo de não poder adicionar arquivos
  • É uma maneira nativa normal de criar a partição, sem nenhum risco
  • Não há motivo (posso ver) para não criar todas as partições NFTS dessa maneira

O procedimento é bem simples:

  1. Crie a partição com apenas 8MiB (sim, megabytes, não giga, etc.), menos tamanho para criar um NTFS normal ... O NTFS pode ser de tamanho menor, mas fará coisas estranhas, pois não é um NFTS completo.
  2. Aumente para o tamanho real desejado

Esses passos fazem uma coisa:

  • Quando a partição é criada, o $ MFT é realmente pequeno (já que a partição tem apenas 8MiB de tamanho)

Se você criar a partição com o tamanho total desejado, o $ MFT será (por padrão e o menos possível) de 12,5% do tamanho da partição; e não conheço nenhum método para reduzir esse percentual, nem para reduzir o tamanho de $ MFT após a criação; esse percentual pode ser maior ao tocar a chave de registro NtfsMFTZoneReservation em algumas janelas, mas nunca ser menor ... então, ao criar uma partição de apenas 8MiB, o tamanho inicial de $ MFT será muito pequeno. Você pode verificar como o espaço de $ MFT é reservado no site da Microsoft: como o NTFS reserva espaço para sua tabela de arquivo mestre (MFT)

Aumentar o tamanho de uma partição NTFS não afeta o tamanho de $ MFT ... para ter uma enorme partição NTFS com o menor tamanho possível de $ MFT, crie a partição com apenas 8MiB e aumente para o tamanho desejado após a criação.

Isso é ótimo para ter um VHD / VHDX dinâmico, porque ele não usará todo esse espaço de $ MFT por nada ... quero dizer:

  • Se você criar um NTFS de 8MiB (não se esqueça de fazê-lo no modo de formatação rápida) e aumentar para 1,5TiB, o arquivo VHD / VHDX contendo ele será menor, muito menor
  • Se você criar diretamente uma partição 1.5TiB dentro do VHD / VHDX, o arquivo VHD / VHDX que o contém será maior, muito maior

Teste realizado no Windows 10 Home 64Bits:

  • VHD dinâmico de 1.8TiB com uma partição NTFS criada (com formato rápido) de 8MiG e aumentada para 1.5GiB ... O tamanho do VHD é: 15.6MiB
  • VHD dinâmico de 1.8TiB com uma partição NTFS criada (com formato rápido) de 1.5GiB ... O tamanho do VHD é: 107MiB

Veja, é dez vezes maior. Sei que não se fala muito de centenas de megabytes ... mas se você usar muitos (alguns milhares deles) arquivos VHD / VHDX, esse tamanho poderá importar muito, se mil desses arquivos forem perto de 100GiB. Também com VHDX e tamanhos de ZetaBytes, é realmente enorme essa diferença.

Nota: Eu falo sobre o tamanho do disco de 1,8TiB apenas para garantir que eu possa criar uma partição idêntica do tamanho exato de 1,5TiB (1572864 MiB) ... se você colocar o tamanho do disco de X, a partição será menor que X.

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.