Les métadonnées n'occupent-elles aucune taille?


51

Je mets 4096 caractères dans un fichier texte et l'enregistre. Comme chaque caractère est constitué d'un octet, la taille du fichier texte doit être de 4 Ko.Comme vous le voyez ci-dessous, tout va bien:

entrez la description de l'image ici

Je connecte ma mémoire flash à mon ordinateur. l'espace libre sur la mémoire flash est en 1,717,518,336octets :

entrez la description de l'image ici

J'ai créé une copie du fichier dans ma mémoire flash. Et encore, jetez un coup d'œil à l'espace libre. il a des 1,717,514,240octets d'espace libre:

entrez la description de l'image ici

Voyons quelle est la différence:

1.717.518.336 - 1.717.514.240 =4096 octets


Ma question :

Q1:

Comme vous le voyez dans la dernière image ci-dessus, le seul espace occupé par le fichier sur le flash est l'espace pour son contenu [caractères]. Alors où est le fichier de métadonnées?

Je veux dire, quand je déplace le fichier sur un autre ordinateur, comment comprend-il le nom du fichier, le propriétaire du fichier, la date de création et de modification et ...?

N'occupe-t-il aucune taille? !!

Q2:

Puis-je voir le fichier de métadonnées dans la mémoire flash?

entrez la description de l'image ici

Appréciez votre temps et votre considération.


10
les métadonnées seraient contenues dans le système de fichiers lui-même. cela ne fait pas partie de la taille de fichier indiquée par Windows. De plus, les métadonnées FAT32 et NTFS seraient différentes.
Ramhound

@Ramhound lorsque je déplace le fichier texte vers la mémoire flash, ses fichiers de métadonnées se déplacent également vers la mémoire flash, non? comment je peux le voir?
TheGoodUser


1
Outre la compréhension des composants internes du système d'exploitation (qui en vaut la peine), il n'y a probablement aucune raison de consulter ou de modifier ces informations, sauf si vous écrivez un programme de réparation / récupération de disque. Pour une utilisation normale, vous ne voudrez jamais modifier les informations à ce niveau car cela pourrait facilement porter atteinte à l'intégrité du système de fichiers lui-même et de tout ce qui l'utilise.
Joe

3
Réponse courte: Cela prend de la place, mais cela ne fait pas partie de la taille du fichier.
user253751

Réponses:


50

Oui, les métadonnées occupent de l'espace. Sur NTFS, il occupe 1024 octets, pour être spécifique. Toutefois, les informations ne sont pas stockées dans le fichier, mais dans la table de fichiers maîtres MFT. Plus précisément dans l'enregistrement MFT n ° 4 $AttrDef.

Voir cet article de Technet pour plus de détails: la table 3.5 contient tous les enregistrements MFT définis.

Lorsqu'un volume est formaté avec NTFS, un fichier MFT (Master File Table) et d'autres métadonnées sont créés. Les métadonnées sont les fichiers utilisés par NTFS pour implémenter la structure du système de fichiers. NTFS réserve les 16 premiers enregistrements de la MFT pour les fichiers de métadonnées.

NTFS crée un enregistrement de fichier pour chaque fichier et un enregistrement de répertoire pour chaque répertoire créé sur un volume NTFS. La MFT comprend un enregistrement de fichier distinct pour la MFT elle-même. Ces enregistrements de fichiers et de répertoires sont stockés sur le MFT. Les attributs du fichier sont écrits dans l'espace alloué dans la MFT. Outre les attributs de fichier, chaque enregistrement de fichier contient des informations sur la position de l'enregistrement de fichier dans la MFT.

Notez que d'autres systèmes de fichiers peuvent traiter les métadonnées de manière différente.

EDIT: Il a été souligné dans la section des commentaires que cette réponse manque le point parce que l’OP a demandé des métadonnées sur les systèmes de fichiers FAT32, pas NTFS. Si je savais comment faire, je supprimerais l'attribut "réponse correcte". Par conséquent, je fournis des informations supplémentaires qui répondent à la question concernant FAT32.

FAT32 enregistre des métadonnées simples telles que la visibilité ou l'heure de modification de chaque fichier et dossier dans une entrée du dossier parent du fichier ou du dossier, en créant une arborescence à partir du dossier racine du système de fichiers. Comme indiqué en ce qui concerne NTFS, il ne s'agit pas d'un fichier, mais il est enregistré dans la structure de données du dossier. L'entrée avait à l'origine une taille de 32 octets et contenait les attributs suivants:

Name (8.3) xxxxxxxx.yyy. (88 bits)

Attribute byte (8 bits of information, described later in this section).

One reserved byte.

Create time (24 bits).

Create date (16 bits).

Last access date (16 bits).

Two reserved bytes.

Last modified time (16 bits).

Last modified date (16 bits).

Starting cluster number in the file allocation table (16 bits).

File size (32 bits).

La liste est extraite de cet article de Microsoft Technet et concerne FAT16. Étant donné que la taille de cluster de FAT32 peut être de 32 bits et que le nom des fichiers peut être plus long que 8.3, le tableau n'est pas totalement exact. Pour accepter les noms de fichiers longs et les disques plus grands, FAT32 modifie certains comportements qui peuvent être lus sur Wikipedia ici, mais l’idée de base est valable.


2
Vous pouvez utiliser NTFSinfo de la suite Sysinternal pour consulter les métadonnées et rechercher les extensions. Vous pouvez le télécharger ici: technet.microsoft.com/en-us/sysinternals/default Il existe plusieurs éditeurs de métadonnées, mais je ne peux en recommander aucun, car je ne les ai pas utilisés.
Bjanssen

9
Les métadonnées @ TheGoodUser-Sp, du moins sur NTFS, ne sont pas stockées dans "un fichier" au sens classique du terme, ce qui me donne l'impression que vous recherchez. Il n'y a pas quelque chose de caché dans le dossier \ windows quelque part que nous ne vous disons pas; Les métadonnées de fichier font partie intégrante du système de fichiers lui-même.
Rob Moir

2
Dans ce cas, le lecteur flash est formaté en FAT-32. Ainsi , le sont stockés dans Les métadonnées table d'allocation de fichiers (FAT) en.wikipedia.org/wiki/File_Allocation_Table
jnovacho

2
Il est important de noter que les tables d'allocation pour NTFS et FAT sont préallouées. Il diffère d’un format à l’autre, mais plusieurs secteurs sont généralement occupés par des blocs préalloués vides qui doivent être utilisés pour stocker des métadonnées afin de réduire la fragmentation.
Kaslai

2
Qu'est-ce qui vous fait penser que les métadonnées ont une taille fixe? La liste de contrôle d'accès peut varier considérablement en complexité. Je ne vois pas comment il peut toujours contenir 1024 octets (ainsi que toutes les autres métadonnées telles que les temps d'accès et de modification)
Ben Voigt

26

N'occupe-t-il aucune taille? !!

Oui, mais c'est une petite entrée dans un grand bloc pré-alloué. Ce bloc est compté dans la partie "utilisée" de votre disque. L'ajout d'une entrée à l'intérieur de ce bloc ne nécessite pas l'extension du bloc.

En fonction du système de fichiers, le bloc sera éventuellement rempli et étendu après l'ajout de nombreux noms de fichiers.

Puis-je voir le fichier de métadonnées dans la mémoire flash?

Pas facilement

Comme le commentaient Ruslan et Blorgbeard. Vous pouvez installer un visualiseur hexadécimal tel que HxD qui vous permettra de visualiser (et de modifier - soyez très prudent) les données brutes du système de fichiers. Mais vous devrez interpréter vous-même quels octets appartiennent à quelles structures de système de fichiers. Pour cela, vous aurez besoin d’une bonne documentation sur le système de fichiers spécifique utilisé sur le disque flash. FAT32 sera probablement plus simple à comprendre que l’une des nombreuses variantes de NTFS. Voir Comprendre les systèmes de fichiers FAT32, par exemple.


3
@ TheGood Si je suis privé de Google, je commencerais probablement par démarrer Linux et par ddcopier le système de fichiers flash brut dans un fichier sur un autre disque, puis utiliser un visualiseur hexadécimal pour l'examiner conjointement avec un bon travail de référence sur le système de fichiers spécifique. (si non exclusif et non divulgué). Je pourrais faire un changement de métadonnées avec touch, répéter le ddet utiliser un diff binaire.
RedGrittyBrick

1
Heureusement que je ne suis pas privé de Google.
Cthulhu

5
@Cthulhu: Les anciens n'ont pas besoin du necronomicon. fhtagn.
RedGrittyBrick

2
Il n'est pas nécessaire de changer de système d'exploitation pour utiliser directement une visionneuse hexadécimale sur un disque dur. Il suffit d'utiliser un lecteur hexagonal décent. (Il semble même hiewpouvoir le faire, mais je ne suis pas sûr depuis que je suis sur Windows il y a longtemps).
Ruslan

1
HxD le fera certainement, sous Windows. Menu Extras, Open Disk.
Blorgbeard

7

Les métadonnées ne sont pas stockées (ni signalées par les outils de gestion de fichiers habituels) sous forme de fichiers, elles sont stockées sur les données du système de fichiers sur disque.

Selon la nature / la version du système de fichiers, chaque entrée prendra une certaine quantité d’espace disque pour représenter les informations de métadonnées.

En outre, outre l’espace alloué dans la table des fichiers maîtres, certains systèmes de fichiers conservent également le journal des modifications de fichiers (en prenant de l’espace supplémentaire), et certains systèmes de fichiers peuvent même être étendus avec des champs supplémentaires contenant des métadonnées à usage spécifique.

Donc, techniquement, les métadonnées prennent de l’espace disque, mais la plupart des utilitaires de gestion de fichiers n’en prennent pas compte, ce qui fonctionne en appelant l’API du système qui interroge le système de fichiers sur l’ espace fichier , et non sur l’ espace métadonnées .

Et cette abstraction n'est que la partie visible de l'iceberg, car le système de fichiers lui-même fonctionne sur une abstraction de l'espace disque physique sous-jacent, fourni par les routines de disque de bas niveau. Ainsi, seule la logique interne du disque saura combien de positions de mémoire réelles sont disponibles pour les niveaux supérieurs. et combien sont marqués comme non fiables, réservés ou utilisés pour la somme de contrôle.


3

Les métadonnées dépendent du système de fichiers. Les systèmes de fichiers les plus élémentaires généralement utilisés sur des supports échangeables sont basés sur un système de fichiers DOS (FAT). DOS n'a pas d'utilisateurs, et les autorisations. Ou, plus correctement, certaines de ces informations sont contenues dans le huitième bit de données du nom de fichier. La seule ressource supplémentaire utilisée dans un système de fichiers DOS de base consiste à comptabiliser les blocs du fichier ou le répertoire dans lequel il se trouve. Ce bloc est probablement déjà validé pour le traitement de ".". IOW, ajouter un fichier vide n’ajouterait pas un autre espace de stockage, mais modifierait certains bits existants consommés et alloués.

Lorsque vous utilisez des systèmes de fichiers plus avancés, avec journalisation et utilisateurs, vous obtenez des métadonnées, des entrées de journal et éventuellement une chaîne d'investigation pour récupérer les versions de fichier précédentes, etc. Ensuite, un petit fichier peut exploser dans la mémoire utilisée.

Alors, vérifiez le type de FS. S'il s'agit de FAT, aucun utilisateur ne sera probablement enregistré dans les métadonnées du support. Par conséquent ... pas d'espace utilisé. :)

Un bon exemple de FS FAT est une implémentation open source - et vous pouvez voir que la liste des opérations disponibles ne comprend pas "obtenir / définir un utilisateur" ni "vérifier l'accès par utilisateur". Pas d'identité = pas de stockage de cette identité.


2

Comme vous le voyez dans la dernière image ci-dessus, le seul espace occupé par le fichier sur le flash est l'espace pour son contenu [caractères]. Alors où est le fichier de métadonnées?

Le "fichier de métadonnées" est le répertoire qui contient le fichier. C'est en gros ce qu'est un répertoire - une collection de métadonnées décrivant le contenu du répertoire.

Je veux dire, quand je déplace le fichier sur un autre ordinateur, comment comprend-il le nom du fichier, le propriétaire du fichier, la date de création et de modification et ...?

N'occupe-t-il aucune taille? !!

Oui, dans le répertoire. Dans la plupart des systèmes de fichiers, un même fichier peut avoir deux noms différents s'il est lié à deux répertoires différents.

Puis-je voir le fichier de métadonnées dans la mémoire flash?

Si votre système de fichiers le supporte, vous pouvez le voir en regardant la taille du répertoire.


2

Où les métadonnées sont-elles conservées?

Lorsque nous parlons de métadonnées, il existe deux types de métadonnées.

Le premier type comprend la date de création, la date de dernière modification et la date du dernier accès. Selon le système de fichiers (c.-à-d. NTFS / FAT / Ext3, etc.), différentes "métadonnées" seront disponibles, par exemple le propriétaire de Windows et l'autorisation sur NTFS.

Le premier type s'applique à tous les fichiers, par exemple le fichier .txt de votre exemple.

Tous les systèmes de fichiers pré-allouent des espaces pour contenir ces métadonnées dans la table de fichiers principale (MFT pour NTFS, d'autres noms pour un autre système de fichiers), qui n'est pas directement accessible par les utilisateurs. Comme MFT n'est pas compté dans la capacité du lecteur, aucun espace de stockage "supplémentaire" n'est requis.

Le deuxième type de "métadonnées" est défini par le type de fichier ou l'application. Par exemple, les documents Office conservent "Auteur", "Objet" et d'autres métadonnées. Les images JPEG conservent un ensemble de données EXIF, notamment "date prise de la photo", "modèle d'appareil photo", "vitesse d'obturation"; tandis que le son MP3 contient "album", "piste #", "bitrate" ...

Le second type occupe plus de place, car ces "métadonnées" font partie du fichier.


Taille différente dans le lecteur différent

Lorsque votre fichier texte est activé, C:\il prend 4K. Il devient 1K lorsque vous le mettez sur votre lecteur flash H:\. Cela est dû au fait que la "taille de bloc" est différente pour les différentes partitions.

Les fichiers sont des espaces alloués en bloc. Par conséquent, sur un système de fichiers de taille de bloc 4K, 4K sont alloués à 1 octet, tandis que 8K sont affectés à 4 097 octets (4K + 1 octet).

Apparemment, votre C:est formaté avec une taille de bloc de 4K, alors qu'il H:est formaté avec une taille de bloc de 1K, ce qui entraîne une différence.


Lorsque je copie un fichier texte vierge dans une mémoire flash, ses métadonnées sont également déplacées vers la mémoire flash. maintenant, y at-il un moyen, sous Linux par exemple, de voir le fichier de métadonnées? en binaire par exemple.
TheGoodUser

La copie des métadonnées dépend de la manière dont vous le faites. Par exemple, robocopyvous avez la possibilité de copier des horodatages, des attributs, des informations sur le propriétaire, des listes de contrôle d'accès (ACL), etc. Cela dépend également du fait que le système de fichiers de votre mémoire flash le prenne en charge jeté quand même). Les métadonnées ne sont pas sous forme de fichier, vous ne pouvez donc pas voir les données brutes; si vous voulez voir des choses de bas niveau dont vous pourriez avoir besoin ddsous Linux, leur interprétation est une autre histoire.
Kenneth L
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.