Frage zum NTFS-Dateisysthem: Symbolische Links

Dieses Thema im Forum "Tech & FAQ Forum" wurde erstellt von Nummer Eins, 31 Juli 2019.

  1. Nummer Eins

    Nummer Eins Mitglied

    Registriert seit:
    19 November 2010
    Beiträge:
    120
    NTFS ermöglicht unter anderem Symbolische Links. Damit kann man z.B. einen Ordner von einer Festplatte/SSD auf eine andere umleiten. Die Programme meinen z.B. sie würden in den Ordner
    C:\Users\Eberhard\Desktop\Sammlung
    schreiben, schreiben aber in Wahrheit in den Ordner
    D:\Eigene Sammlung

    Das geht, wenn "C:\Users\Eberhard\Desktop\Sammlung" kein Ordner ist, sondern ein Symbolischer Link.

    Frage: Was passiert da wirklich? Irgendwie muß die Umleitung ja vonstattengehen.
    Sicher muß das Betriebssystem den Link auslesen und dazu auf das Laufwerk zugreifen, in meinem Beispiel auf Laufwerk C:\. Aber wird da wirklich nichts geschrieben?
  2. creyskull

    creyskull Aktives Mitglied

    Registriert seit:
    25 April 2001
    Beiträge:
    502
    wenn der Original Ordner "D:\Eigene Sammlung" existiert und man erstellt einen "Symbolischen Link" / Junction, "C:\Users\Eberhard\Desktop\Sammlung", wird auf die Festplatte wo der Original Ordner "D:\Eigene Sammlung" ist, geschrieben.

    kannst du selber testen... erstelle den Original Ordner auf einer externen HD, mach einen Link/Junction auf Dein Desktop... kopiere dort etwas rein, klemme Deine Platte ab, was passiert? geht nix mehr.
    Nummer Eins sagt Danke.
  3. Nummer Eins

    Nummer Eins Mitglied

    Registriert seit:
    19 November 2010
    Beiträge:
    120
    Ja, soweit ist mir das klar. Aber wie funktioniert die Umleitung? Wird das Laufwerk, auf dem der Link liegt, in meinem Beispiel also C:\ nur gelesen, um den Link zu erkennen? Igrendwoher muß Windows ja wissen, dass das Ziel ein anderer Ort ist, als dem Programm vorgegaukelt wird. ABer dazu würde ja ein minimaler Zugriff genügen. Ich vermute, daß der Rest dann ohne Schreibzugriffe (oder im umgekehrten Falle Lesezugriffe) auf C:\ erfolgt und alles direkt auf D:\ landet, ohne, dass Laufwerk C:\ davon weiter etwas mitbekommt. Oder ist C:\ permanent irgendwie beteiligt?
  4. Antitrack

    Antitrack Bekanntes Mitglied

    Registriert seit:
    10 Januar 2003
    Beiträge:
    4.182
    Was wirklich passiert ist das gleiche, wie wenn du einen Pointer in einem C-Programm hast: Es wird einfach der Pointer nachverfolgt und landet dann halt dort, wo er landen soll.
    So ein symbolic Link ist der quasi-Pointer der Festplatte. :D

    https://en.wikipedia.org/wiki/NTFS_symbolic_link
  5. ATLAN

    ATLAN Bekanntes Mitglied

    Registriert seit:
    22 Juni 2001
    Beiträge:
    2.064
    Schon zu MSDos Zeiten konntest Du Ordnern, wie C:\Spiele\Dos einen eigenen Laufwerksbuchstaben vergeben. So konntest Du lange
    Unterordnerstrukturen umgehen und direkt mit D: auf C:\Spiele\Dos zugreifen. In diesem Fall lagen die Daten aber tatsächlich auf
    C:\Spiele\Dos aber die Installierten Spiele konnten halt aus D:\SamMax gestartet werden. D: war also nur eine Verkürzung des Pfades
    oder um den kopierten Inhalt einer CD von Festplatte laden zu können.
    Ähnliches kann heute auch noch mit Vsubst unter Windows gemacht werden. Die Daten landen dabei also immer auf der ursprünglichen
    Festplatte. Bei Symbolischen Links kann man sich dies so vorstellen, als hätte man eine Verknüpfung angelegt, die auf einen anderen
    Ordner einer Festplatte verweist. Ab Windows 7 oder Vista wurde dies von MS genutzt, um zu Ordnerstrukturen älterer Windows Versionen
    kompatibel zu bleiben und trotzdem die Daten in die neue Ordnerstruktur zu zwängen bzw. dort zu speichern.
    So gibt es unter Windows 7 zwar einen Ordner namens Dokumente und Einstellungen, wie aus Win XP bekannt aber dieser ist kein
    wirklicher Ordner sondern ein Symbolischer Link der auf den englischen Ordner C:\Users verweist. Windows folgt also erstmal
    nur dem realen Pfad, trifft dann auf den Symbolischen Link, der als Ordner interpretiert wird aber eben auf einen anderen Ordner
    oder Partition oder Festplatte zeigt und schreibt dort die Daten. Bei einer normalen *.lnk Verknüpfung würde Windows dies als
    Datei interpretieren und melden das der Ordner nicht existiert, wie z.B. bei C:\Programme\EA\NeedforSpeed.lnk eigentlich EA der
    Ordner halt wäre. Diesen Mißstand heben Symbolische Links auf. Sie werden als Ordner interpretiert aber sind eine Art Verknüpfung,
    die auf einen anderen Ort zeigen und geben den eigentlichen Pfad bzw. Speicherort weiter.
    Das Programm glaubt, es schreibe in C:\Programme\EA\NeedforSpeed.
    Daß es sich bei dem Ordner NeedforSpeed aber um einen Symbolischen Link handelt, bekommt das Programm gar nicht mit.

    Man kann so ganz Prima Spiele davon abhalten alles unter C: zu installieren bzw. zu speichern oder auch Spielstände in die Spiele Ordner
    speichern lassen, statt unter C:\Users\...\Gemeinsam...\Steam\Ea\... oder so ähnlich. Das klappte sogar schon unter Win XP. Dort
    mußte man halt nur ein Zusatzprogramm installieren.
  6. GiveThatLink

    GiveThatLink Aktives Mitglied

    Registriert seit:
    25 Oktober 2009
    Beiträge:
    455
    Das ist ne "Junction", wird aber auch mit mklink erzeugt ;)

    Und nein, ohne die junction/symlink selbst geht es nicht, man braucht immer erst die Quelle zum Ziel, du benötigst also zwingend C. Man sollte allerdings vermeiden, Systemordner damit zu verbiegen. Entweder per Windows (10 kann das selbst) oder direkt nach Installation vor allem anderen - hinterher ergibt das nur Murks.
  7. ATLAN

    ATLAN Bekanntes Mitglied

    Registriert seit:
    22 Juni 2001
    Beiträge:
    2.064
    Das sollte eigentlich jedem klar sein, daß immer sowohl der erste Teil des Pfades zugreifbar auf der einen Partition sein muß,
    da dort auch der symbolische Link dann gespeichert ist, welcher dann zu dem eigentlichen neuen Speicherort verweist, der
    ebenfalls im System dauerhaft eingebunden sein muß. Eine abgeklemmte Festplatte als Ziel zu benennen, führt zu Problemen.
    Systemordner bzw. Eigene Dateien etc. würde ich auch immer gleich bei der Windows Installation den Pfad auf ein anderes
    Laufwerk abändern und nicht mit symbolischen Links. Nachträglich so etwas zu machen, wenn die Programme schon
    installiert sind, ist immer problematisch, da die Programme manchmal feste Pfade gespeichert haben und nicht die Pfadvariablen.
    Dann muß man jedes Programm durchgehen, ob es den neuen Pfad nutzt oder nicht. So bleibt teilweise nur der Weg über
    symbolische Links, um alle Programme umzuleiten. Von daher immer am Anfang der Windows Installation sich schon Gedanken
    machen, wo man was haben will und die Systempfade anpassen. Besonders wenn Spiele sich nur auf C: installieren lassen
    und die Systempartition damit belasten, nervt dies. Da sind symbolische Links hilfreich. Spielstände und Spieldaten
    haben aus meiner Sicht alle in einem Ordner mit Namen des Spiels zu sein und auf einer Partition extra für Spiele und
    nicht auf mehrere Ordner verteilt. Alles zusammen und man kann leicht seine Spielstände sichern und Ordnung im System halten.
    Früher haben das die Spielehersteller noch von sich aus gemacht. Heute soll alles auf 3 oder 5 Ordner an verschiedenen
    Orten auf C: verteilt werden. Wenn man dann etwas deinstallieren will, darf man nach Resten suchen, ob auch alles weg ist.
    Nervig.
  8. SkAvEnGeR

    SkAvEnGeR Master of Tools

    Registriert seit:
    21 Mai 2001
    Beiträge:
    5.532
    Gibt es da nicht einen Uterschied zwischen Symbolic Link und Junction?
    Und wenn ja, welcher ist das technisch genau?
  9. dr_tommi

    dr_tommi alter Oldie

    Registriert seit:
    26 April 2001
    Beiträge:
    12.844
    Etwas zum lesen: https://de.wikipedia.org/wiki/Verknüpfung_(Computer)#Abzweigungspunkte
  10. Dr.Windos

    Dr.Windos Chef

    Registriert seit:
    13 Mai 2001
    Beiträge:
    663
  11. ATLAN

    ATLAN Bekanntes Mitglied

    Registriert seit:
    22 Juni 2001
    Beiträge:
    2.064
    Genau dies war das Tool Hardlinkshell Extension, mit welchem man auch unter Win XP diese Verknüpfungen
    einfachen nutzen konnte. Sehr bequeme Handhabung auch unter späteren Windows Versionen.