Erhalten Sie Rabatt oder Geschenk!

ReFS-Dateisystemstruktur und Algorithmus zur Datenwiederherstellung

«”ReFS” oder “Resilient File System» – ist ein neues Dateisystem, das mit dem Dateisystemcode “NTFS” erstellt wurde. Es hat Vor- und Nachteile. Dieses Dateisystem wurde entwickelt, um die grundlegenden Probleme von “NTFS” zu lösen. Es ist widerstandsfähiger gegen Datenbeschädigung, bewältigt eine erhöhte Arbeitslast besser und lässt sich problemlos auf sehr große Dateisysteme skalieren.

ReFS-Dateisystemstruktur und Algorithmus zur Datenwiederherstellung

Inhalt:

Eingang

Das Dateisystem «ReFS» ist eine Weiterentwicklung von «NTFS». Es unterstützt reparse points – eine Technologie, die bisher nur im «NTFS»-Dateisystem enthalten war. Die Unterstützung für symbolische Verknüpfungen und Mount-Punkte in Windows wird durch reparse points implementiert.

Hauptfunktionen:

  • Metadatenintegrität mit Prüfsummen.
  • Integrity streams: Eine Methode zum Schreiben von Daten auf die Festplatte für zusätzlichen Datenschutz bei Beschädigung eines Teils der Festplatte.
  • Transaktionsmodell «allocate on write» (copy on write).
  • Große Beschränkungen für die Größe von Partitionen, Dateien und Verzeichnissen.
  • Pools und Virtualisierung zur einfacheren Partitionierung und Dateisystemverwaltung.
  • Segmentierung serieller Daten «data sriping» für bessere Leistung, redundantes Schreiben für Fehlertoleranz.
  • Technikunterstützung «disk scrubbing» zum Erkennen versteckter Fehler.
  • Datenrettung um den beschädigten Bereich auf der Festplatte.
  • Gemeinsame Speicherpools zwischen Maschinen für zusätzliche Fehlertoleranz und Lastausgleich.
  • Kompatibel mit einer Reihe häufig verwendeter «NTFS»-Funktionen.
  • Vergleichsprüfung und Daten – Autokorrektur.
  • Maximale Skalierbarkeit.
  • Unfähigkeit, das Dateisystem vollständig zu deaktivieren aufgrund der Isolierung von fehlerhaften Abschnitten.
  • Flexible Architektur mit Funktion «Storage Spaces», die speziell für «ReFS».

Darüber hinaus erbt, «ReFS» viele der Funktionen und Semantiken von «NTFS», einschließlich Verschlüsselung «BitLocker», Zugriffskontrolliste «ACL», Protokoll «USN», Benachrichtigung über Änderungen, symbolische Verknüpfungen, «junction points», «mount points», «reparse points», Volumen-Schnappschuss, «ID» von Daten und «oplock».

Natürlich werden die Daten von «ReFS» für Clients über dieselbe «API», verfügbar sein, die heute in allen Betriebssystemen für den Zugriff auf Partitionen «NTFS»verwendet wird.

Eigenschaften

Eigenschaften des Dateisystems «ReFS»:

Das Dateisystem verwendet Prüfsummen für Metadaten und kann auch Prüfsummen für Dateidaten verwenden. Beim Lesen oder Schreiben einer Datei überprüft das System die Prüfsumme, um sicherzustellen, dass sie korrekt ist. Auf diese Weise wird die Erkennung beschädigter Daten in Echtzeit durchgeführt.

Wenn beschädigte Daten gefunden werden, für die keine alternative Kopie zur Wiederherstellung vorhanden ist, werden diese Daten sofort von der Festplatte gelöscht. In diesem Fall müssen Sie das Gerät im Gegensatz zu «NTFS»nicht neu starten oder trennen.

Die Notwendigkeit, das Dienstprogramm chkdsk zu verwenden, entfällt vollständig, da das Dateisystem zum Zeitpunkt des Fehlers automatisch sofort korrigiert wird. Das neue System ist resistent gegen andere Arten von Datenbeschädigung.

Höhere Zuverlässigkeit der Datenspeicherung. Für Metadaten und Dateiinhalte verwendet «ReFS» B + -Bäume. Die Größe der Dateien, Volumes und die Anzahl der Dateien in einem Verzeichnis sind auf 64-Bit-Nummern begrenzt. Der freie Speicherplatz wird durch drei separate hierarchische Tabellen für kleine, mittlere und große Teile des freien Speicherplatzes beschrieben. Dateinamen und Pfadlängen sind auf 32 KByte begrenzt, die mit «Unicode»gespeichert werden.

Das neue Dateisystem ist auch auf andere Weise gegen Datenbeschädigung resistent. Wenn Sie beispielsweise die Metadaten einer Datei aktualisieren, z. B. einen Dateinamen, ändert das «NTFS» Dateisystem die Metadaten der Datei direkt. Wenn Ihr Computer während dieses Vorgangs abstürzt oder ausgeschaltet wird, kann es zu Datenbeschädigungen kommen. Wenn Sie die Metadaten einer Datei aktualisieren, erstellt das ReFS-Dateisystem eine neue Kopie der Metadaten. Die aktualisierten Metadaten werden der Datei erst zugewiesen, nachdem alle neuen geschrieben wurden. Es besteht keine Gefahr, dass die Metadaten der Datei beschädigt werden. Dies wird als «Copy-on-write»bezeichnet.

«ReFS» ist mit der Virtualisierungstechnologie von Speichermedien «Storage Spaces»integriert, die Spiegelung und Kombination mehrerer physischer Medien von einem oder mehreren PCs über ein Netzwerk ermöglicht.

Das System unterstützt weder benannte Dateistreams, Kurznamen, Komprimierung und Verschlüsselung auf Dateiebene «Encrypting File System», noch «NTFS»-Transaktionen, Hardlinks, «extended attributes», und Festplattenquote.

Unterschiede zu NTFS

«ReFS» ist moderner als «NTFS», und unterstützt viel größere Volumes und längere Dateinamen. Langfristig sind dies wichtige Verbesserungen.

Im «NTFS»-Dateisystem ist der Dateipfad auf 255 Zeichen begrenzt. Mit «ReFS» kann ein Dateiname mehr als 30.000 Zeichen lang sein (32768).

Die maximale Dateigröße unter«NTFS» liegt theoretisch bei 16 EiB, und die maximale Dateigröße unter «ReFS» liegt theoretisch bei zweihunderttausend (262144) EiB. Jetzt spielt es keine große Rolle und ist für die Zukunft ausgelegt.

In «ReFS» fehlen einige der in «NTFS»verfügbaren Funktionen, darunter die Komprimierung und Verschlüsselung des Dateisystems, Hardlinks, erweiterte Attribute (extended attributes), Datendeduplizierung und Festplattenquote. «ReFS» ist jedoch mit verschiedenen Funktionen kompatibel. Wenn Sie beispielsweise bestimmte Daten auf Dateisystemebene nicht verschlüsseln können, ist «ReFS» mit «BitLocker»Full Encryption kompatibel.

In Windows 10 können Sie keine alte Partition als «ReFS»formatieren. Derzeit können Sie «ReFS» nur für Speicherplatz verwenden, wo seine Funktionen helfen, Daten vor Beschädigung zu schützen. In Windows Server 2016 können Sie Volumes mit «ReFS» anstelle von «NTFS»formatieren. Sie können «ReFS» nicht für das Startvolume verwenden, da Windows nur vom Laufwerk «NTFS»booten kann.

Derzeit wird diese Art von Dateisystem nur auf Serverversionen von Windows und in der Windows Enterprise-Version verwendet (LTSC).

Dateisystemarchitektur

Trotz häufiger Erwähnungen der Ähnlichkeit von «ReFS» und «NTFS» auf hoher Ebene sprechen wir nur über die Kompatibilität einiger Metadatenstrukturen. Die Festplattenimplementierung der ReFS-Struktur unterscheidet sich grundlegend von anderen Microsoft-Dateisystemen.

Die Hauptbausteine dieses Dateisystems sind B + -Bäume. Alle Elemente der Dateisystemstruktur können einstufig (Blätter) oder mehrstufig (Bäume) sein. Mit diesem Ansatz können Sie nahezu jedes Element des Dateisystems skalieren. Zusammen mit der realen 64-Bit-Adressierung aller Elemente des Systems schließt dies die Möglichkeit des Auftretens von «Engpässen» während seiner weiteren Skalierung aus.

Dateisystemarchitektur

Zusätzlich zum Stamm-B + -Eintrag des Baums haben alle anderen Einträge eine Metadatenblockgröße von 16 KB. Zwischenknoten (Adressknoten) sind klein, ungefähr 60 Bytes. Daher ist normalerweise eine kleine Anzahl von Baumebenen erforderlich, um auch sehr große Strukturen zu beschreiben. Dieser Ansatz erhöht die Gesamtleistung des Systems.

Das Hauptstrukturelement des Dateisystems ist das «Verzeichnis», dargestellt als B + -Baum mit einem Schlüssel in Form der Ordnerobjektnummer. Im Gegensatz zu anderen ähnlichen Dateisystemen ist eine Datei in «ReFS» kein separates Schlüsselelement des «Verzeichnisses», sondern existiert nur als Datensatz. Möglicherweise unterstützt «ReFS» aufgrund dieser Architekturabweichung keine «Hardlinks».

«Blatt» Verzeichnisse sind typisierte Einträge. Es gibt drei grundlegende Arten von Einträgen für ein Ordnerobjekt: Verzeichnisdeskriptor, Indexeintrag und verschachtelter Objektdeskriptor. Alle diese Datensätze werden in einen separaten Baum mit einer Ordnerkennung gepackt. Seine Wurzel ist «Blatt» dieses Baumes. Auf diese Weise können Sie fast beliebig viele Aufnahmen machen. Auf der untersten Ebene in den Blättern befindet sich ein Verzeichnisbeschreibungseintrag, der grundlegende Informationen zum Verzeichnis enthält, z. B ​​Name, Standardinformationen, Dateinamenattribut usw.

Weiter im Verzeichnis befinden sich die sogenannten Indexeinträge: Kurzstrukturen mit den Daten der Verzeichniselemente. Im Vergleich zu NTFS sind diese Datensätze erheblich kürzer, wodurch das Volume weniger Metadaten überlastet. Die letzten sind die Katalogeinträge. Bei Ordnern enthalten diese Elemente den Ordnernamen sowie die Ordner-ID im «Verzeichnis» und Struktur «der Standardinformationen». Es gibt keine Kennung für die Datei, sondern die Struktur enthält alle grundlegenden Daten zur Datei, einschließlich Fragmente der Stammbaum-Datei. Daher kann eine Datei aus fast einer beliebigen Anzahl von Fragmenten bestehen.

Dateien auf der Festplatte befinden sich in Blöcken von 64 KB. Sie werden wie Metadatenblöcke in 16K-Clustern angesprochen. «Ansässigkeit» von Dateidaten wird in «ReFS» nicht unterstützt, daher nimmt eine 1-Byte-Datei auf der Festplatte den gesamten 64-KB-Block ein, was zu einer erheblichen Speicherredundanz für kleine Dateien führt.

Die Metadatengröße eines leeren Dateisystems beträgt ungefähr 0,1% der Größe des Dateisystems selbst (dh ungefähr 2 GB auf einem 2-TB-Volume). Einige der zugrunde liegenden Metadaten werden dupliziert, um die Fehlerresistenz zu verbessern.

Dateisystemstruktur ReFS

Das Dateisystem «ReFS» kann durch die folgende Signatur ganz am Anfang des Abschnitts identifiziert werden:

00 00 00 52  65 46 53 00  00 00 00 00  00 00 00 00 ...ReFS.........
46 53 52 53  XX XX XX XX  XX XX XX XX  XX XX XX XX FSRS

ReFS-Seiten sind 0x4000 Bytes lang.

Dateisystemstruktur ReFS

Auf allen getesteten Systemen lautet die erste Seitenzahl 0x1e (0x78000 Byte nach der Boot-Partition, die das Dateisystem enthält). Dies ist die in Microsoft integrierte Dokumentation und besagt, dass sich das erste Metadatenverzeichnis auf der Festplatte auf einer stationären Vorspannung befindet.

Andere Seiten enthalten verschiedene Strukturen und Tabellen des Systems, Verzeichnisse und Volumes sowie «journalisierte» Versionen jeder Seite.

Das erste Byte jeder Seite ist ihre Seitenzahl.

Die ersten 0x30 Bytes jeder Metadatenseite sind der Seitentitel, der folgendermaßen aussieht:

byte  0: XX XX 00 00  00 00 00 00  YY 00 00 00  00 00 00 00
byte 16: 00 00 00 00  00 00 00 00  ZZ ZZ 00 00  00 00 00 00
byte 32: 01 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00

dword 0 (XX XX) – eine Seitenzahl, die fortlaufend ist und dem Seitenversatz 0x4000 entspricht;

dword 2 (YY) – Protokollnummer oder Sequenznummer;

dword 6 (ZZ ZZ) – Es ist «virtuelle Seitenzahl», die nicht fortlaufend ist.

«Object Table», virtuelle Seitennummer 0x02 – ordnet Objektkennungen den Seiten zu, auf denen sie sich befinden. Hier sehen wir «AttributeList», bestehend aus den Einträgen «Key / Value pairs».

Anhand dessen können Sie «ID» des Stammverzeichnisobjekts finden und die Seite abrufen, auf der es sich befindet:

50 00 00 00 10 00 10 00 00 00 20 00 30 00 00 00 – Gesamtlänge / Grenzen von Schlüsseln und Werten
00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 – Objektbezeichner
F4 0A 00 00 00 00 00 00 00 00 02 08 08 00 00 00 – Seiten-ID / Flags
CE 0F 85 14 83 01 DC 39 00 00 00 00 00 00 00 00 – Prüfsumme
08 00 00 00 08 00 00 00 04 00 00 00 00 00 00 00

Objekttabelleneintrag für das Stammverzeichnis, das seine Seite enthält (0xAF4)

Suchen Sie beim Abrufen von Seiten nach ID oder virtueller Nummer nach den Seiten mit der höchsten fortlaufenden Nummer, da dies die neuesten Kopien des Moduls «shadow-write»sind.

Die Verzeichnisse ab der Wurzel folgen einem sequentiellen Muster. Sie bestehen aus sequentiellen Listen von Datenstrukturen, deren Länge durch den Wert des ersten Attributs (Attribute und Attributlisten) bestimmt wird.

Einer Liste wird häufig Vorsatzkode Header-Attribut vorangestellt, das die Gesamtlänge der folgenden Attribute definiert, aus denen die Liste besteht.

In jedem Fall können die Attribute analysiert werden, indem die Bytes nach der Kopfzeile des Verzeichnisses erneut analysiert werden und der erste Wert gelesen und verarbeitet wird, um die nächste Anzahl von Bytes zu bestimmen.

Die verschiedenen Attribute haben unterschiedliche Semantiken, einschließlich Links zu Unterverzeichnissen und Dateien sowie Navigationen zu zusätzlichen Seiten mit mehr Verzeichnisinhalten.

Die Strukturen in der Verzeichnisliste haben eines der folgenden Formate:

Base Attribute

Das einfachste Grundattribut besteht aus einem Block, dessen Länge ganz am Anfang angegeben ist.

Unten finden Sie ein Beispiel für ein typisches Attribut:

a8 00 00 00  28 00 01 00  00 00 00 00  10 01 00 00
10 01 00 00  02 00 00 00  00 00 00 00  00 00 00 00
00 00 00 00  00 00 00 00  a9 d3 a4 c3  27 dd d2 01
5f a0 58 f3  27 dd d2 01  5f a0 58 f3  27 dd d2 01
a9 d3 a4 c3  27 dd d2 01  20 00 00 00  00 00 00 00
00 06 00 00  00 00 00 00  03 00 00 00  00 00 00 00
5c 9a 07 ac  01 00 00 00  19 00 00 00  00 00 00 00
00 00 01 00  00 00 00 00  00 00 00 00  00 00 00 00
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00
00 00 00 00  00 00 00 00  01 00 00 00  00 00 00 00
00 00 00 00  00 00 00 00

Hier ist der Abschnitt 0xA8 lang und enthält vier Dateistempel. Weitere Details finden Sie weiter unten:

a9 d3 a4 c3  27 dd d2 01 - 2017-06-04 07:43:20
5f a0 58 f3  27 dd d2 01 - 2017-06-04 07:44:40
5f a0 58 f3  27 dd d2 01 - 2017-06-04 07:44:40
a9 d3 a4 c3  27 dd d2 01 - 2017-06-04 07:43:20

Es ist sicher anzunehmen, dass:

  • Eines der ersten Felder eines bestimmten Attributs enthält eine Kennung, die angibt, welches Attribut analysiert werden soll, oder
  • der Kontext wird durch die Position des Attributs in der Liste angegeben.
  • Attribute, die dem angegebenen Wert entsprechen, befinden sich an dieser Adresse oder Kennung

Einträge

«Key / Value pairs» – Ihre Werte werden in den ersten 0x20 Bytes des Attributs angegeben. Sie werden für verwandte Abschnitte von Metadaten mit Dateien verwendet, deren Namen in Schlüssel geschrieben sind und deren Inhalt einen Wert hat.

Unten finden Sie ein Beispiel für einen typischen Eintrag:

40 04 00 00  10 00 1A 00  08 00 30 00  10 04 00 00  @.........0.....
30 00 01 00  6D 00 6F 00  66 00 69 00  6C 00 65 00  0...m.o.f.i.l.e.
31 00 2E 00  74 00 78 00  74 00 00 00  00 00 00 00  1...t.x.t.......
A8 00 00 00  28 00 01 00  00 00 00 00  10 01 00 00  ¨...(...........
10 01 00 00  02 00 00 00  00 00 00 00  00 00 00 00  ................
00 00 00 00  00 00 00 00  A9 D3 A4 C3  27 DD D2 01  ........©Ó¤Ã'ÝÒ.
5F A0 58 F3  27 DD D2 01  5F A0 58 F3  27 DD D2 01  _ Xó'ÝÒ._ Xó'ÝÒ.
A9 D3 A4 C3  27 DD D2 01  20 00 00 00  00 00 00 00  ©Ó¤Ã'ÝÒ. .......
00 06 00 00  00 00 00 00  03 00 00 00  00 00 00 00  ................
5C 9A 07 AC  01 00 00 00  19 00 00 00  00 00 00 00  \..¬............
00 00 01 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00 00 00 00  00 00 00 00  01 00 00 00  00 00 00 00  ................
00 00 00 00  00 00 00 00  20 00 00 00  A0 01 00 00  ........ ... ...
D4 00 00 00  00 02 00 00  74 02 00 00  01 00 00 00  Ô.......t.......
78 02 00 00  00 00 00 00  ...(cutoff)               x.......

Hier sehen wir die in der ersten Zeile eingestellten Aufnahmeparameter:

  • Gesamtlänge – 4 Bytes = 0x440
  • Schlüsseloffset – 2 Bytes = 0x10
  • Schlüssellänge – 2 Bytes = 0x1A
  • Flags / Kennzeichnung – 2 Bytes = 0x08
  • Wertoffset – 2 Bytes = 0x30
  • Wert Länge – 2 Bytes = 0x410

Der Schreibvorgang endet nach dem Wert 0x410 Byte vom Anfang und nach dem Wert 0x30 oder 0x440 (entspricht der Gesamtlänge).

Der Eintrag entspricht der auf der Festplatte erstellten Datei.

Hier ist das erste Attribut im Eingabewert das oben beschriebene einfache Attribut, das die Zeitstempel der Datei enthält. Darauf folgt «File Reference Attribute List Header».

Nach Kennzeichnungen suchen wir nach Datensätzen mit den Werten «w/ flag» ‘0’ oder ‘8’. Oft erscheint eine ‘4’, um einen historischen Datensatz oder einen Datensatz anzuzeigen, der seitdem geändert wurde.

Da Datensätze Vorsatzkode ihrer Gesamtlänge vorangestellt werden, können sie als Unterklasse betrachtet werden «Attribute».

«AttributeList» enthält einen Block von Attributen.

Auf den ersten Blick sind dies einfache Attribute mit einer Länge von 0x20, aber bei weiterer Prüfung können wir feststellen, dass sie die Länge eines großen Attributblocks enthalten. Nach der Analyse «AttributeList», müssen die verbleibenden Füllbytes in der Liste gelesen werden, bevor mit dem nächsten Attribut fortgefahren werden kann.

20 00 00 00  A0 01 00 00  D4 00 00 00  00 02 00 00 - Listenkopf mit Gesamtlänge (0x1A0) und Auffüllung (0xD4)
74 02 00 00  01 00 00 00  78 02 00 00  00 00 00 00
80 01 00 00  10 00 0E 00  08 00 20 00  60 01 00 00
60 01 00 00  00 00 00 00  80 00 00 00  00 00 00 00
88 00 00 00  ... (Schnitt)

Directory Tree Branches

Gabelhebeln eines Verzeichnisbaums sind Listen von Attributen, wobei jedes Attribut einem Eintrag entspricht, dessen Wert sich auf eine Seite bezieht, die zusätzlichen Verzeichnisinhalt enthält.

Wenn wir den Header «AttributeList» mit dem Flag-Wert «0x301» finden, müssen wir

  • die Attribute in der Liste durchlaufen,
  • ihre Aufzeichnungen analysieren,
  • «dword» in jedem Wert als Seite verwenden, um den Verzeichnis-Durchlaufprozess zu wiederholen.

Zusätzliche Dateien und Unterverzeichnisse auf den angegebenen Seiten müssen zur Inhaltsliste des aktuellen Verzeichnisses hinzugefügt werden.

SubDirectories

«SubDirectories» – Dies sind Einträge in der Liste der Verzeichnisattribute, deren Schlüssel das Metadaten-Flag des Verzeichnisses (0x20030) sowie den Namen des Unterverzeichnisses enthält.

Der Wert dieses Eintrags ist die entsprechende Objektkennung, mit der die Seite gefunden werden kann, die ein Unterverzeichnis in der Objekttabelle enthält.

Typisches Unterverzeichnis «Record»:

70 00 00 00  10 00 12 00  00 00 28 00  48 00 00 00
30 00 02 00  73 00 75 00  62 00 64 00  69 00 72 00 - Hier sehen wir einen Schlüssel mit einem Flag (30 00 02 00), gefolgt vom Verzeichnisnamen ("subdir2")
32 00 00 00  00 00 00 00  03 07 00 00  00 00 00 00 - Hier sehen wir die Objekt-ID und den ersten Wert qword (0x730)
00 00 00 00  00 00 00 00  14 69 60 05  28 dd d2 01 - Hier sehen wir die Verzeichniszeitstempel
cc 87 ce 52  28 dd d2 01  cc 87 ce 52  28 dd d2 01
cc 87 ce 52  28 dd d2 01  00 00 00 00  00 00 00 00
00 00 00 00  00 00 00 00  00 00 00 10  00 00 00 00

Ähnliche Verzeichnisse sind Einträge, deren Schlüssel das Flag (0x10030) enthält, gefolgt vom Dateinamen.

Die Bedeutung ist jedoch viel komplexer. Wir haben einige grundlegende Attribute entdeckt, mit denen wir Zeitstempel und Inhalte aus dem Dateisystem abrufen können. Die Semantik der Bedeutung dieses Eintrags muss jedoch noch abgeleitet werden.

Der Wert «File Record» besteht aus mehreren Attributen, die jedoch nur nacheinander ohne Listen-Header angezeigt werden. Wir können sie immer noch nacheinander analysieren, da alle Attribute den individuellen Vorsatzkode mit ihrer Länge haben, und die Länge des Werts eines Dateidatensatzes gibt die Gesamtblockgröße an.

Das erste Attribut enthält 4 Datei-Zeitstempel mit einem Versatz, der durch das fünfte Byte des Attributs angegeben wird (obwohl diese Position zufällig sein kann, da sich die Zeitstempel möglicherweise einfach an einer festen Stelle in diesem Attribut befinden).

Das zweite Attribut ist der Header der Attributliste, die «Dateianzeiger» enthalten.

In diesem Attribut enthält das erste die Länge der Datei und das zweite Header für eine andere Liste. Dieses Attribut enthält auch einen Eintrag, dessen Wert Dateianzeiger enthält, auf der sich der Inhalt der Datei befindet.

----------------------------------------
| ...                                  |
----------------------------------------
| File Entry Record                    |
| Key: 0x10030 [FileName]              |
| Value:                               |
| Attribute1: Timestamps               |
| Attribute2:                          |
|   File Reference List Header         |
|   File Reference List Body(Record)   |
|     Record Key: ?                    |
|     Record Value:                    |
|       File Length Attribute          |
|       File Content List Header       |
|       File Content Record(s)         |
| Padding                              |
----------------------------------------
| ...                                  |
----------------------------------------

Trotz der Komplexität kann jede Ebene auf die gleiche Weise wie alle anderen Attribute und Datensätze analysiert werden. Sie müssen lediglich die Attribute analysieren und ihre Ebenen und Struktur korrekt bestimmen.

In Bezug auf die tatsächlichen Werte ist die Länge der Datei immer mit einem festen Versatz innerhalb ihres Attributs (0x3c) sichtbar, und der Inhaltszeiger befindet sich im zweiten Wert «qword» der Aufzeichnungsdatei. Dieser Zeiger ist ein einfacher Weblink, deren Dateiinhalt wörtlich gelesen werden kann.

SubDirectories

Obwohl «ReFS» die Sicherheit und Speichereffizienz verbessert hat, kann es wichtige Daten nicht vollständig vor versehentlichem Löschen, Virenschäden oder anderem Datenverlust schützen. Sie sollten solche Situationen auf jeden Fall berücksichtigen und ein zuverlässiges Tool zur Lösung von Problemen mit gelöschten Dateien erhalten.

Suchverfahren der Datenwiederherstellungssoftware Hetman Partition Recovery

Die Lösung für dieses Problem ist ein spezielles Dienstprogramm für die schnelle Datenwiederherstellung.

Mit Hetman Partition Recovery können Sie den Speicherplatz unter Leitung des Dateisystems «ReFS» mithilfe des Signaturanalysealgorithmus analysieren. Durch die sektorweise Analyse des Geräts findet das Programm bestimmte Bytefolgen und zeigt sie dem Benutzer an. Datenwiederherstellung vom Speicherplatz «ReFS» unterscheidet sich nicht von der Arbeit mit dem Dateisystem «NTFS».

Während einer schnellen Analyse sucht das Programm nach «Volume Header», der sich im Nullsektor befindet, und seine Kopie liegt im letzten Sektor. Der Header enthält die für die weitere Analyse erforderlichen Informationen, nämlich die Anzahl der Bytes im Sektor und die Anzahl der Sektoren in der Zuordnungseinheit. Nachdem diese Parameter bestimmt wurden, findet er «Superblock», der im 30. Block liegt. Der Superblock hat 2 Kopien. Eine Kopie befindet sich im dritten Block vom Ende und die zweite Kopie befindet sich im zweiten Block. Das Programm ermittelt vom Superblock aus Links zu Checkpoints. Es gibt 2 Checkpoints, die sich an den angegebenen Adressen befinden, die sich im Superblock befinden. Wenn Sie zu diesen beiden Adressen gehen, findet das Programm «Virtual Allocated Clock». Dieser Parameter bestimmt, welcher der Prüfpunkte gerade aktuell ist. Wie Sie wissen, ändert Windows zuerst 1 Prüfpunkt und dupliziert nur dann die Informationen im zweiten Prüfpunkt, wenn der Schreibvorgang erfolgreich ist.

Checkpoint enthält die Haupttabellen. Es liest «Page Header» und dann den Datenblock. Für den Datenblock erhalten wir Pointers jeder Tabelle (Links zu allen Haupttabellen).

Um virtuelle Adressen in physische Adressen zu übersetzen, müssen Sie «Container Table» suchen. Anschließend wird die virtuelle Adresse nach «Object ID Table» durchsucht, um alle Tabellen abzurufen.

Ferner geht die Suche nach Informationen seitenweise und bestimmt deren Ebene. Wenn dies die Nullstufe ist – ein Blatt, dann werden die Daten gelesen, die wir benötigen. Wenn nicht, sucht das Programm nach einem Pfad zur nächsten Ebene, bis es Null wird, wo unsere Daten liegen.

Selbst wenn eines dieser Elemente der Dateisystemstruktur beschädigt ist, ermöglicht der Algorithmus unseres Programms bei vollständiger Analyse, diese Links auszuschließen und zu den erforderlichen Informationen zu gelangen, die wiederhergestellt werden müssen.

Die Zukunft des neuen Dateisystems ist noch unklar. Microsoft kann «ReFS» nacharbeiten, um das veraltete «NTFS» in allen Windows-Versionen zu ersetzen. Im Moment kann «ReFS» nicht universell verwendet werden und dient nur für bestimmte Aufgaben.

Für dich empfohlen