Wie erstelle ich eine NTFS-Junction?

21

Wie kann ich in Windows XP einen NTFS-Knotenpunkt erstellen?


quelle

Antworten:

11

Standardmäßig verfügt Windows XP nicht über Tools zum Erstellen von Knotenpunkten. Dieses Tool ( linkd) ist Teil der Windows Resource Kit-Tools .

Ein weiteres Tool ist Junction von Mark Russinovich.

Maxim Welikobratov
quelle
Wenn ich versuche, einen Symlink zu einem Remote-Ordner zu erstellen, wird die Fehlermeldung "Es kann kein Link erstellt werden unter: [foldernamehere]" angezeigt. Ein leerer Ordner wird erstellt, aber keine Verknüpfung.
Aaron Franke
7

Probieren Sie das Junction- Dienstprogramm von Sysinternals aus, das unter W2k + verfügbar ist


quelle
Hinweis: Mit diesem Tool können Sie nur lokale Volumes verknüpfen. Sie können keine Symlinks zu einem Remote-Standort erstellen.
Aaron Franke
Dh es wird nicht die eigentliche symbolische Verknüpfung unterstützt, sondern nur die "Verzeichnisverknüpfung" - eine ältere Form von NTFS-Analysepunkt, die für Windows 2000 entwickelt wurde.
can-ned_food
6

Ist Ihre Definition von Knotenpunkt ein Verzeichnis, das mit einem anderen fest verbunden ist?

Wenn ja, ist es einfach

mklink /J <new directory to be linked> <target directory>

Danach gibt es keine Unterscheidung zwischen den Verzeichnissen. Sie haben den gleichen MFT_REF (von http://en.wikipedia.org/wiki/NTFS_symbolic_link ).

fsutil kann auch hilfreich sein, um Analysepunkte abzufragen und Hardlinks zu erstellen.

Wenn Sie wissen wollen, wie man dies programmatisch macht, können Sie uns NTFS-Speichertreiber-IOCTL-Aufrufe auf dem Datenträger übergeben. Aber es wäre einfacher, einfach anzurufen mklink.

Beachten Sie, dass Sie Schreib- und Änderungsrechte für das Zielverzeichnis haben müssen. Sie müssen cmd.exe mit erhöhten Rechten ausführen, damit es funktioniert.

Dominik Weber
quelle
19
mklinkgibt es auf winxp nicht, glaube ich.
Skaffman
5
mklink in Vista eingeführt
NTFS-Junctions bieten nicht tatsächlich mehrere Verweise auf MFT-Elemente. Zu denken, dass sie genau wie mehrere Hardlinks mit Dateiknoten sind, ist ein Missverständnis - eines, das ich bis vor kurzem auch geteilt habe. Sie sind einfach Analyse-Tags auf Verzeichnisknoten. Sie können dies testen, indem Sie eine Verzeichnisverknüpfung erstellen und dann verwenden fsutil reparsepoint delete the_directory-junction_you_made_to_test_this. Sie haben einen eindeutigen und wahrscheinlich leeren Verzeichnisknoten.
can-ned_food
3

Sie können Link Shell Extension auch als GUI-orientierte Oberfläche verwenden. Unter Windows XP können Junctions, Hardlinks und sogar Symlinks erstellt werden, wenn Sie den NTFS 5-Filtertreiber von Masatoshi Kimura wie beschrieben installieren. http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

Toughy
quelle
1

NATIVE Windows XP, 7 & 8 BEFEHL:

Directory Junction :
mklink /J <oldpath(link)> <newpath(target)>

Wenn Sie das newpathAbsolute machen, können Sie den Link verschieben, ohne den Zeiger auf das zu brechen newpath. Wenn Sie das machen , newpathrelativ, können Sie verhindern , dass die Verbindung zu brechen, solange Sie bewegen BEIDE den Link und Ziel TOGETHER und ihre relative Pfade halten.

BenH
quelle
4
mklink stammt nicht aus XP - es wurde nur unter Vista eingeführt.
Pokal
0

Sie erstellen einen Knotenpunkt mit

REPARSE_MOUNTPOINT_DATA_BUFFER* pReparseInfo = // ...
pReparseInfo->ReparseTag = IO_REPARSE_TAG_MOUNT_POINT;
// ...
DeviceIoControl(..., FSCTL_SET_REPARSE_POINTFSCTL_SET_REPARSE_POINT, pReparseInfo, ... 

API-Aufruf. pReparseInfoweist auf die REPARSE_MOUNTPOINT_DATA_BUFFERStruktur hin, die Sie bereitstellen müssen.

In einem MSDN-Artikel befindet sich ein von der Community bereitgestelltes Code-Snippet am unteren Rand der Seite, das die Verwendung der API zeigt.

Roman R.
quelle
0

Sie können NTFS-Junction mit spezieller Software erstellen. Ich empfehle Link Shell Extension (LSE) . Es ist Freeware und einfach zu bedienen. Es hat auch eine gute Dokumentation mit Screenshots aller Schritte.

vasili111
quelle