NTFS Symbolic Link, Hard Link, Junction
Hallo zusammen,
Das NTFS (New Technology File System) wurde mit Windows NT eingeführt.
NTFS Version
|
Betriebsystem
|
Release
|
v1.0
|
NT 3.1
|
1993
|
v1.1
|
NT 3.5
|
1994
|
v1.2
|
NT 3.51, NT 4.0
|
1995
|
v3.0
|
Win 2000
|
2000
|
v3.1
|
Windows XP, Win2003, Vista, Win 2008, Win 7
|
2001
|
Nun zu den verschiedenen Arten von Links, welche auf diesem Dateisystem möglich sind.
Verknüpfung (Shortcut)
Ein Datei die auf eine andere Datei oder Ordner zeigt.
Shortcuts sind sehr klein und bleiben bestehen, wenn das Zielobjekt gelöscht oder umbenannt wird.
Die verknüpfung ist dann wertlos, weil das Zielobjekt nicht mehr gefunden wird.
Symbolischer Link (Symbolic Link)
Ein Symbolischer Link ist wie eine Verknüpfung, aber es wird keine Datei angelegt sondern die Verknüpfung wird im Filesystem angelegt. Simlinks können für Dateien oder Verzeichnisse angelegt werden und sogar für Netzwerkpfade.
Harter Link (Hard link)
Harte Links sind Links (MFT Eintrag) zu einer Datei ohne zusätzlichen Speicherplatz zu belegen.
Zeigt ein Hardlink auf eine Datei und man löscht nun die Orginal Datei, dann behält der Hardlink die Daten. Ein Hardlink kann nur nur auf derselben Partition angelegt werden wo das File auch liegt.
Verbindung (Junction)
Eine Junction ist ein Hardlink für Verzeichnisse.
Anders als Hardlinks können Junctions auf anderen Partitionen angelegt werden.
Junctions werden im Filesystem angelegt und benötigen so keinen Speicherplatz. Vom Betriebssystem werden diese wie lokale Verzeichnisse behandelt.
Symbolic Links und Junctions können mit dem Kommandozeilentool mklink angelegt werden.
mklink /D /H /J [LINK NAME] [TARGET]
File Symbolic Link
/D Directory Symbolic Link
/H Hard Link (File Hard link)
/J Junction (Directory Hard link)
Praxis
Ich habe das mal in einem Testordner vorbereitet.
Name | Beschreibung |
Windows | Junction to C:\Windows |
WindowsD | Directory Symlink auf C:\Windows |
a.txt | Text Datei |
b.txt | File Symlink auf D:\Links\a.txt |
c.txt | Hardlink auf D:\Links\a.txt |
Verknüpfung a.txt | Verknüpfung (Shortcut) auf D:\Links\a.txt |
Im Windows Explorer wird der Hardlink nicht optisch gekennzeichnet (c.txt)
Auch im Command Promt ist der Hardlink nicht erkennbar. Dis Symlinks und Junctions sind erkennbar.
Mit dir /al werden nur Symlinks oder Junctions angezeigt.
Ein Hardlink kann nur mit dem Dienstprogramm fsutil angezeigt werden.
fsutlil hardlink list [Dateiname]
Wird die Datei a.txt geöffnet, erscheint der Inhalt von a.txt.
Nun verändere ich die a.txt
Nun ist auch der Inhalt in c.txt geändert.
Nun lösche ich die Datei a.txt - nun erhält der Hardlink das "Sicherheitschloss".
Öffnet man nun die Datei c.txt ist der Inhalt von a.txt noch vorhanden.
Mit dem Tools NTFSLinksView von www.nirsoft.net können die Symlinks und Junctions aufgelistet werden.
Tools
-Junction http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx
-Link Shell Extension http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
-NTFSLinksView http://www.nirsoft.net/utils/ntfs_links_view.html
Achtung:
Junctions nicht mit dem Windows Explorer löschen, sonst wird das Ziel gleich mitgelöscht. Hier sollte das im Command Promt rmdir benutzt werden.