Was ist ein Reparse Point und warum heißt er so?

10
  • Was ist es?

    Laut MSDN Docs gibt es im NTFS-Dateisystem ein Konzept namens "Analysepunkt" und:

    Wenn das Dateisystem eine Datei mit einem Analysepunkt öffnet ...

    Aus dieser Zeile geht hervor, dass reparse pointnur einige Metadaten in einem NTFS-Dateiobjekt gespeichert sind.

    aber diese populäre Antwort sagt etwas anderes:

    Ein Analysepunkt ist das, was Linux als symbolische Verbindung bezeichnet.

    Welches ist die richtige Antwort?


  • Warum heißt es so?

    Eine andere Sache, die mich verwirrt, ist die Benennung eines solchen Konzepts. Ich habe die Dokumentation nachgeschlagen, aber nichts über den Ursprung gesehen. Hat jemand eine Ahnung davon? Ich würde vermuten, dass der Name "parse" enthält, da er die Verwendung eines Dateisystemfilters zum Parsen der Datenstruktur beinhaltet, aber warum ist es "RE-parse point", nicht nur "parse point" ?

Sajuuk
quelle
"Schauen Sie noch einmal, weil Ihre Daten nicht dort sind, wo Sie denken, dass sie sind."
Mokubai

Antworten:

6

Ein Analysepunkt ist das, was Linux als symbolische Verbindung bezeichnet.

Dies ist meistens, aber nicht ganz richtig. Wiederholungspunkte sind nicht unbedingt Links. Sie sind ein "Baustein", auf dem verschiedene Verbindungstypen implementiert werden können.

Ja, sie können zum Implementieren symbolischer Links verwendet werden. In der Tat sind sowohl herkömmliche NTFS-Junctions als auch die neueren Win10-Symlinks "Unix-like" zwei verschiedene Arten von Analysepunkten.

Sie können jedoch verwendet werden, um Funktionen zu implementieren, die überhaupt nicht wie symbolische Links wirken. Beispielsweise sind Windows "Volume-Mountpunkte" (bei denen Sie ein Laufwerk an einen Ordner anstatt an einen Laufwerksbuchstaben anhängen) ebenfalls Analysepunkte. Der Wikipedia-Artikel listet einige weitere Typen auf - zum Beispiel deduplizierte Dateien oder "Offline" -Dateien, die das Abrufen von Bandsicherungen auslösen.

Warum heißt es so?

Es wird als "Analysepunkt" bezeichnet, da es den Pfadanalyseprozess unterbricht .

Wenn Sie einen Pfad wie diesen haben C:\Documents and Settings\Application Data\Microsoft, können Sie sich vorstellen, dass dieser wie folgt analysiert wird:

  1. Schlagen Sie die erste Komponente nach C:- es ist ein Laufwerksbuchstabe. Greifen Sie auf das Laufwerk zu.
  2. Documents and SettingsSchlagen Sie die 2. Komponente nach - es ist ein Analysepunkt. Lesen Sie die Analysepunkt-Metadaten und starten Sie die Analyse von dort aus neu. Sie werden am enden C:\Users.
  3. Application DataSchlagen Sie die 3. Komponente nach - wieder ein Analysepunkt; Lesen Sie die Metadaten und starten Sie die Pfadanalyse von dort aus neu . Sie werden am enden AppData\Roaming.
  4. Aussehen...

Wenn Sie Linux haben, können Sie eine ähnliche Visualisierung durch Ausführen sehen namei /a/long/path/to/something, insbesondere wenn der Pfad Symlinks enthält.

user1686
quelle
Ich frage mich, ob Sie die von WSL ( IO_REPARSE_TAG_LX_SYMLINK) verwendeten symbolischen Linux-Links meinen, wenn Sie auf die neueren Win10-Symlinks "Unix-like" verweisen ?! Wenn Sie symbolische NTFS-Links meinen, existierten diese seit Windows Vista und es gibt einen Filtertreiber , mit dem die genaue Funktion auf ältere Betriebssystemversionen nachgerüstet werden kann .
0xC0000022L
2

Von Microsoft: Punkte neu sammeln

Eine Datei oder ein Verzeichnis kann einen Analysepunkt enthalten, bei dem es sich um eine Sammlung benutzerdefinierter Daten handelt. Das Format dieser Daten wird von der Anwendung verstanden, in der die Daten gespeichert sind, sowie von einem Dateisystemfilter, den Sie installieren, um die Daten zu interpretieren und die Datei zu verarbeiten. Wenn eine Anwendung einen Analysepunkt festlegt, speichert sie diese Daten sowie ein Analyse-Tag, das die gespeicherten Daten eindeutig identifiziert. Wenn das Dateisystem eine Datei mit einem Analysepunkt öffnet, versucht es, den Dateisystemfilter zu finden, der dem durch das Analyse-Tag angegebenen Datenformat zugeordnet ist. Wenn ein Dateisystemfilter gefunden wird, verarbeitet der Filter die Datei gemäß den Anweisungen der Analysedaten. Wenn kein Dateisystemfilter gefunden wird, schlägt der Vorgang zum Öffnen der Datei fehl.

Daher wird die gespeicherte Datei oder die gespeicherten Daten vom Dateisystem analysiert. Beachten Sie, dass sie spezielle Daten enthalten und von einem Dateisystemfilter repariert werden müssen, damit sie ordnungsgemäß aufgelöst werden können. Da zum erfolgreichen Öffnen der Datei zwei separate Parsing-Aktionen erforderlich sind, ist es wahrscheinlich, dass aus diesem Grund der Name " Wiederholungspunkt " hervorgeht.

Die Daten werden nicht nur einmal analysiert. Die in der ersten Analyse gefundenen Daten werden von einer Anwendungserweiterung erneut analysiert, um die wahre Bedeutung der Daten zu ermitteln.

Das bedeutet nicht, dass ein Analysepunkt keine symbolische Verbindung ist. Es könnte einfach ein Datenblock sein, der nach der Reparatur "In dieser Datei nachsehen" sagt.

Mokubai
quelle
@ TwistyImpersonator Das wollte ich in meinem Absatz unter dem Zitat sagen. Wenn ich es irgendwie besser ausdrücken kann, bin ich offen für Vorschläge.
Mokubai