Structure du système de fichiers ReFS et l’algorithme de récupération de données

ReFS ou Resilient File System est un nouveau système de fichiers basé sur le code NTFS. Comme tout système de ce type, il présente à la fois des avantages et des inconvénients, mais le fait essentiel est que ReFS est destiné à résoudre les principaux problèmes dont souffre NTFS. Il est plus résistant aux dommages causés aux données, il peut mieux gérer les charges de travail lourdes et il est facilement évolutif pour les très gros systèmes de fichiers.

Structure du système de fichiers ReFS et l’algorithme de récupération de données

Introduction

The new file system, ReFS, is the product of further development of its predecessor, NTFS. It supports reparse points, the technology which was previously included into NTFS only. The reparse points help to implement support for symbolic links and mounting points in Windows.

Main functions:

  • Intégrité des métadonnées avec des sommes de contrôle.
  • Flux d’intégrité: la méthode d’écriture de données sur le disque pour une protection supplémentaire des informations dans les cas où une partie du disque est endommagée.
  • Modèle transactionnel d’allocation à l’écriture (également appelé copie à l’écriture).
  • Limites de taille plus élevées pour les partitions (volumes), les fichiers et les répertoires.
  • Regroupement de stockage et virtualisation pour faciliter la création de volumes et la gestion des systèmes de fichiers.
  • Segmentation des données série connue sous le nom de data striping pour de meilleures performances, redondance pour la tolérance aux pannes.
  • Prise en charge du nettoyage de disque en arrière-plan appelé nettoyage de disque pour la protection contre les erreurs de disque latentes.
  • Récupération des données autour de la zone endommagée du disque.
  • Groupes de stockage partagé entre les machines pour une tolérance aux pannes et un équilibrage de charge supplémentaires.
  • Compatible avec les fonctionnalités largement utilisées de NTFS.
  • Vérification des données et correction automatique.
  • Évolutivité maximale.
  • Le système de fichiers ne peut pas être désactivé en raison de l’isolement des secteurs de blocs défectueux.
  • Architecture flexible utilisant la fonctionnalité Espaces de stockage qui a été conçue et mise en œuvre spécifiquement pour ReFS.

De plus, ReFS hérite de nombreuses fonctionnalités de NTFS, y compris le cryptage BitLocker, les listes de contrôle d’accès – ACL, USN, notifications de modifications, liens symboliques, points de jonction, points de montage, points d’analyse, instantanés de volume, fichier ID et oplocks.

Bien sûr, les données de ReFS seront disponibles pour les clients via les mêmes API actuellement utilisées dans tous les systèmes d’exploitation pour accéder aux partitions formatées en NTFS.

Particularités

Visualisation
Software RAID in Windows 10, Storage Spaces and Data Recovery from RAID drives 💻⚕️🤔

Software RAID in Windows 10, Storage Spaces and Data Recovery from RAID drives 💻⚕️🤔

Particularités du système de fichiers ReFS:

Le système de fichiers utilise des sommes de contrôle pour les métadonnées, et il peut également utiliser des sommes de contrôle pour les données de fichier. Lors de la lecture ou de l’écriture d’un fichier, le système examine la somme de contrôle pour s’assurer qu’elle est correcte. De cette manière, la distorsion des données peut être surveillée en mode temps réel.

Si le système de fichiers détecte des données endommagées qui n’ont pas de copie alternative pour la récupération, ReFS supprimera immédiatement ces données du disque. Dans ce cas, vous n’avez pas besoin de redémarrer l’ordinateur ou de déconnecter le support – ce qui est nécessaire si vous utilisez NTFS.

Vous n’avez plus besoin d’utiliser l’utilitaire chkdsk car le système de fichiers est corrigé automatiquement dès qu’une erreur apparaît. Le nouveau système est également résilient à d’autres cas où les données sont corrompues.

Meilleure fiabilité pour le stockage des données. ReFS utilise des arborescences B+ trees pour toutes les structures sur disque, y compris les métadonnées et les données de fichiers. La taille du fichier, le nombre de fichiers dans un dossier, la taille totale du volume et le nombre de dossiers dans un volume sont limités par des nombres 64 bits. L’espace disque libre est compté par un répartiteur hiérarchique qui comprend trois tables distinctes pour les gros, moyens et petits morceaux. La longueur du nom de fichier et du nom de chemin est limitée à 32 kibioctets de caractères Unicode.

Le nouveau système de fichiers est également plus résistant aux dommages pouvant être causés à vos données de toute autre manière. Par exemple, lorsque vous mettez à jour les métadonnées d’un fichier – par exemple, un nom de fichier – NTFS modifiera directement les métadonnées du fichier. Si votre ordinateur tombe en panne, plante ou en cas d’une coupure de courant au milieu du processus, les données pourraient être endommagées. Au contraire, lorsque vous mettez à jour les métadonnées du fichier dans ReFS, cela créera une nouvelle copie des métadonnées et les métadonnées mises à jour seront attribuées au fichier uniquement après l’écriture de toutes les nouvelles informations. De cette façon, il n’y a aucun risque que les métadonnées du fichier soient corrompues. Cette approche est connue sous le nom de Copy-on-write.

ReFS est intégré à la technologie de virtualisation appelée Espaces de stockage, qui permet de mettre en miroir et de combiner plusieurs périphériques de stockage physiques au sein d’un ordinateur ou d’un réseau.

Cependant, ce système de fichiers ne prend pas en charge les flux nommés, les noms courts, la compression et le cryptage au niveau du fichier, le système de fichiers de cryptage, ainsi que les transactions NTFS, les liens physiques, attributs étendus et quotas de disque.

Comment cela diffère de NTFS

ReFS est plus récent et il prend en charge des volumes plus importants et des noms de fichiers plus longs que NTFS. Dans la perspective à long terme, ce sont des développements très importants.

Dans le système NTFS, les chemins de fichiers sont limités à 255 caractères. Pendant ce temps, le système ReFS prend en charge plus de 30 000 caractères (32 768) dans un nom de fichier.

NTFS a une capacité maximale théorique de 16 exaoctets, tandis que ReFS possède l’incroyable 262 144 exaoctets. La plupart du temps, cela ne change pas trop la situation actuelle, mais c’est une bonne réserve pour l’avenir.

Dans ReFS, vous ne trouverez pas certaines des fonctions NTFS telles que la compression des données, le chiffrement du système de fichiers, les liens physiques, les attributs étendus, la déduplication des données et les quotas de disque. Néanmoins, ReFS est compatible avec diverses fonctionnalités. Par exemple, si vous ne pouvez pas chiffrer certaines données au niveau du système de fichiers, le système ReFS prend toujours en charge le chiffrement BitLocker.

Windows 10 ne vous laissera formater aucune partition en ReFS, et pour le moment, ReFS ne peut être utilisé que pour les espaces de stockage où ses fonctionnalités aident à protéger vos données contre tout dommage . Dans Windows Server 2016, vous pouvez formater des volumes avec ReFS au lieu de NTFS. Cependant, vous ne pouvez pas utiliser ReFS pour un volume de démarrage, car Windows ne peut démarrer qu’à partir d’un disque NTFS.

De nos jours, ReFS n’est utilisé que sur les versions serveur de Windows et sur Windows Enterprise (également connu sous le nom de LTSC).

Architecture du système de fichiers

Bien que ReFS et NTFS soient souvent mentionnés comme étant similaires, la chose qu’ils partagent est la compatibilité de certaines structures de métadonnées. La façon dont la structure de disque ReFS est implémentée diffère complètement des autres systèmes de fichiers Microsoft.

Les principaux éléments structurels du nouveau système de fichiers sont les B+ trees. Tous les éléments de la structure du système de fichiers peuvent être de type à un niveau (feuilles) ou à plusieurs niveaux (arbres). Une telle approche permet une plus grande évolutivité pour presque tous les éléments du système de fichiers. Associé à un véritable adressage 64 bits pour tous les éléments du système, il exclut les éventuels goulots d’étranglement si le système de fichiers doit être mis à l’échelle davantage.

Architecture du système de fichiers

En plus de l’enregistrement racine de l’arborescence B+ trees, tous les autres enregistrements ont une taille de bloc de métadonnées de 16 Ko. Les nœuds intermédiaires (adresses) ont une petite taille (environ 60 octets). C’est pourquoi nous avons généralement besoin d’un petit nombre de niveaux d’arborescence pour décrire même de très grandes structures, ce qui améliore certainement les performances globales du système.

L’élément structurel principal du système de fichiers est le répertoire présenté sous la forme d’un arbre B+ avec la clé comme numéro de l’objet dossier. Contrairement à d’autres systèmes de fichiers similaires, un fichier dans ReFS n’est pas un élément clé séparé du répertoire mais il n’existe qu’en tant qu’enregistrement dans le dossier qui le contient. Peut-être que cette fonctionnalité architecturale explique pourquoi le système ReFS ne prend pas en charge les liens physiques.

Les répertoires feuilles sont des enregistrements typés. Pour un objet dossier, il existe trois principaux types d’enregistrements: un descripteur de répertoire, un enregistrement d’index et un descripteur d’objet imbriqué. Tous ces enregistrements sont regroupés dans une arborescence B+ séparée avec un identifiant de dossier. La racine de cet arbre est une feuille de l’arborescence répertoire B+. Il permet d’emballer presque n’importe quel nombre d’enregistrements. Au niveau inférieur dans les feuilles de l’arborescence B+, il y a principalement un enregistrement de descripteur de répertoire contenant des informations de base sur le répertoire telles que le nom, les informations standard, l’attribut de nom de fichier, etc.

Further in the directory are the so-called index entries: short structures with directory elements’ data. Compared with NTFS, these records are considerably shorter which means the volume has to store less metadata. The last elements are directory items’ records. For folders these elements contain the name of the folder as well as the folder identifier in the Directory and the structure of the standard information. For files, the identifier is missing but instead, the structure contains all the basic data about the file including file fragments of the root tree. Hence, a file can consist of almost any number of fragments (chunks).

Les fichiers sur disque sont situés dans des blocs de 64 Ko. Ils sont adressés exactement de la même manière que les blocs de métadonnées (en clusters de 16 Ko). La résidence des données de fichier sur ReFS n’est pas prise en charge, donc un fichier de 1 octet sur le disque occupera un bloc entier de 64 Ko, ce qui entraîne une redondance importante du stockage sur les petits des dossiers. D’autre part, cela simplifie la gestion de l’espace libre et un nouveau processus d’allocation de fichiers est beaucoup plus rapide.

La taille des métadonnées d’un système de fichiers vide est d’environ 0,1% de la taille du système de fichiers lui-même (c’est-à-dire environ 2 Go sur un volume de 2 To). Certaines métadonnées de base sont dupliquées, ce qui améliore la résilience aux pannes.

Structure du système de fichiers ReFS

Vous pouvez identifier un système de fichiers en tant que ReFS par la signature suivante au début de la partition:

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

Les pages ReFS ont une longueur de 0x4000 octets.

Structure du système de fichiers ReFS

Sur tous les systèmes inspectés, le premier numéro de page est 0x1e (0x78000 octets après le début de la partition contenant le système de fichiers). Ceci est conforme à la documentation Microsoft qui indique que le premier répertoire de métadonnées se trouve à un décalage fixe sur le disque.

D'autres pages contiennent diverses structures et tables de systèmes, de répertoires et de volumes, ainsi que des versions journalisées de chaque page.

Le premier octet de chaque page est son numéro de page.

Les 0x30 premiers octets de chaque page de métadonnées forment l'en-tête de page qui se présente comme suit:

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) est le numéro de page qui est séquentiel et correspond au décalage 0x4000 de la page;

dword 2 (YY) est le numéro de journal ou le numéro de séquence;

dword 6 (ZZ ZZ) est le numéro de page virtuelle, qui n'est pas séquentiel

The Object Table, virtual page number 0x02 associates object identifiers with the pages on which they reside. La Table d'objets, page virtuelle numéro 0x02 associe les identifiants d'objets aux pages sur lesquelles ils résident. Ici, nous pouvons voir AttributeList composé d'enregistrements de Paires Clé / Valeur.

Nous pouvons les utiliser pour rechercher l'objet ID du répertoire racine et récupérer la page où il réside:

50 00 00 00 10 00 10 00 00 00 20 00 30 00 00 00 – longueur totale / bordures de clé et de valeur
00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 – identifiant d'objet
F4 0A 00 00 00 00 00 00 00 00 02 08 08 00 00 00 – identifiant de page / drapeaux
CE 0F 85 14 83 01 DC 39 00 00 00 00 00 00 00 00 – somme de contrôle
08 00 00 00 08 00 00 00 04 00 00 00 00 00 00 00

L'entrée de table d'objets pour le répertoire racine, contenant sa page (0xAF4)

Lorsque vous récupérez des pages par ID ou numéro de page virtuelle, recherchez celles qui ont le numéro de séquence le plus élevé car ce sont les dernières copies du mécanisme d’écriture fantôme shadow-write.

Les répertoires, du répertoire racine vers le bas, suivent un modèle cohérent. Ils sont constitués de listes séquentielles de structures de données dont la longueur est déterminée par la valeur du premier mot (attributs et listes d'attributs).

Les listes sont souvent précédées d'un attribut d'en-tête définissant la longueur totale des attributs qui suivent, qui composent la liste.

Dans les deux cas, les attributs peuvent être analysés en itérant sur les octets après l'en-tête de la page de répertoire, en lisant et en traitant le premier mot pour déterminer le nombre d'octets suivants à lire.

Divers attributs adoptent une sémantique différente, y compris des références à des sous-répertoires et des fichiers ainsi que des branches vers des pages supplémentaires contenant plus de contenu de répertoire.

Les structures d'une liste de répertoires ont l'un des formats suivants:

Attribut de base

L'attribut de base le plus simple consistant en un bloc dont la longueur est donnée au tout début.

Ci-dessous, un exemple d'attribut typique:

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

Vous trouverez ici une section de longueur 0xA8 contenant les quatre horodatages de fichier suivants. Voir plus ci-dessous:

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

Il est sûr de supposer que:

  • l'un des premiers champs d'un attribut donné contient un identifiant détaillant comment l'attribut doit être analysé, ou
  • le contexte est donné par la position de l'attribut dans la liste.
  • les attributs correspondant à la signification donnée sont référencés par cette adresse ou cet identifiant

Registres

Paires clé/valeur – leurs valeurs sont données dans les 0x20 premiers octets de l'attribut. Ceux-ci sont utilisés pour les sections de métadonnées associées avec des fichiers dont les noms sont enregistrés dans les clés et le contenu est enregistré dans la valeur.

Ci-dessous, trouvez un exemple typique d'enregistrement:

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.......

Ici, nous voyons les paramètres d'enregistrement définis par la première ligne:

  • longueur totale - 4 octets = 0x440
  • décalage de clé - 2 octets = 0x10
  • longueur de clé - 2 octets = 0x1A
  • flags / identifiant - 2 octets = 0x08
  • décalage de valeur - 2 octets = 0x30
  • longueur de la valeur - 2 octets = 0x410

Le registre se termine après la valeur, 0x410 octets après le début de la valeur à 0x30 ou 0x440 octets après le début de l'enregistrement (ce qui correspond à la longueur totale).

Le registre correspond à un fichier créé sur le disque.

Ici, le premier attribut de la valeur du registre est l'attribut simple dont nous avons parlé ci-dessus, contenant les horodatages du fichier. Il est suivi de En-tête de liste d'attributs de référence.

Avec ces tampons, nous recherchons des registres avec des valeurs "0" ou "8" pour w/ flag. La valeur « 4 » apparaît souvent, cela indique un registre historique ou un registre qui a été remplacé depuis par un autre.

Comme les registres sont précédés de leur longueur totale, ils peuvent être considérés comme une sous-classe de Attribute.

AttributeList, ou en-tête de liste, contient le bloc d'attributs.

À première vue, ce sont de simples attributs de longueur 0x20, mais après une inspection plus approfondie, nous constatons systématiquement qu'ils contiennent la longueur d'un grand bloc d'attributs. Après avoir analysé AttributeList, nous devrions lire les octets restants dans la liste avant de passer à l'attribut suivant.

20 00 00 00  A0 01 00 00  D4 00 00 00  00 02 00 00 - en-tête de liste spécifiant la longueur totale (0x1A0) et le remplissage (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  ... (cutoff)

Branches de l'arborescence du répertoire

Les branches de l'arborescence de répertoires sont des listes d'attributs où chaque attribut correspond à un enregistrement dont la valeur fait référence à une page qui contient plus de contenu de répertoire.

Lorsque nous rencontrons l'en-tête AttributeList avec la valeur d'indicateur 0x301 nous devrions

  • parcourir les attributs de la liste,
  • les analyser comme des registres,
  • utiliser dword dans chaque valeur comme page pour répéter le processus de parcours de répertoire (récursivement).

Les fichiers et sous-répertoires supplémentaires trouvés sur les pages référencées doivent être ajoutés à la liste du contenu actuel du répertoire.

Sous-répertoires

Les sous-répertoires sont des enregistrements de la liste d'attributs du répertoire dont la clé contient l'indicateur de métadonnées du répertoire (0x20030) ainsi que le nom du sous-répertoire.

La valeur de cet enregistrement est l'identifiant de l'objet correspondant qui peut être utilisé pour rechercher la page contenant le sous-répertoire dans la table des objets.

Un sous-répertoire registre typique:

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 - nous voyons ici la clé contenant le drapeau (30 00 02 00) suivi du nom du répertoire ("subdir2")
32 00 00 00  00 00 00 00  03 07 00 00  00 00 00 00 - ici, nous voyons l'identifiant de l'objet comme premier mot de la valeur (0x730)
00 00 00 00  00 00 00 00  14 69 60 05  28 dd d2 01 - ici nous voyons les horodatages du répertoire
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

Ces répertoires sont des registres dont la clé contient un indicateur (0x10030) suivi du nom du fichier.

La valeur est beaucoup plus compliquée, cependant, et nous avons découvert certains attributs de base nous permettant d'extraire les horodatages et le contenu du système de fichiers, il reste encore plus à déduire quant à la sémantique de la valeur de ce registre.

La valeur File Record se compose de plusieurs attributs, bien qu'ils apparaissent les uns après les autres, sans en-tête de liste. Nous pouvons toujours les analyser séquentiellement étant donné que tous les attributs sont préfixés individuellement avec leurs longueurs et que la longueur de la valeur du registre du fichier nous donne la taille totale du bloc.

Le premier attribut contient 4 horodatages de fichier à un décalage donné par le cinquième octet de l'attribut (bien que cette position puisse être une coïncidence car les horodatages pourraient simplement résider à un emplacement fixe dans cet attribut).

Le deuxième attribut semble être l'en-tête d'une liste d'attributs contenant la Référence de fichier.

Dans cette liste d'attributs unique, le premier attribut contient la longueur du fichier, tandis que le second est l'en-tête d'une autre liste. Cet attribut contient également un enregistrement dont la valeur contient une référence à la page où réside réellement le contenu du fichier.

----------------------------------------
| ...                                  |
----------------------------------------
| 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                              |
----------------------------------------
| ...                                  |
----------------------------------------

Bien qu'il soit compliqué, chaque niveau peut être analysé de la même manière que tous les autres attributs et registres, en prenant simplement soin d'analyser les attributs dans leurs niveaux et structures corrects.

En ce qui concerne les valeurs réelles, la longueur du fichier est toujours vue à un décalage fixe dans son attribut (0x3c) et le pointeur de contenu réside dans la deuxième valeur qword du fichier d'enregistrement. Ce pointeur est simplement une référence à la page, dont le contenu du fichier peut être lu textuellement.

Sous-répertoires

Bien que le système ReFS se caractérise par une sécurité améliorée et des fonctionnalités de stockage de données efficaces, il ne peut pas protéger entièrement les informations importantes contre la suppression accidentelle, les attaques de virus ou d'autres éléments pouvant entraîner une perte de données. Vous devez tenir compte de la probabilité de tels problèmes à l'avenir et vous préparer avec un utilitaire fiable capable de résoudre les problèmes liés aux fichiers supprimés.

L'algorithme de recherche utilisé par un outil de récupération de données populaire, Hetman Partition Recovery

La meilleure solution pour résoudre rapidement de tels problèmes devrait être un outil de récupération de données spécialisé.

Visualisation
🔝 Top Tools to Recover Data from ReFS Drives in 2021 💽

🔝 Top Tools to Recover Data from ReFS Drives in 2021 💽

Hetman Partition Recovery permet d'analyser le stockage sur disque géré par le système de fichiers ReFS avec l'algorithme d'analyse de signature. En analysant le dispositif de stockage secteur par secteur, le programme trouve certaines séquences d'octets et les représente à l'utilisateur. Récupérer des données à partir d'un espace de stockage ReFS n'est pas différent de le faire dans le système de fichiers NTFS.

L'outil récupère les fichiers de n'importe quel appareil, quelle que soit la raison de la perte de données.

Lors du balayage rapide, le programme recherche l' en-tête de volum qui se trouve dans le secteur 0 (alors que sa copie se trouve dans le dernier secteur). L'en-tête contient les informations dont le programme a besoin pour une analyse plus approfondie - le nombre d'octets dans un secteur et le nombre de secteurs dans un cluster. Lorsque ces données sont collectées, le programme trouve le Superblock, qui est stocké dans le bloc 30. Le superbloc a deux copies - une dans le deuxième bloc à partir de la fin du disque et une dans le troisième bloc. A partir du superbloc, le programme détecte les liens vers les points de contrôle: il y a deux points de contrôle et ils peuvent être trouvés aux adresses spécifiées dans le superbloc. Après les deux adresses, le programme trouve Horloge Allouée virtuelle et utilise ces données pour déterminer lequel des deux points de contrôle est pertinent pour le moment. Comme nous le savons, Windows modifie initialement le premier point de contrôle, et seulement si l'opération réussit, il procède à la copie des données vers le deuxième point de contrôle.

Le point de contrôle contient des tables générales. À partir de là, notre programme lit l'en-tête de page et le bloc contenant les données. Ce bloc nous donne des pointeurs pour chaque table (c'est-à-dire des liens vers toutes les tables générales).

Pour transformer des adresses virtuelles en adresses physiques, il doit trouver le Tableau des conteneurs - Container Table. Ensuite, l'adresse virtuelle est utilisée pour trouver la table d'ID d'objet afin d'obtenir toutes les tables.

Après cela, le programme recherche les informations page par page, en essayant d'identifier leur niveau. S'il s'agit d'une feuille de niveau 0, les données que nous recherchons sont lues. Si ce n'est pas le cas, le programme recherchera le chemin vers un autre niveau jusqu'à ce qu'il atteigne enfin le nœud de niveau 0 où se trouvent les données requises.

Même si l'un des éléments de cette structure de système de fichiers est endommagé ou corrompu, l'algorithme utilisé pour une analyse complète permet à notre programme d'exclure ces liens rompus et d'atteindre les informations requises qui doivent être récupérées.

L'avenir de ce nouveau système de fichiers est assez incertain. Microsoft peut affiner ReFS pour remplacer l'ancien NTFS dans toutes les versions de Windows. Pour le moment, cependant, ReFS ne peut pas être utilisé partout et n'est appliqué que pour certaines tâches.

Abdelhamid Balti

Auteur: , Rédacteur technique

AbdelHamid Balti est un rédacteur technique chez Hetman Software. Il gère les tutoriels, les procédures et les revues détaillées concernant le fonctionnement des outils de l'entreprise avec toutes sortes de périphériques de stockage de données.

Mykhailo Miroshnychenko

Éditeur: , Rédacteur technique

Mykhailo Miroshnychenko est l'un des principaux programmeurs de la société Hetman Software. S'appuyant sur quinze années d'expérience en développement logiciel, il partage ses connaissances avec les lecteurs de notre blog. En plus de la programmation, Mykhailo est un expert dans le domaine de la récupération de données, des systèmes de fichiers, des périphériques de stockage de données et des matrices RAID.

Recommandé pour vous

Vous êtes accueilli par l'assistant Hetman Software, créé sur la base de l'intelligence artificielle.
Démarrer la discussion