Cartelle virtuali di Windows 7?


16

Ho Steam installato. Steam è installato in c: \ Programmi \ Steam. Steam scarica vari giochi in una sottocartella chiamata SteamApps. L'unica opzione disponibile è che Steam possa scaricare e installare app nella stessa posizione di Steam. Una configurazione tipica potrebbe apparire così:

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

Eccetera.

La mia unità C è un SSD, quindi lo spazio è un problema. Game1 richiede molto disco, quindi ne ho bisogno per rimanere sull'unità C, ma ho una superficie di spazio su cui vorrei installare Game2 e Game3.

Esiste un modo per creare una cartella virtuale chiamata "Game2" che punta davvero al mio disco rigido più grande e farlo in modo tale che Steam (o qualsiasi altra app realmente) sia in grado di navigare fino alla posizione sull'unità C e non ti rendi anche conto che stava davvero accedendo all'unità D: dove punta la cartella virtuale?

Quindi alla fine, C: \ Programmi \ Steam \ SteamApps \ Common \ Game2 esisterebbe come una cartella ma in realtà si associa a D: \ Games \ Game2.


1
Ho lo stesso "problema" da solo. Quello che faccio è fare un backup dei giochi a cui non gioco attualmente, quindi eliminare il contenuto locale. Quando si desidera riprodurli di nuovo, è sufficiente accedere al menu "Steam -> backup e ripristino" e ripristinarli. In questo modo non è necessario scaricare nuovamente tutti i dati durante la reinstallazione. È comunque un design scadente che non puoi avere giochi su dischi diversi.
T. Kaltnekar,



1
Meglio ancora ... Ho fornito maggiori dettagli in una nuova risposta di seguito. Per favore dai un'occhiata.
Flak DiNenno,

Risposte:


21

Prova quanto segue:

Apri un prompt dei comandi con autorizzazioni amministrative:

mklink / D Virtual_Folder_Here Real_Folder_Here

Esempio, vuoi installare qualcosa su D: \ Games, ma vuoi che appaia come C: \ Games.

mklink / DC: \ Giochi D: \ Giochi

Questo creerà una cartella D: \ Game che appare anche come C: \ Game. Tutto ciò che fa riferimento a C: \ Game verrà reindirizzato a D: \ Game.

Dato che non conosco completamente Steam, non ho fornito un esempio che corrisponda alla tua cartella esatta. Se steam ti consente di scegliere la cartella in cui installa (cosa che a causa tua non solo l'installazione sull'altra unità, non sono così sicuro che lo faccia.) Potresti creare prima il loro link simbolico. In caso contrario, potrebbe essere necessario eseguire alcuni trasferimenti di file, spostandolo nella nuova posizione e quindi creando il collegamento simbolico. Esempio:

Steam ha installato il tuo gioco su: C: \ Programmi \ Steam \ SteamApps \ common \ Game2

Ora crei la tua cartella: D: \ GameGoesHere

Quindi, copi tutti i file dalla cartella originale e li metti in D: \ GameGoesHere, quindi puoi creare il link:

mklink / D "C: \ Programmi \ Steam \ SteamApps \ common \ Game2" "D: \ GameGoesHere"

Notate che questa volta ho usato le citazioni a causa della spaziatura di "Programmi". Inoltre, prima di creare il collegamento, la cartella virtuale NON deve essere una cartella reale. Quindi, se la cartella che vuoi essere un collegamento esiste, devi prima eliminarla (non prima di copiarla, ovviamente!)


9

RISPOSTA: Perché (e come) Questa soluzione funziona


Se hai bisogno di recuperare questo spazio / riposizionare l'utilizzo su un'altra unità, hai a disposizione ottime opzioni

Puoi trasferirti in sicurezza in qualsiasi nuova posizione di archiviazione come ...

  • archiviazione locale / live
  • archiviazione in rete
  • archiviazione near-line
  • archiviazione offline

... basta che la posizione OLD sia NTFS e la nuova posizione:

  1. è basato su SMB
  2. è conforme a Windows LANman - se si utilizzano collegamenti simbolici / si desidera riposizionare su un server / dispositivo di rete (vedere di seguito ()
  3. può essere aggiunto / assegnato al file system esistente / " My Computer" usando uno strumento come:
    • il assigncomando shell DOS / Windows
    • Windows "Gestione computer" ( compmgmt.msc)
  4. può essere montato su una lettera di unità o altra directory / punto di montaggio

Quindi, essenzialmente a partire da oggi (2014-05-02), stiamo parlando di:

  • un'altra partizione live (montata)
  • un disco ottico (CD, DVD, ecc.) con un filesystem live come FAT o NTFS
  • un disco rigido esterno
  • un'unità USB
  • un'unità di rete

    NOTA:

    Se e quando viene richiesto il supporto o si ricevono errori relativi a file mancanti / posizione mancante, è sufficiente assicurarsi di reinstallare / reinserire l'unità / supporto se non è già una partizione live.

.

9 su 10 volte, questo sarà il caso:

Pertanto, troverai che questo è molto semplice e hai alcune ottime opzioni tra cui scegliere, che francamente, danno all'incirca gli stessi risultati:

  1. Creare una giunzione di directory nella nuova posizione:

    • Le giunzioni consentono a una directory di puntare a un'altra.
    • Le giunzioni possono essere utilizzate solo sulla memoria locale
    • Sono riconosciuti a livello di file system come voce alias nella tabella del file system (FSTAB).
      • Pertanto, è trasparente per tutti i programmi, incluso il sistema operativo stesso.
      • In altre parole, NON è visto come un file che punta semplicemente a un'altra posizione (come un collegamento) e quindi funziona sempre senza incidenti.
    • Le giunzioni possono avere solo riferimenti assoluti ai file. Quindi, anche se sposti un'intera struttura di directory con una giunzione al suo interno, con la struttura completamente intatta, dovrai ricreare la tua giunzione.
    • Le giunzioni possono essere nominate in qualsiasi modo, cioè non devono riflettere lo stesso nome della cartella a cui puntano.
  2. Crea un collegamento simbolico alla nuova posizione:

    • I collegamenti simbolici sono oggetti del file system che puntano ad altri oggetti del file system.
    • Sono simili alle giunzioni e sono punti di analisi.
    • Tuttavia, in alcune rare occasioni, con alcuni programmi, li ho visti NON essere riconosciuti (questo è talvolta il caso delle Cartelle speciali di Windows .
    • Ma sono più flessibili in questo:
      • I collegamenti simbolici possono essere creati come riferimenti assoluti o relativi.
      • può essere utilizzato per puntare a posizioni di rete SMB / LANman (windows server, dispositivi SMB, ecc.)

PROCEDURE:


Quindi, sposta i tuoi file e cartelle nella nuova posizione quindi:

  1. OPZIONE1 (nativamente): basta emettere il comando integrato di Windows Vista / 7/8 e il prompt cmd:

    • Creare un nodo ( collegamento "rigido" a una directory):

      mklink /J <oldpath> <newpath>
      
    • Creare un collegamento simbolico ( collegamento "soft" a una directory):

      mklink /D <oldpath> <newpath>
      
  2. Opzione 2 (usa uno strumento): UNA GRANDE alternativa è un'utilità gratuita che uso da anni chiamata "Link Shell Extension" (LSE) (o Google it).

    Basta scaricare, decomprimere ed eseguire (nessuna installazione)

    LSE ti consente di creare:

    • link simbolici
    • hardlinks
    • giunzioni
    • smartcopies
    • smartclones
    • specchi intelligenti
    • mosse intelligenti
    • giunzioni
    • più fonti
    • e un sacco di altre cose che non uso mai, francamente
      .

    È un prodotto gratuito geniale che crea un menu di scelta rapida di Windows Explorer che ti consente di fare clic con il tasto destro sulla cartella LINK-TARGET, quindi trascinarlo nel punto in cui desideri creare il collegamento effettivo.

    Ovviamente puoi rinominare il link in qualsiasi cosa tu voglia .


8

Abbastanza sorprendentemente, c'è uno strumento solo per questo chiamato steam mover, progettato per risolvere lo stesso problema, che funziona in Windows 7. È davvero un modo astutamente mascherato di fare facilmente collegamenti simbolici . Fondamentalmente sposterà i file automaticamente e farà un collegamento simbolico per te, quindi tutto sembra essere dove Steam lo aspetta, in C: ma è davvero altrove.

Vorrei notare che funzionerà solo su Windows 7 e Vista poiché MS ha aggiunto collegamenti simbolici a quelle versioni di Windows


1
È possibile utilizzare l'utilità del kit di risorse Win2K linkd su quella piattaforma o la giunzione dello strumento Sysinternals su WinXP. Tuttavia, non è pertinente alla domanda.
Patrick Seymour,

1
@Patrick: piccola tecnicità. Linkd non crea collegamenti simbolici, ma crea giunzioni di directory.
surfasb

2
credo che le giunzioni funzionino solo all'interno della stessa unità. La cosa più vicina ai collegamenti simbolici per i sistemi più vecchi è l'uso astuto di mappare un'unità come una cartella credo
Journeyman Geek

1
@surfasb bene chi usa win2k comunque? :) (purtroppo lo facciamo.)
Patrick Seymour il

1
@JourneymanGeek: No, le giunzioni funzionano su volumi locali . Piuttosto, gli hardlink che non si estendono su più volumi.
surfasb,

0

Le giunzioni possono puntare a qualsiasi cartella NTFS, indipendentemente da quale disco sia l'origine rispetto alla destinazione.

Poiché WinXP Junctions funziona con qualsiasi partizione NTFS direttamente connessa, non importa se si trovano sullo stesso disco o su dik diversi.

Quindi avere una giunzione è la soluzione migliore (simbolica può causare alcuni problemi).

Lo uso molto per fare questo:

  • Avere alcune cartelle "virtuali" sulla partizione di sistema (normalmente è C :) che punta a una cartella su una partizione su un disco USB (SSD, HDD, pendrive, memory card, ecc.).

Quindi posso avere alcuni dati delle applicazioni su supporti esterni e avere una sola copia per più di un PC, quindi non è necessario eseguire una sincronizzazione, ecc. Naturalmente solo un PC lo vedrà contemporaneamente.

Inoltre, le giunzioni possono puntare a una cartella su una partizione NTFS crittografata da veraCrypt, ecc.

Le giunzioni richiedono solo tre cose:

  • La partizione di origine deve essere un NTFS
  • La partizione di destinazione deve essere un NTFS
  • Entrambe le partizioni sono locali (connesse fisicamente al PC) ... questo non è sempre necessario, ci sono alcuni strumenti che ti consentono di mettere un FTP come unità locale e di vederlo come un NTFS, quindi è possibile creare giunzioni per puntare a tale

Quello che voglio dire è che la giunzione deve vedere l'origine e la destinazione all'interno di una partizione NTFS.

  • Per XP utilizzare lo strumento SysInternals chiamato junction, collegamento: Download TechNet Junction .
  • Per 7 a 10 utilizzare lo strumento nativo mklinkcon /jparametro.

Entrambi sono strumenti da riga di comando e la maggior parte delle volte richiede diritti di amministratore.

Le giunzioni sono il modo più semplice, ma non l'unico:

  • È possibile utilizzare una partizione NTFS montata su una cartella NTFS su diversi dischi
  • È possibile creare un file VHD / VHDX (XP e Vista richiedono uno strumento, 7-10 lo fanno nativo sulla gestione del disco), creare una o più partizioni al suo interno e montarle su qualsiasi cartella NTFS
  • eccetera

Il trucco di VHD / VHDX ti consente anche di utilizzare l'archiviazione dinamica, quindi non devi preoccuparti di GiB di dimensioni:

  1. Crea VHD / VHDX in modalità dinamica (non tutte le dimensioni assegnate al disco virtuale saranno le dimensioni del file) e forniscilo quanto vuoi (VHD è limitato a poco meno di 2 TB, il limite VHDX è 64 TB), ma crearlo su un NTFS, poiché FAT32 limita la dimensione del file a meno di 4GiB.
  2. Inizializza il disco virtuale come MBR o GPT (dipende da ciò che desideri, MBR non supporta più di 4 partizioni primarie ed è limitato a un po 'meno di 2 TiB, GPT è limitato a 8 KiB, ma Windows XP non può vedere le unità GPT), vedi maggiori informazioni su questi limiti su Wikipedia: en.wikipedia.org/wiki/GUID_Partition_Table
  3. Partiziona il disco virtuale come desideri
  4. Assegna il formato NTFS alla partizione desiderata
  5. Se è necessario spostare i dati su una cartella (quella che si desidera trovare altrove) montare temporaneamente quel nuovo partiton come qualsiasi lettera, spostare i dati su di esso e smontarli ... ma non eliminare la cartella da cui è stato spostato il Contenuti.
  6. Montare quella partizione su quella cartella

E $ MFT ha un trucco per essere il più piccolo possibile (molto importante se crei partizioni NFTS grandi, davvero grandi per contenere ISO, ecc ... meno di 1000 file di dimensioni davvero grandi ciascuno):

  • Le basi di questo è di avere la dimensione iniziale di $ MFT il più piccola possibile
  • $ MFT crescerà se inserisci più file e non ha abbastanza spazio, quindi non aver paura di non poter aggiungere file
  • È un normale modo nativo per creare la partizione, senza alcun rischio
  • Non c'è motivo (posso vedere) di non creare tutte le partizioni NFTS in questo modo

La procedura è abbastanza semplice:

  1. Crea la partizione con solo 8 MiB (sì megabyte, non giga, ecc.), Meno dimensioni per creare un normale NTFS ... NTFS può avere dimensioni inferiori, ma farà cose strane poiché non è un NFTS completo.
  2. Crescilo nella dimensione reale che desideri

Questi passaggi fanno una cosa:

  • Quando viene creata la partizione, $ MFT è davvero piccola (poiché la partizione ha solo 8 MiB di dimensione)

Se si crea la partizione con la dimensione intera desiderata, $ MFT sarà (per impostazione predefinita e il più possibile le fecce) del 12,5% della dimensione della partizione; e non conosco alcun metodo per ridurre tale percentuale, né per ridurre la dimensione di $ MFT dopo la creazione; quella percentuale può essere maggiore toccando la chiave di registro NtfsMFTZoneReservation su alcune finestre, ma mai inferiore ... quindi creando una partizione di soli 8 MiB, la dimensione iniziale di $ MFT sarà molto piccola. Puoi controllare come lo spazio $ MFT è riservato sul sito Microsoft: come NTFS riserva lo spazio per la sua tabella Master File (MFT)

La crescita di una dimensione della partizione NTFS non tocca la dimensione $ MFT ... quindi per avere un'enorme partizione NTFS con la dimensione $ MFT il meno possibile, creare la partizione come solo 8 MiB e portarla alla dimensione desiderata dopo la creazione.

È fantastico per avere un VHD / VHDX dinamico, perché non utilizzerà tutto quello spazio $ MFT per niente ... Voglio dire:

  • Se si crea un NTFS di 8 MiB (non dimenticare di farlo in modalità di formattazione rapida) e si passa a 1,5 TiB, il file VHD / VHDX che lo contiene sarà più piccolo, molto più piccolo
  • Se crei direttamente una partizione da 1,5 TiB all'interno del VHD / VHDX, il file VHD / VHDX che lo contiene sarà più grande, molto più grande

Test eseguito in Windows 10 Home 64 bit:

  • VHD dinamico di 1,8 TiB con una partizione NTFS creata (con formattazione rapida) di 8 Mii e aumentata a 1,5 MiB ... Le dimensioni del VHD sono: 15,6 MiB
  • VHD dinamico di 1,8 TiB con una partizione NTFS creata (con formattazione rapida) di 1,5GiB ... La dimensione del VHD è: 107 MiB

Vedi, è dieci volte maggiore. So che non si parla molto di un centinaio di megabyte ... ma se si utilizzano molti (alcune migliaia) di file VHD / VHDX, quella dimensione può importare molto, se un migliaio di tali file, sarebbe vicino a 100GiB. Anche con VHDX e dimensioni di ZetaBytes questa differenza è davvero enorme.

Nota: parlo di dimensioni del disco di 1,8 TiB solo per assicurarmi di poter creare una partizione identica di dimensioni esatte di 1,5 Ti (1572864 MiB) ... se metti le dimensioni del disco di X, la partizione sarà inferiore a X.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.