Windows 7 virtuelle Ordner?


16

Ich habe Steam installiert. Steam wird unter c: \ Programme \ Steam installiert. Steam lädt verschiedene Spiele in einen Unterordner namens SteamApps herunter. Die einzige Option, die verfügbar ist, besteht darin, dass Steam Apps am selben Speicherort wie Steam herunterlädt und installiert. Ein typischer Aufbau könnte so aussehen:

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.

Mein Laufwerk C ist eine SSD, daher ist Speicherplatz ein Problem. Game1 ist sehr festplattenintensiv, daher muss es auf Laufwerk C bleiben, aber ich habe ein Terrabyte Speicherplatz, auf dem Game2 und Game3 installiert werden sollen.

Gibt es eine Möglichkeit, einen virtuellen Ordner mit dem Namen "Game2" zu erstellen, der wirklich auf meine größere Festplatte verweist, und ihn so zu gestalten, dass Steam (oder wirklich jede App) zum Speicherort auf Laufwerk C navigieren kann und nicht stellen Sie sogar fest, dass es wirklich auf Laufwerk D zugreift: wohin zeigt der virtuelle Ordner?

Letztendlich würde C: \ Programme \ Steam \ SteamApps \ Common \ Game2 als Ordner existieren, aber in Wirklichkeit wird es D: \ Games \ Game2 zugeordnet.


1
Habe selber das gleiche "Problem". Ich erstelle eine Sicherungskopie der Spiele, die ich gerade nicht spiele, und lösche dann den lokalen Inhalt. Wenn Sie sie wiedergeben möchten, rufen Sie einfach das Menü "Steam -> Backup and Restore" auf und stellen Sie sie wieder her. Auf diese Weise müssen Sie bei der Neuinstallation nicht alle Daten erneut herunterladen. Es ist jedoch ein beschissenes Design, dass Sie keine Spiele auf verschiedenen Datenträgern haben können.
T. Kaltnekar

1
Ich werde auch einen Link die ausgezeichneten „Arten von Links in Windows“ superuser.com/a/347946/24500
surfasb

1
Werfen

1
Besser noch ... Ich habe unten in einer neuen Antwort mehr Details angegeben. Bitte werfen Sie einen Blick darauf.
Flak DiNenno

Antworten:


21

Versuche Folgendes:

Öffnen Sie eine Eingabeaufforderung mit Administratorrechten:

mklink / D Virtual_Folder_Here Real_Folder_Here

Beispiel: Sie möchten etwas unter D: \ Games installieren, möchten jedoch, dass es als C: \ Games angezeigt wird.

mklink / DC: \ Spiele D: \ Spiele

Dadurch wird ein Ordner D: \ Game erstellt, der auch als C: \ Game angezeigt wird. Alles, was auf C: \ Game verweist, wird nach D: \ Game umgeleitet.

Da ich mit Steam nicht ganz vertraut bin, habe ich kein Beispiel angegeben, das genau zu Ihrem Ordner passt. Wenn Steam es Ihnen ermöglicht, den Ordner auszuwählen, in den es installiert wird (was darauf zurückzuführen ist, dass Sie es nicht nur auf dem anderen Laufwerk installieren, da ich nicht sicher bin, ob dies der Fall ist.), Können Sie zuerst einen symbolischen Link erstellen. Wenn dies jedoch nicht der Fall ist, müssen Sie möglicherweise einige Dateiübertragungen durchführen, diese an den neuen Speicherort verschieben und dann die symbolische Verknüpfung erstellen. Beispiel:

Steam hat Ihr Spiel unter C: \ Programme \ Steam \ SteamApps \ common \ Game2 installiert

Nun erstellen Sie Ihren Ordner: D: \ GameGoesHere

Dann kopierst du alle Dateien aus dem Originalordner und legst sie in D: \ GameGoesHere ab. Dann kannst du den Link erstellen:

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

Beachten Sie, dass ich dieses Mal Zitate verwendet habe, da "Programme" einen bestimmten Abstand zueinander haben. Beachten Sie auch, dass der virtuelle Ordner vor dem Erstellen des Links KEIN realer Ordner sein darf. Wenn also der Ordner existiert, den Sie verknüpfen möchten, müssen Sie ihn zuerst löschen (natürlich nicht, bevor Sie ihn kopieren!)


9

ANTWORT: Warum (und wie) funktioniert diese Lösung?


Wenn Sie diesen Speicherplatz zurückfordern oder die Nutzung auf ein anderes Laufwerk verlagern müssen, haben Sie einige großartige Optionen

Sie können sicher an einen neuen Speicherort umziehen, wie ...

  • Lokale / Live-Speicherung
  • Online Speicher
  • Near-Line-Speicher
  • Offline-Speicher

... nur solange der alte Speicherort NTFS ist und der neue Speicherort:

  1. ist SMB- basiert
  2. Windows LANman-konform - wenn Sie symbolische Links verwenden / auf einen Netzwerkserver / ein Netzwerkgerät umziehen möchten (siehe unten)
  3. kann mit einem Tool wie " My Computer" dem vorhandenen Dateisystem hinzugefügt / zugewiesen werden :
    • den DOS / Windows-Shell- assignBefehl
    • Windows "Computerverwaltung" ( compmgmt.msc)
  4. kann an einem Laufwerksbuchstaben oder einem anderen Mount-Punkt / -Verzeichnis eingehängt werden

Im Wesentlichen handelt es sich ab heute (02.05.2014) um Folgendes:

  • eine andere aktive (gemountete) Partition
  • eine optische Disc (CD, DVD usw.) mit einem Live-Dateisystem wie FAT oder NTFS
  • eine externe Festplatte
  • ein USB-Laufwerk
  • ein Netzlaufwerk

    HINWEIS:

    Wenn Sie zur Eingabe des Datenträgers aufgefordert werden oder eine Fehlermeldung zu fehlenden Dateien / fehlendem Speicherort erhalten, stellen Sie einfach sicher, dass Sie das Laufwerk / den Datenträger erneut bereitstellen / einlegen, sofern es sich nicht bereits um eine Live-Partition handelt.

.

9 von 10 Fällen ist dies der Fall:

Daher werden Sie feststellen, dass dies sehr unkompliziert ist und Sie einige großartige Optionen zur Auswahl haben, die, ehrlich gesagt, ungefähr die gleichen Ergebnisse liefern:

  1. Erstellen Sie eine Verzeichnisverknüpfung an dem neuen Speicherort:

    • Über Junctions kann ein Verzeichnis auf ein anderes verweisen.
    • Junctions können nur im lokalen Speicher verwendet werden
    • Sie werden auf Dateisystemebene als Alias-Eintrag in der Dateisystemtabelle (FSTAB) erkannt.
      • Daher ist es für alle Programme, einschließlich des Betriebssystems selbst, transparent.
      • Mit anderen Worten, es wird NICHT als Datei gesehen, die einfach auf einen anderen Ort zeigt (wie eine Verknüpfung) und daher immer ohne Zwischenfälle funktioniert.
    • Junctions können nur absolute Verweise auf Dateien enthalten. Selbst wenn Sie also eine gesamte Verzeichnisstruktur mit einer Junction darin verschieben, wobei die Struktur vollständig erhalten bleibt, müssen Sie die Junction neu erstellen.
    • Junctions können beliebig benannt werden, dh sie müssen nicht denselben Namen wie der Ordner haben, auf den sie zeigen.
  2. Erstellen Sie einen symbolischen Link zum neuen Standort:

    • Symbolische Links sind Dateisystemobjekte, die auf andere Dateisystemobjekte verweisen.
    • Sie ähneln Abzweigungen und sind Analysepunkte.
    • In einigen seltenen Fällen habe ich jedoch bei einigen Programmen gesehen, dass sie NICHT erkannt wurden (dies ist manchmal bei Windows-Spezialordnern der Fall .
    • Sie sind jedoch in folgenden Punkten flexibler:
      • Symbolische Verknüpfungen können als absolute oder relative Verweise erstellt werden.
      • kann verwendet werden, um auf SMB / LANman-Netzwerkspeicherorte (Windows-Server, SMB-Geräte usw.) zu verweisen

VERFAHREN:


Verschieben Sie also Ihre Dateien und Ordner an den neuen Speicherort:

  1. OPTION1 (nativ): Geben Sie einfach den integrierten Windows Vista / 7/8-Befehl und die Eingabeaufforderung cmd ein:

    • Erstellen Sie eine Junction ("fester" Link zu einem Verzeichnis):

      mklink /J <oldpath> <newpath>
      
    • Erstellen Sie eine symbolische Verknüpfung ("weiche" Verknüpfung zu einem Verzeichnis):

      mklink /D <oldpath> <newpath>
      
  2. Option 2 (benutze ein Tool): Eine großartige Alternative ist ein kostenloses praktisches Dienstprogramm, das ich seit Jahren benutze und "Link Shell Extension" (LSE) (oder Google it) nenne .

    Einfach herunterladen, entpacken und ausführen (keine Installation)

    Mit LSE können Sie Folgendes erstellen:

    • symlinks
    • Hardlinks
    • Kreuzungen
    • Smartcopies
    • Smartclones
    • intelligente Spiegel
    • kluge Bewegungen
    • Spleiße
    • mehrere Quellen
    • und ein paar andere Sachen, die ich ehrlich gesagt nie benutze
      .

    Es ist ein brillantes kostenloses Produkt, das ein Windows Explorer-Kontextmenü erstellt, mit dem Sie mit der rechten Maustaste auf Ihren LINK-TARGET-Ordner klicken und ihn an die Stelle ziehen können, an der Sie den tatsächlichen Link erstellen möchten.

    Sie können natürlich auch den Link umbenennen , um alles , was Sie möchten .


8

Erschreckenderweise gibt es nur für diesen Zweck ein Tool namens Steam Mover, mit dem genau dasselbe Problem behoben werden kann, das unter Windows 7 funktioniert. Es ist wirklich eine listig getarnte Methode, um Symlinks einfach zu erstellen . Grundsätzlich werden die Dateien automatisch verschoben und ein Symlink für Sie erstellt, sodass alles dort zu sein scheint, wo Steam es erwartet, in C: aber es ist wirklich woanders.

Ich möchte darauf hinweisen, dass dies nur unter Windows 7 und Vista funktioniert, da MS Symlinks zu diesen Windows-Versionen hinzugefügt hat


1
Sie können das Dienstprogramm Win2K Resource Kit verwenden, das auf dieser Plattform verlinkt ist, oder die Tool-Junction Sysinternals unter WinXP. Nicht wirklich relevant für die Frage.
Patrick Seymour

1
@Patrick: Kleine technische. Linkd erstellt keine symbolischen Links, sondern Verzeichnisknoten.
Surfasb

2
Junctions funktionieren meiner Meinung nach nur innerhalb desselben Laufwerks. Das, was Symlinks für ältere Systeme am nächsten kommt, ist die raffinierte Zuordnung eines Laufwerks zu einem Ordner, von dem ich glaube
Journeyman Geek

1
@surfasb na wer nutzt win2k überhaupt noch? :) (leider tun wir das.)
Patrick Seymour

1
@JourneymanGeek: Nein, Junctions funktionieren auf allen lokalen Volumes. Vielmehr die Hardlinks, die sich nicht über Volumes erstrecken.
Surfasb

0

Junctions können auf jeden NTFS-Ordner verweisen, unabhängig davon, auf welcher Festplatte sich die Quelle im Vergleich zum Ziel befindet.

Da WinXP Junctions mit allen direkt verbundenen NTFS-Partitionen funktioniert, spielt es keine Rolle, ob diese sich auf derselben Festplatte oder auf verschiedenen Diks befinden.

Eine Kreuzung ist also die beste Lösung (symbolisch kann einige Probleme verursachen).

Ich benutze es oft, um dies zu tun:

  • Haben Sie einige "virtuelle" Ordner auf der Systempartition (normalerweise ist es C :), die auf einen Ordner auf einer Partition auf einem USB-Datenträger verweisen (SSD, HDD, Pendrive, Speicherkarte usw.).

So kann ich einige Anwendungsdaten auf externen Medien haben und nur eine Kopie für mehr als einen PC haben, so dass keine Notwendigkeit besteht, eine Synchronisierung usw. durchzuführen. Natürlich sieht es nur ein PC zur gleichen Zeit.

Junctions können auch auf einen Ordner auf einer NTFS-Partition verweisen, der mit veraCrypt usw. verschlüsselt ist.

Kreuzungen benötigen nur drei Dinge:

  • Quellpartition ist ein NTFS
  • Zielpartition ist ein NTFS
  • Beide Partitionen sind lokal (physisch mit dem PC verbunden). Dies ist nicht immer erforderlich. Es gibt einige Tools, mit denen Sie einen FTP-Server als lokales Laufwerk und als NTFS-Server betrachten können, sodass Junctions erstellt werden können, um darauf hinzuweisen dazu

Was ich meine ist, dass Junction sehen muss, dass sich Quelle und Ziel in einer NTFS-Partition befinden.

  • Verwenden Sie für XP das SysInternals-Tool mit dem Namen junctionlink: TechNet Junction Download .
  • Verwenden Sie für 7 bis 10 das native Tool mklinkmit /jParameter.

Beide sind Kommandozeilen-Tools und erfordern in den meisten Fällen Administratorrechte.

Kreuzungen sind der einfachste Weg, aber nicht der einzige:

  • Sie können eine NTFS-Partition verwenden, die in einem NTFS-Ordner auf verschiedenen Datenträgern bereitgestellt ist
  • Sie können eine VHD / VHDX-Datei erstellen (für XP und Vista ist ein Tool erforderlich, für 7 bis 10 ist die native Datenträgerverwaltung erforderlich), eine oder mehrere Partitionen erstellen und diese in einem beliebigen NTFS-Ordner bereitstellen
  • etc

Mit dem Trick von VHD / VHDX können Sie auch dynamischen Speicher verwenden, sodass Sie sich keine Gedanken über die Größe von GiB machen müssen:

  1. Erstellen Sie die VHD / VHDX im dynamischen Modus (nicht alle der virtuellen Festplatte zugewiesenen Größen entsprechen der Dateigröße) und geben Sie so viel ein, wie Sie möchten (die VHD ist auf etwas weniger als 2 TB beschränkt, die VHDX-Beschränkung beträgt 64 TB). Erstellen Sie es jedoch auf einem NTFS, da FAT32 die Dateigröße auf weniger als 4 GB beschränkt.
  2. Initialisieren Sie den virtuellen Datenträger als MBR oder GPT (abhängig von Ihren Anforderungen unterstützt MBR nicht mehr als 4 primäre Partitionen und ist auf etwas weniger als 2 TB beschränkt. GPT ist auf 8 GB beschränkt, aber Windows XP kann GPT-Laufwerke nicht erkennen.) Weitere Informationen zu diesen Grenzwerten finden Sie auf Wikipedia: en.wikipedia.org/wiki/GUID_Partition_Table
  3. Partitionieren Sie die virtuelle Festplatte nach Ihren Wünschen
  4. Geben Sie der gewünschten Partition das Format NTFS
  5. Wenn Sie Daten in einen Ordner verschieben müssen (den Ordner, den Sie woanders ablegen möchten), hängen Sie diese neue Partition vorübergehend wie einen Buchstaben an, verschieben Sie die Daten in diesen Ordner und heben Sie die Bereitstellung auf. Löschen Sie jedoch nicht den Ordner, aus dem Sie den Ordner verschoben haben Inhalt.
  6. Mounten Sie diese Partition über diesen Ordner

Und $ MFT hat einen Trick, so klein wie möglich zu sein (sehr wichtig, wenn Sie große, wirklich große NFTS-Partitionen erstellen, um ISOs zu speichern, usw., weniger als 1000 Dateien mit jeweils wirklich großer Größe):

  • Die Grundvoraussetzung hierfür ist, dass die anfängliche $ MFT-Größe so klein wie möglich ist
  • $ MFT wächst, wenn Sie mehr Dateien ablegen und der Speicherplatz nicht ausreicht. Haben Sie also keine Angst davor, keine Dateien hinzufügen zu können
  • Es ist eine normale native Methode zum Erstellen der Partition, ohne jegliches Risiko
  • Es gibt (wie ich sehe) kein Motiv, nicht alle NFTS-Partitionen auf diese Weise zu erstellen

Die Vorgehensweise ist ganz einfach:

  1. Erstellen Sie die Partition mit nur 8 MB (ja, Megabyte, nicht Gigabyte usw.). Je geringer die Größe, um ein normales NTFS zu erstellen. NTFS kann eine geringere Größe haben, führt aber zu merkwürdigen Problemen, da es sich nicht um ein vollwertiges NFTS handelt.
  2. Stellen Sie die gewünschte Größe ein

Diese Schritte machen eines:

  • Wenn eine Partition erstellt wird, ist die $ MFT sehr klein (da die Partition nur 8 MB groß ist)

Wenn Sie die Partition mit der gewünschten vollen Größe erstellen, beträgt die $ MFT (standardmäßig und so wenig wie möglich) 12,5% der Partitionsgröße. und ich kenne keine Methode, um diesen Prozentsatz zu reduzieren, und ich kenne auch keine Methode, um die Größe von $ MFT zu reduzieren, nachdem sie erstellt wurden. Dieser Prozentsatz kann höher sein, wenn Sie den Registrierungsschlüssel NtfsMFTZoneReservation in einigen Fenstern berühren, aber niemals niedriger. Wenn Sie also eine Partition von nur 8 MB erstellen, ist die anfängliche Größe von $ MFT sehr gering. Sie können überprüfen, wie $ MFT-Speicherplatz auf der Microsoft-Site reserviert ist: Wie NTFS Speicherplatz für seine Master File-Tabelle (MFT) reserviert

Wenn Sie eine NTFS-Partitionsgröße vergrößern, wird die Größe von $ MFT nicht beeinflusst. Wenn Sie also eine große NTFS-Partition mit einer möglichst geringen Größe von $ MFT haben möchten, erstellen Sie die Partition mit nur 8 MB und vergrößern Sie sie nach der Erstellung auf die gewünschte Größe.

Das ist großartig für ein dynamisches VHD / VHDX, da es nicht den gesamten $ MFT-Speicherplatz für nichts nutzt ... ich meine:

  • Wenn Sie ein NTFS mit 8 MB erstellen (vergessen Sie nicht, es im Schnellformatierungsmodus zu erstellen) und auf 1,5 TB anwachsen, wird die Datei VHD / VHDX, die es enthält, kleiner, viel kleiner
  • Wenn Sie eine 1,5-TB-Partition direkt in der VHD / VHDX erstellen, wird die Datei, in der sich die VHD / VHDX befindet, größer, viel größer

Test in Windows 10 Home 64Bits durchgeführt:

  • Dynamische VHD von 1,8 TB mit einer NTFS-Partition (mit Schnellformatierung) von 8 MB und einer Größe von 1,5 GB ... Die VHD-Größe beträgt: 15,6 MB
  • Dynamische VHD von 1,8 TB mit einer NTFS-Partition (mit Schnellformatierung) von 1,5 GB ... Die VHD-Größe beträgt: 107 MB

Sehen Sie, es ist zehnmal größer. Ich weiß, es wird nicht viel über hundert Megabyte gesprochen ... aber wenn Sie eine Menge (einige Tausend) VHD / VHDX-Dateien verwenden, kann diese Größe eine große Rolle spielen, wenn ein Tausend solcher Dateien vorhanden sind in der Nähe von 100GiB. Auch bei VHDX und Größen von ZetaBytes ist dieser Unterschied wirklich gewaltig.

Hinweis: Ich spreche von einer Festplattengröße von 1,8 TB, nur um sicherzustellen, dass ich eine identische Partition mit einer exakten Größe von 1,5 TB (1572864 MiB) erstellen kann. Wenn Sie die Festplattengröße X angeben, ist die Partition kleiner als X.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.