Introduction
La partition NTFS, soit l'abréviation de New Technology File System, est une partition de type B+ tree qu'utilise les systèmes d'exploitation Windows NT de Microsoft. Elle est la successeure des partitions FAT12, FAT16 et FAT32, car elle est beaucoup plus efficace lorsqu'il y a beaucoup de fichiers. De plus, elle supporte des attributs étendus, les métadonnées, des noms de fichiers longs.
Version
Voici la liste des différentes versions de la partition NTFS :
Version | Alias | Système d'exploitation | Date de publication |
---|---|---|---|
1.0 | Windows NT 3.1 | Mi-1993 | |
1.1 | Windows NT 3.5 | Automne 1994 | |
1.2 | «NTFS 4.0» | Windows NT 3.51 | mi-1995 |
Windows NT 4.0 | mi-1996 | ||
3.0 | «NTFS v5.0» ou «NTFS5» | Windows 2000 | 2000 |
3.1 | «NTFS v5.1» | Windows XP | Automne 2001 |
Secteur de démarrage de la partition
Voici la structure typique du secteur de démarrage qu'utilise la partition NTFS :
Position | Longueur | Valeur | Nom du champ | Description |
---|---|---|---|---|
0000h | 3 octets | EB5290h | JMP instruction | Ce champ permet de provoquer la poursuite de l'exécution après les données de structure dans le secteur de démarrage. |
0003h | 8 octets | Le mot «NTFS» suivi de 4 espaces. | OEM ID | Ce champ permet d'indiquer la signature indiquant une partition avec un système de fichier NTFS. |
000Bh | 2 octets | 0200h | Bytes per sector | Ce champ permet d'indiquer combien d'octets contient un secteur. |
000Dh | 1 octet | 08h | Sectors Per Cluster | Ce champ permet d'indiquer combien de secteurs sont dans une unité d'allocation. |
000Eh | 2 octets | 0000h | Reserved Sectors | Ce champ est réservé. |
0010h | 3 octets | 000000h | Unused | Ce champ est toujours à 0. |
0013h | 2 octets | 0000h | Unused by NTFS | Ce champ est toujours à 0. |
0015h | 1 octet | F8h | Media Descriptor | Ce champ permet d'indiquer le descripteur de média. |
0016h | 2 octets | 0000h | Ce champ est toujours à 0. | |
0018h | 2 octets | 003Fh | Sectors Per Track | Ce champ permet d'indiquer combien de secteur contient une piste. |
001Ah | 2 octets | 00FFh | Number Of Heads | Ce champ permet d'indiquer d'indiquer combien de tête magnétique en lecture/écrire sont contenues dans cette unité. |
001Ch | 4 octets | 0000003Fh | Hidden Sectors | Ce champ permet d'indiquer combien de secteurs cachés sont contenu sur cette partition. |
0020h | 4 octets | 00000000h | Ce champ n'est pas utilisé par la partition NTFS. | |
0024h | 4 octets | 0x80008000 | Ce champ n'est pas utilisé par la partition NTFS. | |
0028h | 8 octets | 0x00000000007FF54A | Total sectors | Ce champ permet d'indiquer combien de secteurs sont dans cette partition. |
0030h | 8 octets | 0000000000000004h | $MFT cluster number | Ce champ permet d'indiquer quel unité d'allocation contient le «$MFT». |
0038h | 8 octets | 000000000007FF54h | $MFTMirr cluster number | Ce champ permet d'indiquer quel unité d'allocation contient la copie miroir du «$MFT». |
0040h | 1 octet | F6h | Bytes Per File Record Segment | Ce champ permet d'indiquer combien il y a d'octets dans un segment d'enregistrement de fichier. |
0041h | 3 octets | 000000h | Ce champ n'est pas utilisé par la partition NTFS. | |
0044h | 1 octet | 01h | Clusters Per Index Buffer | Ce champ permet d'indiquer combien il y a d'unité d'allocation par tampon d'index. |
0045h | 3 octets | 000000h | Ce champ n'est pas utilisé par la partition NTFS. | |
0048h | 8 octets | variable | Volume Serial Number | Ce champ permet d'indiquer un nombre aléatoire associé avec cette partition correspondant à son numéro de série. |
0050h | 4 octets | 00000000h | Checksum | Ce champ permet d'indiquer la valeur précédente de la sommation de vérification. |
0054h | 426 octets | variable | Bootstrap Code | Ce champ permet d'indiquer le code étant charger dans le système d'exploitation. |
01FEh | 2 octets | AA55h | End-of-sector Marker | Ce champ permet d'indiquer un marqueur indiquant la fin du secteur de démarrage. |
Métafichiers
La partition NTFS contient plusieurs fichiers définissant et organisant le système de fichiers. La plupart de ces fichiers sont structurés comme n'importe quel autre fichiers utilisateur, mais avec un nom commençant par le caractère «$». Cependant, il n'est pas dans l'intérêt du système d'exploitation de fournir un accès directe au client à ses fichiers, car il pourrait menacer le bon fonctionnement du système. Ces métafichiers définissent les fichiers, les sauvegardes de données du système de fichiers critiques, les modifications du système de fichiers de la mémoire tampon, la gestion d'allocation de l'espace de libre, les réponses en attentes du BIOS, les mauvaises unités d'allocation, les informations de sécurités du magasin et l'utilisation de l'espace disque. Tout ce contenu est dans un flux de données sans nom. Voici donc ses métafichiers :
Numéro de segment | Nom du fichier | Description |
---|---|---|
0 | $MFT | Ce fichier permet de décrire tous les fichiers dans le volume, incluant les noms de fichiers, les temps, les noms de flux de données, la liste des nombres d'unité d'allocation où les données de flux sont situés, les indexes, les identificateurs de sécurité et les attributs de fichiers comme en lecture seulement, compressé ou encrypté,... |
1 | $MFTMirr | Ce fichier est un miroir du fichier «$MFT» et contient les premières entrées vitales. |
2 | $LogFile | Ce fichier contient le journal de bord des transactions des changements de métadonnées du système de fichiers. |
3 | $Volume | Ce fichier contient les informations à propos du volume, comme les identificateurs d'objet, le nom du volume, la version du système de fichiers, les drapeaux de volume (monté, requête CHKDSK, requête de taille $LogFile, monté dans NT 4, mise à jour de numéro de série de volume, requête de mise à jour de structure). |
4 | $AttrDef | Ce fichier contient une table des attributs MFT associant les identificateurs numériques avec les noms. |
5 | . | Ce fichier contient le répertoire racine, les données du répertoire sont entreposés dans les attributs $INDEX_ROOT et $INDEX_ALLOCATION nommé $I30. |
6 | $Bitmap | Ce fichier contient un tableau d'entrées de bit indiquant les correspondances d'unité d'allocation utilisés (alloué) ou libre (disponible pour allocation). |
7 | $Boot | Ce fichier contient un tableau d'entrées de bit indiquant les correspondances d'unité d'allocation utilisés (alloué) ou libre (disponible pour allocation). |
8 | $BadClus | Ce fichier contient toutes les unités d'allocation marqué par de mauvais secteurs. |
9 | $Secure | Ce fichier contient la base de données ACL (Access Control List) réduisant ainsi les passages aérien dans de nombreux ACL identiques entreposés dans chacun des fichiers et en les entreposant uniquement un fichier centralisé. |
10 | $UpCase | Ce fichier contient une table de caractères majuscules Unicode assurant la conversion entre l'espace de nom DOS et Win32. |
11 | $Extend | Ce fichier contient les informations d'extensions optionnel des dossiers du système de fichiers, comme le $Quota, $ObjId, $Reparse ou $UsnJrnl. |
12 à 23 | Ces numéros de segments sont réservés pour les entrées d'extension $MFT. Les entrées d'extensions sont enregistrements suppléments $MFT contenant les attributs additionnel ne pouvant entrée dans l'enregistrement primaire. Cette situation peut se produire lorsque les fichiers sont trop fragmentés, les noms de fichiers sont trop long, dans une sécurité complexe ou d'autres situations rarissime. | |
24 | $Extend\$Quota | Ce fichier contient les informations associé au quota d'un disque, soit deux racines d'index nommé $O et $Q. |
25 | $Extend\$ObjId | Ce fichier contient les informations de pistage de liaison, soit une racine d'index et l'allocation nommé «$O». |
26 | $Extend\$Reparse | Ce fichier contient les données de point de réanalyse comme les liens symboliques, soit la racine d'index et l'allocation nommé «$R». |
27 et plus | Ces numéros de segment permettent d'indiquer les entrées régulières de fichiers et accessible par toutes les applications. |
Légende
Cette couleur permet d'indiquer informations sensibles.
Remarques
- Fait assez curieux, l'identificateur de partition (07h) de la NTFS est le même que la HPFS d'IBM apparu 4 ans plus tôt.
- ATTENTION ! Bien qu'officiellement Windows 2000 supporte les partitions avec plus de 120 Go, il semble avoir de la difficulté à en effectuer la lecture sur certains matériels.
- Les systèmes d'exploitation Windows utilisent de façon intensive la traçabilité des données et les performances de cette partition en sont grandement affectées. Certaines personnes préféreront sans doute désactivée cette fonctionnalité dans la base de registres «HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisableLastAccessUpdate» en fixant la clef DWORD à la valeur 1.
- Si vous souhaitez voir les fichiers cachés par le systèmes d'exploitation comme «$AttrDef», «$BadClus», «$Boot», «$LogFile», «$MFT», «$MFTMirr», «$Secure», «$UpCase», «$Volume»,... vous devriez envisager d'utiliser le logiciel OSForensics.
Voir également
Système d'exploitation - Windows - Nom de fichiers de format court (8.3 filename SFN) et de format long (LFN)
Système d'exploitation - OS/2 - Partition HPFS
Système d'exploitation - Linux - Les partitions Linux : Ext2, Ext3 & Ext4