2009-01-11 12 views
19

Problem: Ich verließ mich stark auf NTFS-Knotenpunkte in Windows XP, obwohl sie anscheinend keine "offizielle" Funktion des Betriebssystems waren. Nun hat MSFT großzügig NTFS Junction Punkte zu einem offiziellen Teil von Vista gemacht, aber anscheinend haben sie auch absichtlich von ihnen gebrochen. Jetzt funktionieren meine von WinXP erstellten Verbindungspunkte auf einem tragbaren USB-Laufwerk nicht, wenn ich das Laufwerk in eine Vista-Box einstecke.Windows XP vs Vista: NTFS-Knotenpunkte

Fragen: Hat jemand ein Skript, das NTFS-Junctions, die auf XP erstellt wurden, dazu zwingt, unter BOTH Vista und XP korrekt zu funktionieren? Gibt es eine Dokumentation oder eine Spezifikation, die erklärt, was MSFT getan hat, um diesen Bruch zu verursachen?

Update: Danke, Ulrich und Scott, für Ihre Nachfragen. Das Werkzeug, das ich verwendet habe, um die Junctions zu erstellen, war Systinternals Junction v1.05, obwohl ich nicht mit Sicherheit sagen kann, dass alle mit dieser speziellen Version der jetzt von MSFT gehosteten App erstellt wurden.

Soweit wie die Verbindungen verwendet werden ... ein externes „Q Drive“ Gerät unter der Annahme:

  • 1) Einige Elemente auf dem Q-Laufwerk sind Kreuzungen, die von einem Ort auf dem Q-Laufwerk Punkt an einem anderen Ort auf dem Q Drive (z. B. Fälle, in denen ich an mehreren Stellen einen Ordner haben musste und eine herkömmliche .lnk-Art-Verknüpfung nicht funktionierte)

  • 2) Einige Elemente sind Junctions, die von der C Fahren Sie direkt zu Orten auf dem Q-Laufwerk. Diese Elemente funktionieren offensichtlich nicht, wenn das Q-Laufwerk nicht tatsächlich mit der Box verbunden ist (XP oder Vista), aber wenn es unter Vista angeschlossen ist, funktionieren die Junctions nicht wie unter XP.

+1

Ich bin daran interessiert, obwohl ich nicht Abzweigungen verwenden, ich bin interessiert in NTFS. – BobbyShaftoe

Antwort

9

Junctions und symbolische Links sind zwei verschiedene Arten von NTFS-Objekten und sind nicht genau dasselbe. Warum Ihre Junctions in Vista nicht erkannt werden, ist ein Mysterium, aber die Junction-Funktionalität existiert in Vista immer noch und ist nicht absichtlich kaputt.

Sie können mklink (http://technet.microsoft.com/en-us/library/cc753194.aspx) verwenden, um Soft-Links (Standard), Hard Links (/ h) oder Junctions (/ j) zu erstellen. Die größte Verbesserung von Symlinks über Junctions ist, dass Symlinks auf Dateien ODER Verzeichnisse verweisen können (Junctions sind nur Verzeichnis) und das Netzwerk auch auf Netzwerkfreigaben verweisen kann (Junctions nicht).

Aber unter dem Strich sind sie anders. Ich kann Ihnen nicht sagen, warum Ihre vorhandenen Junctions von Vista nicht erkannt werden. Sie können sie immer noch wie oben beschrieben erstellen.

Dort Freeware-Dienstprogramm in einem anderen Beitrag (LinkMagic) referenziert ist Ihre beste Wette, um Ihre Kreuzungen wieder zu arbeiten. Oder erstellen Sie sie mit mklink neu.

2

Worauf möchten Sie verlinken? Verbindest du dich mit deinem tragbaren Laufwerk oder von deinem Laufwerk? Verwenden Sie "mklink/d"?

3

Warum versuchen Sie nicht mit this Programm (Freeware), um die Links zu erstellen. Anscheinend benötigt Windows Vista eine andere Version. Ich habe beide Versionen (XP und Vista) ausprobiert und sie funktionieren. Ich weiß, dass es nicht mit Ihrem spezifischen Problem zu tun hat, aber da es für jedes Betriebssystem separate Versionen gibt, kann es Unterschiede in der Art geben, wie Junctions erstellt werden.

Das von Ihnen verwendete Werkzeug ist ziemlich alt (2007) und erwähnt Windows Vista nicht. Ich weiß, dass MSFT tat etwas an den Junction Points ändern, um einige Funktionen hinzuzufügen, die sie verwenden wollten. Vista ist autoritativer, wenn es um Programmdateien und dergleichen geht.

3

Neben dem Linkmagic-Programm bereits in einem der vorherigen Kommentare vorgeschlagen, Link-Shell-Erweiterung ist ein weiteres gutes Programm (und überprüfen) Links und Kreuzungen zu manipulieren:

http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

Beide Programme können Sie sagen, Worauf die bestehenden Links/Verbindungen hinweisen und was sie sind. Dies kann Ihnen helfen, herauszufinden, was falsch ist.

1

Junctions Punkte innerhalb des gleichen Volumens sollten funktionieren - sie sollten hardlinked Verzeichnisse sein.

Haben Sie versucht, ob das USB-Laufwerk zwischen XP-Geräten funktioniert? Es könnte nicht funktionieren.

Ich weiß, dass für Vista die Volumes nicht durch Pfad (Q :), sondern durch Datenträger-GUID identifiziert werden. Das $ MFT_REPARSE_POINT-Format hat sich möglicherweise von XP zu Vista geändert, um dies zu berücksichtigen. Unter Vista bedeutet dies, dass, selbst wenn Ihr Q-Laufwerk plötzlich X ist, der Verbindungspunkt noch funktioniert, wo er unter Windows XP defekt wäre.