Comment les métadonnées des fichiers sont-elles stockées dans Windows?

13

(J'utilise Windows XP mais je suppose que c'est similaire dans toutes les versions récentes de Windows.)

Lorsque vous créez par exemple un nouveau document texte vide , vous constaterez dans ses propriétés qu'il a une taille de 0 octet. Zéro octet signifie aucune information . Pas de données.
Mais encore, le fichier a un nom, il peut toujours porter les dates de dernier accès, modification et création. Il transporte les informations, que ce soit un fichier caché ou non, qu'il soit en lecture seule ou non ...

Alors, où sont stockées toutes les métadonnées?

Jeyekomon
la source
il n'y a pas de magie ici. Lisez ces réponses ici: stackoverflow.com/questions/4954991/…
HighTechGeek
Il y a longtemps, je me souviens que j'avais un type de virus qui corrompait en quelque sorte quelques fichiers sur mon PC, de sorte qu'ils semblaient avoir une taille d'environ 100 Go. Chacune d'entre elles. Sur mon disque dur de 40 Go. Il doit donc y avoir eu une sorte de magie ... :-D
Jeyekomon
1
Par exemple: ntfs.com/ntfs_basics.htm
Koray Tugay

Réponses:

11

On vous a appris que les disques durs contiennent des fichiers, mais ce n'est pas toute la vérité. En fait, les disques durs contiennent un très, très grand nombre exprimé par beaucoup de bits simples. Mais cette interprétation n'a aucun sens pour vous ni pour votre ordinateur, car le traitement de grands nombres simples n'est pas très courant (et je parle de nombres VRAIMENT ÉNORMES). Au lieu de cela, l'ordinateur le divise en «mots» plus petits (8 bits, 16 bits, 32 bits ou autre) et les utilise comme ça. Pourtant, ce n'est qu'un tas de mots (supposons des mots de 8 bits, c'est-à-dire des octets).

Maintenant, ce lecteur est partitionné. J'ai expliqué pourquoi le partitionnement est une bonne idée dans cette réponse :

De manière générale, les lecteurs peuvent être utilisés sans partitionnement. La plupart des clés USB fonctionnent comme ça. Mais l'utilisation de partitions présente de nombreux avantages, pour n'en nommer que quelques-unes:

  • Vous pouvez avoir deux systèmes d'exploitation assis sur le même disque dur et ne pas interférer l'un avec l'autre. Chacun traitera sa partition comme un lecteur logique et ne jouera pas avec les autres sauf si vous le lui dites.
  • Vous pouvez logiquement séparer vos données. Si une partition est corrompue pour une raison quelconque, les autres partitions resteront très probablement intactes.
  • Il est préférable d'utiliser des partitions que d'utiliser plusieurs disques durs plus petits, car votre système est plus silencieux, consomme moins d'énergie et vous pouvez les redimensionner, les supprimer, les déplacer, etc.
  • Vous pouvez utiliser certaines parties du disque dur à des fins spéciales.

Maintenant, chaque partition a son propre système de fichiers. Les versions modernes de Windows utilisent NTFS , mais FAT , FAT32 et exFAT sont pris en charge pour les supports externes ou les partitions héritées. Les installations Linux à usage quotidien utilisent généralement des systèmes de fichiers ext , ext4 étant le dernier.

Le système de fichiers définit la façon dont les fichiers sont physiquement situés sur le disque. Vous pouvez le voir comme ceci: si vous aviez un livre de 10000 pages sans chapitres, numéros de page ou sauts de ligne, il serait très difficile à utiliser. Bien sûr, les numéros de page et les titres de chapitre prennent de la place sur la page, mais ils rendent l'utilisation du livre beaucoup plus facile et plus rapide. Si vous voulez passer au chapitre, disons, 42, il vous suffit de le rechercher dans la table des matières. Ensuite, vous feuilletez le livre jusqu'à ce que vous trouviez le chapitre que vous voulez. Vos fichiers sont des chapitres et votre système de fichiers est le livre. Les métadonnées du système de fichiers, telles que les limites des fichiers, les noms de fichiers, etc. prennent également de l'espace, mais c'est une quantité d'espace relativement petite, et cela fait fonctionner les choses beaucoup plus rapidement.

Si votre "chapitre" est vide, il peut toujours avoir un en-tête ou un numéro de page, non? Le fichier vide contient zéro octet de données. Les métadonnées prennent de l'espace, mais elles ne font pas partie du fichier, mais du système de fichiers. Sinon, vous verriez des noms de fichiers dans vos fichiers texte?

Soit dit en passant, c'est pourquoi les premières versions de DOS n'acceptaient que 8,3 noms - l'espace réservé aux noms de fichiers était très limité. NTFS autorise les noms de fichiers de 255 caractères [1] .


Encore un mot sur votre commentaire:

J'avais l'habitude d'avoir une sorte de virus qui corrompait en quelque sorte quelques fichiers dans mon PC de sorte qu'ils semblaient avoir une taille d'environ 100 Go. Chacune d'entre elles. Sur mon disque dur de 40 Go. Il doit donc y avoir eu une sorte de magie ... :-D

Il est tout à fait possible d'avoir des fichiers valides plus gros que votre disque dur grâce à une fonctionnalité appelée fichiers clairsemés . Hennes en a une excellente explication dans son commentaire sur cette question :

Imaginez un classeur capable de contenir 100 pages. Si vous utilisez ce classeur comme fichier normal, vous pouvez insérer 100 pages. Vous pourriez lire tous les 100. Vous pourriez écrire à tous les 100. Imaginez maintenant un classeur clairsemé. Vous insérez la première page que vous écrivez "page 1: Contenu A". Vous insérez ensuite une deuxième page que vous écrivez "page 9999: contenu b:". Chaque fois que vous essayez de lire une page, vous regardez si elle existe. Si ce n'est pas le cas, votre réponse sera qu'il s'agit d'une page vide. S'il existe, vous retournez le contenu de la page. Chaque fois que vous écrivez sur une page qui n'existe pas encore dans le classeur, vous ajoutez une nouvelle feuille de papier.

gronostaj
la source
Sinon, vous verriez des noms de fichiers dans vos fichiers texte? Eh bien, de nombreux types de fichiers riches comme des images ou des fichiers PDF peuvent contenir beaucoup de métadonnées. Même les simples fichiers texte encodés en UTF-8 contiennent une séquence EFBBBF qui est cachée par la plupart des éditeurs de texte, donc je m'attendais à ce que les métadonnées du fichier soient juste une autre partie cachée et inaccessible du fichier. Quoi qu'il en soit, vous seriez un professeur génial! Chaque réponse donnée ici a été (et sera) vraiment utile d'une certaine manière, mais j'apprécie le plus vos efforts.
Jeyekomon
Cela ne répond pas à la question, n'est-ce pas? Alors, où sont stockées toutes les métadonnées?
Koray Tugay
@KorayTugay Je pense que la vraie question était "Comment les métadonnées des fichiers sont-elles stockées dans Windows afin qu'elles ne prennent pas de place ". À mon avis, la meilleure réponse que vous pouvez donner dans un message Super User est d'expliquer qu'ils sont stockés dans le système de fichiers, pas directement dans le fichier, et c'est pourquoi ils ne comptent pas dans la taille du fichier. Ils sont dans le livre, mais pas en tant que partie du texte.
gronostaj
7

Je viens d'apprendre aujourd'hui sur les flux de données alternatifs (ADS) de Windows. Il s'agit d'une fourchette de ressources cachée attachée à un fichier. Il fait partie de NTFS depuis Windows NT 3.1.

Par exemple, si vous avez un fichier texte vide mais que vous remplissez certaines des informations récapitulatives dans la balise de propriété du fichier, un fichier ADS masqué est créé et attaché au fichier texte. La plupart des versions de Windows n'incluent pas la taille du fichier ADS lors de la notification de la taille du fichier d'origine.

Vous pouvez créer et afficher des fichiers ADS à partir d'une invite de commande.

echo "ABCDE" > test.txt:hidden.txt

va créer un fichier test.txt avec un fichier ADS appelé hidden.txt

vous pouvez utiliser cette commande pour modifier le fichier:

notepad test.txt:hidden.txt

Voici un article facile à lire qui va plus en détail.

HighTechGeek
la source
C'est vraiment une chose intéressante! En fait, je n'en ai jamais entendu parler aussi ... Merci.
Jeyekomon
@Jeyekomon il semble que 'type' ne le supporte pas, pastebin.com/raw/4Ae3GGkN mais je vois l'écho et le bloc-notes faire (testé dans win7)
barlop
2

J'ai fait une recherche et suis tombé sur une question similaire posée sur Stack Overflow.

Il dit essentiellement que le fichier est créé et prend quelques octets ou un cluster de disques durs, etc. Cela dépend de la granularité du disque dur et du système de fichiers, etc.

Ils en discutent ici: /programming/4954991/are-0-bytes-files-really-0-bytes

avec des liens supplémentaires pour d'autres recherches.

HighTechGeek
la source
2

Sur un volume NTFS, ces informations sont stockées dans des métafichiers. En particulier, le nom de fichier et les horodatages sont stockés dans un métafichier appelé $ MFT. Les métafichiers ne sont pas accessibles par les méthodes Windows normales comme l'Explorateur ou l'invite de commande.

Pour plus de lecture:

http://ntfs.com/ntfs-system-files.htm

http://en.wikipedia.org/wiki/NTFS

David Marshall
la source
Je vous remercie. La réponse réside donc dans une meilleure compréhension du système de fichiers de mon disque dur ... Et juste par curiosité - connaissez-vous une méthode Windows "anormale"? Celui qui est réellement utile pour accéder à ces métafichiers? Quelques mots-clés pour Google suffiraient ...
Jeyekomon
1
@Jeyekomon Vous devez utiliser un éditeur de secteur. Il y a un exemple ici: blogs.technet.com/b/askcore/archive/2013/03/01/…
David Marshall