New Technology File System

Un article de Wikipédia, l'encyclopédie libre.

NTFS est un système de fichiers conçu pour Windows NT (et ses successeurs chez Microsoft) pour stocker des données sur disque dur. Il s’inspire d’HPFS, le système de fichiers conçu pour OS/2. Le sigle NTFS désigne en anglais NT File System (littéralement système de fichiers de la génération NT). Ce système est arrivé avec la première version de Windows NT, en 1993.

NTFS permet de :

  • mettre des droits très spécifiques (ACL) sur les fichiers et répertoires : lecture, écriture, exécution, appropriation, etc.
  • chiffrer des fichiers avec EFS (Encrypting File System)
  • compresser des fichiers
  • d'établir des quotas par volume

Sommaire

[modifier] Les caractéristiques de ce système de fichiers

NTFS
Diffuseur de logiciel Microsoft
Nom anglais New Technology File System
Introduction juillet 1993 (Windows NT 3.1)
Identificateur de partition 0x07 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
Structures
Contenu des répertoires B+ tree
Allocation de fichiers B+ tree
Mauvais blocs B+ tree
Limitations
Taille max. de fichier en pratique 16 TiB[1]
(en théorie 16 EiB)[2]
Nombre max. de fichiers 4 294 967 295 (232 − 1)
Taille max. de nom de fichier 255 caractères (UTF-16)
Taille max. de volume en pratique 256 TiB[1]
(en théorie 16 EiB)[2]
Caractères autorisés dans les noms de fichiers Unicode (UTF-16), tout caractère à l'exception de "/"
Fonctionnalités
Dates enregistrées Création, modification, accès
Plage de dates 1er janvier 1601 - 28 mai 60056
Forks Oui (Alternate Data Streams, voir (en) Fork (filesystem))
Attributs Lecture seule, caché, système, archive
Droits du système de fichier ACLs
Compression intégrée Par fichier, LZ77 (à partir de Windows NT 3.51)
Chiffrement intégré Par fichier,
DES-X (à partir de Windows 2000),
Triple DES (à partir de Windows XP),
AES (Windows XP Service Pack 1, Windows 2003 et suivants)

[modifier] Historique de NTFS

NTFS fit suite en 1993 à la technologie FAT, qui était utilisée par MS-DOS, et FAT32, utilisée par les versions "grand public", mais ne permettait que difficilement d’offrir un système de fichiers multi-utilisateurs :

  • pas de zone indiquant le propriétaire du fichier
  • pas de date du dernier accès en lecture
  • pas de droits d’accès de groupe


Il cherchait également à assurer une bonne performance dans un contexte multi-tâche, c’est-à-dire de nombreux programmes accédant simultanément ou presque au disque dur. La tâche critique était donc l'ordonnancement des requêtes.

[modifier] NTFS sous GNU/linux

NTFS est peu documenté, à dessein selon certains, car, pour cette raison, et aussi parce que l’on n’avait pas pu effectuer de rétroconception complète à son sujet, les pilotes GNU/Linux n’y donnaient accès qu’en lecture et partiellement en écriture jusqu'à l'arrivée du pilote libre NTFS-3G. Celui-ci n'est pas complet, mais permet des lecture/écriture sur du NTFS.

Historique des pilotes (pour permettre l'accès et l'écriture sur des partitions NTFS non compressées)

  • Le premier, Linux-NTFS ne permet que la lecture et l'écriture en mode remplacement seulement (considéré comme stable depuis le noyau 2.6.15), mais ni la création, ni la suppression de fichiers.
  • Un deuxième, Captive (Captive NTFS), qui est beaucoup plus lent, mais permet la lecture et l'écriture de manière plus sûre pour la partition, est une encapsulation de la DLL de Windows. Il fonctionne plutôt bien, mais peut planter, par exemple sur l'écriture de gros fichiers.
  • Le logiciel commercial Paragon (voir Paragon).
  • Le pilote libre NTFS-3G, en version stable 1.0 depuis le 21 février 2007, permet une écriture fiable et la création de fichiers sur les partitions NTFS.

[modifier] Outrepasser les droits en lecture-écriture

Mettre des droits en lecture-écriture est utile si on veut se protéger d'un utilisateur distant, maladroit ou hostile. Par contre, si on craint qu'un utilisateur hostile et compétent ait accès au local où se trouve l'ordinateur, alors ces droits sont faciles à contourner : installation d'un lecteur de CD-ROM sur une prise IDE ou USB … , démarrage avec un cédérom bootable (Knoppix, Windows PE ou autre).

Pour se protéger contre ce type d'attaque, il est nécessaire en plus de chiffrer les fichiers (onglet Général, bouton Avancé).

[modifier] Améliorer les performances au détriment de la traçabilité

À chaque accès à un fichier ou à un répertoire, la date de dernier accès est mise à jour (cela fait partie de la norme POSIX.1 c'est-à-dire IEEE 1003.1). Il existe des cas extrêmes où cela peut être prohibitif pour les performances. Dans ce cas, il est possible de l'éviter : dans la base de registre, il faut créer une clé NtfsDisableLastAccessUpdate (type DWORD, valeur 1) dans HKLM\SYSTEM\CurrentControlSet\Control\FileSystem.

Attention, cette modification du registre réduit la traçabilité du système (et, plus classiquement, une modification du registre ne doit être faite que par un informaticien).

Ce paramètre NtfsDisableLastAccessUpdate de Windows est l'équivalent du paramètre noatime d'Unix dans la commande mount (et dans le fichier de configuration fstab).

[modifier] Voir aussi

[modifier] Liens internes

[modifier] Liens externes

[modifier] Notes et références

  1. ab (en)How NTFS Works, sur le site TechNET de Microsoft.
    Limites s'appliquant à Windows 2000 (SP4), XP (SP1+) et Windows Server 2003 (lié aux implémentations de NTFS dans ses systèmes d'exploitation, sans ces Service Packs, la limite est encore moindre - puisqu'on se retrouve limité au modèle d'adressage "LBA28 bits" - soit 128 GiB). Ses limites sont liées au nombre maximum de clusters (232 - 1 pour la taille maximale de volume, et 228 - 1 pour la taille maximale de fichier), combinée avec la taille maximale d'un cluster, actuellement fixée à 64 KiB, c'est-à-dire un regroupement de maximum 128 (27 secteurs physiques de 512 bytes.
  2. ab Soit 264 clusters - 1, permis d'après l'architecture théorique de NTFS.