Nehmen Metadaten keine Größe ein?

51

Ich füge 4096 Zeichen in eine Textdatei ein und speichere sie. Da jedes Zeichen 1 Byte lang ist, muss die Größe der Textdatei 4 KB betragen. Wie Sie unten sehen, ist das in Ordnung:

Bildbeschreibung hier eingeben

Ich verbinde meinen Flash-Speicher mit meinem Computer. Der freie Speicherplatz im Flash-Speicher beträgt 1,717,518,336Bytes :

Bildbeschreibung hier eingeben

Ich habe eine Kopie der Datei in meinem Flash-Speicher erstellt. Und noch einmal einen Blick auf den freien Platz. Es hat 1,717,514,240Bytes freien Speicherplatz:

Bildbeschreibung hier eingeben

Mal sehen, was der Unterschied ist:

1,717,518,336 - 1,717,514,240 =4096 Bytes


Meine Frage :

Q1:

Wie Sie im letzten Bild oben sehen, ist der einzige Speicherplatz, den die Datei auf dem Flash belegt, der Speicherplatz für ihren Inhalt [Zeichen]. Wo befindet sich also die Metadatendatei?

Ich meine, wenn ich die Datei auf einen anderen Computer verschiebe, wie versteht sie den Namen der Datei, den Eigentümer der Datei, das Erstellungs- und Änderungsdatum und ...?

Besetzt es keine Größe? !!

Q2:

Kann ich die Metadatendatei im Flash-Speicher sehen?

Bildbeschreibung hier eingeben

Schätzen Sie Ihre Zeit und Überlegung.

TheGoodUser
quelle
10
Metadaten wären im Dateisystem selbst enthalten. Dies ist nicht Teil der von Windows gemeldeten Dateigröße. Darüber hinaus wären FAT32- und NTFS-Metadaten unterschiedlich.
Ramhound
@Ramhound Wenn ich die Textdatei in den Flash-Speicher verschiebe, werden auch die Metadaten in den Flash-Speicher verschoben, oder? wie kann ich das sehen
TheGoodUser
1
Abgesehen davon, dass Sie die internen Aspekte des Betriebssystems verstehen (was sich von selbst lohnt), gibt es wahrscheinlich keinen Grund, diese Informationen jemals zu prüfen oder zu ändern, es sei denn, Sie schreiben ein Programm zur Reparatur / Wiederherstellung von Festplatten. Bei normaler Verwendung sollten Sie Informationen auf dieser Ebene niemals ändern, da dies die Integrität des Dateisystems selbst und aller Elemente, die es verwenden, gefährden kann.
Joe
3
Kurze Antwort: Es belegt zwar Speicherplatz, wird jedoch nicht zur Dateigröße gezählt.
user253751

Antworten:

50

Ja, Metadaten belegen Platz. Unter NTFS belegt es 1024 Bytes, um genau zu sein. Die Informationen werden jedoch nicht in der Datei gespeichert, sondern in der Masterdateitabelle MFT. Speziell in MFT-Datensatz Nr. 4 $AttrDef.

Weitere Informationen finden Sie in diesem Technet-Artikel : Tabelle 3.5 enthält alle definierten MFT-Datensätze.

Wenn ein Volume mit NTFS formatiert wird, werden eine MFT-Datei (Master File Table) und andere Metadaten erstellt. Metadaten sind die Dateien, mit denen NTFS die Dateisystemstruktur implementiert. NTFS reserviert die ersten 16 Datensätze der MFT für Metadatendateien.

NTFS erstellt einen Dateidatensatz für jede Datei und einen Verzeichnisdatensatz für jedes auf einem NTFS-Volume erstellte Verzeichnis. Die MFT enthält einen separaten Dateidatensatz für die MFT selbst. Diese Datei- und Verzeichniseinträge werden in der MFT gespeichert. Die Attribute der Datei werden in den zugewiesenen Speicherplatz in der MFT geschrieben. Neben den Dateiattributen enthält jeder Dateidatensatz Informationen zur Position des Dateidatensatzes in der MFT.

Beachten Sie, dass andere Dateisysteme mit Metadaten anders umgehen können.

BEARBEITEN: In den Kommentaren wurde darauf hingewiesen, dass diese Antwort den Punkt verfehlt, weil das OP nach Metadaten für FAT32-Dateisysteme und nicht für NTFS fragte. Wenn ich wüsste wie, würde ich das Attribut "richtige Antwort" entfernen. Daher stelle ich zusätzliche Informationen zur Verfügung, die die Frage zu FAT32 beantworten.

FAT32 speichert einfache Metadaten wie Sichtbarkeit oder Änderungszeit für jede Datei und jeden Ordner in einem Eintrag im übergeordneten Ordner der Datei oder des Ordners und erstellt einen Baum unterhalb des Stammordners des FS. Wie in Bezug auf NTFS bereits erwähnt, handelt es sich hierbei nicht um eine Datei, sondern um eine Datei, die in der Ordnerdatenstruktur gespeichert wird. Der Eintrag war ursprünglich 32 Byte groß und enthielt die folgenden Attribute:

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

Die Liste wurde aus diesem Microsoft Technet-Artikel entnommen und bezieht sich auf FAT16. Da die Clustergröße von FAT32 32 Bit und der Name von Dateien länger als 8.3 sein kann, ist die Tabelle nicht ganz genau. Um langen Dateinamen und größeren Datenträgern Rechnung zu tragen, ändert FAT32 einige Verhaltensweisen, die in der Wikipedia hier nachgelesen werden können, aber die Grundidee gilt.

Bjanssen
quelle
2
Sie können die NTFS-Informationen der Sysinternal Suite verwenden, um Metadaten zu durchsuchen und alle Erweiterungen zu finden. Sie können es hier herunterladen: technet.microsoft.com/en-us/sysinternals/default Es gibt mehrere Metadaten-Editoren, aber ich kann keinen empfehlen, da ich sie nicht verwendet habe.
Bjanssen
9
@ TheGoodUser-Sp-Metadaten werden zumindest in NTFS nicht in einer "Datei" im herkömmlichen Sinne gespeichert. Ich habe den Eindruck, dass Sie danach suchen. Es ist nicht etwas , in dem Ordner \ Windows versteckt irgendwo , dass wir alle gerade nicht Sie sagen; Dateimetadaten sind ein wesentlicher Bestandteil des Dateisystems.
Rob Moir
2
In diesem Fall ist das Flash-Laufwerk als FAT-32 formatiert. Daher werden die Metadaten in der Dateizuordnungstabelle (File Allocation Table, FAT) en.wikipedia.org/wiki/File_Allocation_Table
jnovacho
2
Es ist wichtig zu beachten, dass die Zuordnungstabellen für NTFS und FAT vorab zugeordnet sind. Es unterscheidet sich von Format zu Format, aber einige Sektoren sind normalerweise mit leeren vorab zugewiesenen Blöcken belegt, die zum Speichern von Metadaten verwendet werden sollen, um die Fragmentierung zu verringern.
Kaslai
2
Was lässt Sie glauben, dass Metadaten eine feste Größe haben? Die Zugriffskontrollliste kann sicherlich sehr unterschiedlich komplex sein. Ich verstehe nicht, wie es immer in 1024 Bytes passen kann (zusammen mit allen anderen Metadaten wie Zugriff und Änderungszeiten)
Ben Voigt
26

Besetzt es keine Größe? !!

Ja, aber es ist ein kleiner Eintrag in einem großen vorab zugewiesenen Block. Dieser Block wird im "verwendeten" Teil Ihrer Festplatte gezählt. Wenn Sie einen Eintrag innerhalb dieses Blocks hinzufügen, muss der Block nicht erweitert werden.

Abhängig vom Dateisystem wird der Block eventuell gefüllt und erweitert, nachdem viele Dateinamen hinzugefügt wurden.

Kann ich die Metadatendatei im Flash-Speicher sehen?

Nicht einfach

Wie Ruslan und Blorgbeard kommentierten. Sie können einen Hex-Viewer wie HxD installieren , mit dem Sie die Rohdaten des Dateisystems anzeigen (und bearbeiten - seien Sie sehr vorsichtig) können. Sie müssen jedoch selbst die Interpretation vornehmen, welche Bytes zu welchen Dateisystemstrukturen gehören. Dazu benötigen Sie eine gute Dokumentation des auf der Flash-Disk verwendeten Dateisystems. FAT32 ist wahrscheinlich einfacher zu verstehen als eine der vielen Varianten von NTFS. Siehe beispielsweise Grundlegendes zu FAT32-Dateisystemen .

RedGrittyBrick
quelle
3
@TheGood Wenn ich Google beraubt hätte, würde ich wahrscheinlich anfangen, Linux zu booten und das unformatierte ddFlash-Dateisystem in eine Datei auf einer anderen Festplatte zu kopieren. Verwenden Sie dann einen Hex-Viewer, um es in Verbindung mit einem guten Nachschlagewerk über das bestimmte Dateisystem zu untersuchen (falls nicht proprietär und nicht bekannt). Ich könnte eine Metadatenänderung mit vornehmen touch, die wiederholen ddund ein binäres Diff verwenden.
RedGrittyBrick
1
Gut, dass mir Google nicht vorenthalten wird.
Cthulhu
5
@Cthulhu: Die Alten brauchen das Necronomicon nicht. fhtagn.
RedGrittyBrick
2
Das Betriebssystem muss nicht geändert werden, um einen Hex-Viewer direkt auf einer Festplatte zu verwenden. Verwenden Sie einfach einen anständigen Hex-Viewer. (Es scheint sogar hiewmöglich zu sein, aber ich bin mir nicht sicher, seit ich vor langer Zeit auf Windows war).
Ruslan
1
HxD wird es auf jeden Fall unter Windows tun. Menü Extras, Datenträger öffnen.
Blorgbeard
7

Metadaten werden nicht als Dateien gespeichert (noch von üblichen Dateiverwaltungs-Tools gemeldet), sondern auf den Daten des Dateisystems auf der Festplatte gespeichert.

Je nach Art / Version des Dateisystems benötigt jeder Eintrag Speicherplatz, um die Metadateninformationen darzustellen.

Neben dem in der Masterdateitabelle zugewiesenen Speicherplatz führen einige Dateisysteme auch ein Journal über Änderungen an Dateien (wobei zusätzlicher Speicherplatz benötigt wird), und einige Dateisysteme können sogar mit zusätzlichen Feldern erweitert werden, die spezielle Metadaten enthalten.

Technisch gesehen belegen Metadaten also Speicherplatz, werden jedoch von den meisten Dateiverwaltungsdienstprogrammen, die die API des aufrufenden Systems aufrufen, die das Dateisystem nach Dateibereich und nicht nach Metadatenbereich abfragt , nicht berücksichtigt .

Und diese Abstraktion ist nur die Spitze des Eisbergs, da das Dateisystem selbst an einer Abstraktion des zugrunde liegenden physischen Speicherplatzes arbeitet, der durch Festplattenroutinen auf niedriger Ebene bereitgestellt wird, sodass tatsächlich nur die interne Logik der Festplatte weiß, wie viele tatsächliche Speicherpositionen für höhere Ebenen verfügbar sind und wie viele werden als nicht zuverlässig markiert, reserviert oder für die Prüfsumme verwendet.

Würfel9
quelle
3

Die Metadaten hängen vom Dateisystem ab. Die grundlegendsten Dateisysteme, die normalerweise auf austauschbaren Medien verwendet werden, basieren auf einem DOS-Dateisystem (FAT). DOS hat keine Benutzer und Berechtigungen. Oder genauer gesagt, ein Teil dieser Informationen wird im achten Datenbit des Dateinamens übertragen. Der einzige Ressourcen-Overhead, der in einem grundlegenden DOS-FS verwendet wird, besteht darin, die Blöcke der Datei oder das Verzeichnis, in dem sie sich befindet, zu berücksichtigen - und dieser Block ist wahrscheinlich bereits für die Verarbeitung von "." Festgeschrieben. Wenn Sie eine leere Datei hinzufügen, wird kein weiterer Speicher hinzugefügt, es werden jedoch einige vorhandene belegte und zugewiesene Bits geändert .

Wenn Sie fortgeschrittenere Dateisysteme mit Journalling und Benutzern verwenden, erhalten Sie Metadaten und Journaleinträge und möglicherweise eine forensische Kette, um frühere Dateiversionen usw. wiederherzustellen. Dann kann eine kleine Datei im verwendeten Speicher explodieren.

Überprüfen Sie also den FS-Typ. Wenn es sich um FAT handelt, haben Sie wahrscheinlich keinen Benutzer, der in Metadaten auf dem Medium aufgezeichnet ist. Daher ... kein Platz verwendet. :)

Ein gutes Beispiel für eine FAT FS ist eine Open Source-Implementierung - und Sie sehen, dass die Liste der verfügbaren Vorgänge nicht "Benutzer abrufen / festlegen" und "Benutzerzugriff prüfen" enthält. Keine Identität = keine Speicherung dieser Identität.

JezC
quelle
2

Wie Sie im letzten Bild oben sehen, ist der einzige Speicherplatz, den die Datei auf dem Flash belegt, der Speicherplatz für ihren Inhalt [Zeichen]. Wo befindet sich also die Metadatendatei?

Die "Metadatendatei" ist das Verzeichnis, das die Datei enthält. Das ist im Grunde genommen ein Verzeichnis - eine Sammlung von Metadaten, die den Inhalt des Verzeichnisses beschreiben.

Ich meine, wenn ich die Datei auf einen anderen Computer verschiebe, wie versteht sie den Namen der Datei, den Eigentümer der Datei, das Erstellungs- und Änderungsdatum und ...?

Besetzt es keine Größe? !!

Ja, im Verzeichnis. In den meisten Dateisystemen kann dieselbe Datei zwei verschiedene Namen haben, wenn sie in zwei verschiedenen Verzeichnissen verknüpft ist.

Kann ich die Metadatendatei im Flash-Speicher sehen?

Wenn Ihr Dateisystem dies unterstützt, können Sie dies an der Größe des Verzeichnisses ablesen.

David Schwartz
quelle
2

Wo werden Metadaten gespeichert?

Wenn wir über Metadaten sprechen, gibt es zwei Arten von Metadaten.

Der erste Typ umfasst das Erstellungsdatum, das Datum der letzten Änderung und das Datum des letzten Zugriffs. Je nach Dateisystem (z. B. NTFS / FAT / Ext3 usw.) stehen unterschiedliche "Metadaten" zur Verfügung, z. B. Windows-Besitzer und Berechtigungen für NTFS.

Der erste Typ gilt für alle Dateien, z. B. die TXT-Datei in Ihrem Beispiel.

Alle Dateisysteme weisen Speicherplätze vorab zu, um diese Metadaten in der Masterdateitabelle (MFT für NTFS, einige andere Namen für andere Dateisysteme) zu enthalten, auf die Benutzer nicht direkt zugreifen können. Da MFT nicht zur Laufwerkskapazität zählt, wird ohnehin kein "zusätzlicher" Speicherplatz benötigt.

Der zweite Typ von "Metadaten" wird durch den Dateityp oder die Anwendung definiert. In Office-Dokumenten werden beispielsweise "Autor", "Betreff" und andere Metadaten gespeichert. JPEG-Bilder enthalten eine Reihe von EXIF-Daten, darunter "Aufnahmedatum", "Kameramodell" und "Verschlusszeit". während MP3-Sound "album", "track #", "bitrate" enthält ...

Der zweite Typ belegt zusätzlichen Speicherplatz, da diese "Metadaten" Teil der Datei sind.


Unterschiedliche Größe in unterschiedlichem Laufwerk

Wenn Ihre Textdatei aktiviert ist C:\, nimmt sie 4 KB in Anspruch. Es wird 1 KB groß, wenn Sie es auf Ihrem Flash-Laufwerk ablegen H:\. Dies liegt daran, dass die verschiedenen Partitionen unterschiedliche "Blockgrößen" aufweisen.

Dateien werden in Blöcken Speicherplätze zugewiesen. Daher wird in einem Dateisystem mit einer Blockgröße von 4 KB 1 Byte 4 KB zugewiesen, während 4.097 Byte (4 KB + 1 Byte) 8 KB zugewiesen werden.

Anscheinend ist Ihr C:mit 4 H:KB Blockgröße formatiert, während mit 1 KB Blockgröße formatiert ist, was zu dem Unterschied führt.

Kenneth L
quelle
Wenn ich eine leere Textdatei in einen Flash-Speicher kopiere, werden auch deren Metadaten in den Flash-Speicher verschoben. Nun, gibt es in Linux zum Beispiel eine Möglichkeit, die Metadatendatei zu sehen? in binär zum Beispiel.
TheGoodUser
Ob die Metadaten kopiert werden, hängt davon ab, wie Sie es tun. Beispielsweise können robocopySie festlegen, ob Zeitstempel, Attribute, Eigentümerinformationen, Zugriffssteuerungslisten (ACL) usw. kopiert werden sollen. Dies hängt auch davon ab, ob das Dateisystem in Ihrem Flash-Speicher dies unterstützt (z. B. behält FAT32 Eigentümerinformationen und ACL nicht bei, so wie sie sind) sowieso weggeworfen). Metadaten liegen nicht in Form einer Datei vor, sodass Sie die Rohdaten nicht sehen können. Wenn Sie Dinge auf niedriger Ebene sehen möchten, die Sie unter ddLinux benötigen, aber wie Sie sie interpretieren, ist eine andere Geschichte.
Kenneth L