Wie werden die Dateimetadaten in Windows gespeichert?

13

(Ich verwende Windows XP, aber ich denke, es ist in allen neueren Windows-Versionen ähnlich.)

Wenn Sie beispielsweise ein neues leeres Textdokument erstellen , finden Sie in seinen Eigenschaften eine Größe von 0 Byte. Null Bytes bedeuten keine Informationen . Keine Daten.
Trotzdem hat die Datei einen Namen und kann die Daten des letzten Zugriffs, der Änderung und der Erstellung enthalten. Es enthält die Informationen, ob es sich um eine versteckte Datei handelt oder nicht, ob es schreibgeschützt ist oder nicht ...

Wo werden also alle Metadaten gespeichert?

Jeyekomon
quelle
Hier gibt es keine Magie. Lesen Sie diese Antworten hier: stackoverflow.com/questions/4954991/…
HighTechGeek
Ich erinnere mich, dass ich vor langer Zeit eine Art Virus hatte, der ein paar Dateien auf meinem PC irgendwie beschädigt hat, so dass sie ungefähr 100 GB groß zu sein schienen. Jeder von ihnen. Auf meiner 40GB Festplatte. Es muss also eine Art Magie gegeben haben ... :-D
Jeyekomon
1
Zum Beispiel: ntfs.com/ntfs_basics.htm
Koray Tugay

Antworten:

11

Sie haben gelernt, dass Festplatten Dateien enthalten, aber das ist nicht die ganze Wahrheit. Tatsächlich enthalten Festplatten eine sehr, sehr große Zahl, die durch viele einzelne Bits ausgedrückt wird. Aber diese Interpretation macht weder für Sie noch für Ihren Computer Sinn, da die Verarbeitung einzelner großer Zahlen nicht sehr häufig ist (und ich spreche von WIRKLICH RIESIGEN Zahlen). Stattdessen teilt der Computer es in kleinere "Wörter" (8-Bit, 16-Bit, 32-Bit oder was auch immer) auf und verwendet es so. Trotzdem sind das nur ein paar Wörter (nehmen wir 8-Bit-Wörter an, dh Bytes).

Dieses Laufwerk ist jetzt partitioniert. Ich habe in dieser Antwort erklärt, warum Partitionierung eine gute Idee ist :

Im Allgemeinen können Laufwerke ohne Partitionierung verwendet werden. Die meisten Pendrives funktionieren so. Die Verwendung von Partitionen hat jedoch viele Vorteile, um nur einige zu nennen:

  • Sie können zwei Betriebssysteme auf derselben Festplatte haben und sich nicht gegenseitig stören. Jeder behandelt seine Partition als logisches Laufwerk und spielt nicht mit anderen, es sei denn, Sie weisen es an.
  • Sie können Ihre Daten logisch trennen. Wenn eine Partition aus irgendeinem Grund beschädigt wird, bleiben andere Partitionen höchstwahrscheinlich intakt.
  • Die Verwendung von Partitionen ist besser als die Verwendung mehrerer kleinerer Festplatten, da Ihr System leiser ist, weniger Energie verbraucht und Sie die Größe ändern, löschen, verschieben usw. können.
  • Sie können einige Teile der Festplatte für bestimmte Zwecke verwenden.

Jetzt hat jede Partition ein eigenes Dateisystem. Moderne Windows-Versionen verwenden NTFS , aber FAT , FAT32 und exFAT werden für externe Medien oder ältere Partitionen unterstützt. Bei alltäglichen Linux-Installationen werden normalerweise ext- Dateisysteme verwendet, wobei ext4 das neueste ist.

Das Dateisystem definiert, wie sich Dateien physisch auf der Festplatte befinden. Sie können sich das so vorstellen: Wenn Sie ein Buch mit 10000 Seiten ohne Kapitel, Seitenzahlen oder Zeilenumbrüche hätten, wäre es sehr schwer zu verwenden. Natürlich nehmen Seitenzahlen und Kapitelüberschriften etwas Platz auf der Seite ein, aber sie machen die Verwendung des Buches viel einfacher und schneller. Wenn Sie zum Kapitel springen möchten, sagen wir 42, schauen Sie einfach im Inhaltsverzeichnis nach. Dann blättern Sie im Buch, bis Sie das gewünschte Kapitel gefunden haben. Ihre Dateien sind Kapitel und Ihr Dateisystem ist das Buch. Dateisystem-Metadaten wie Dateigrenzen, Dateinamen usw. beanspruchen ebenfalls Speicherplatz, sind jedoch vergleichsweise klein und sorgen für eine viel schnellere Arbeitsweise.

Wenn Ihr "Kapitel" leer ist, kann es dennoch eine Überschrift oder eine Seitenzahl haben, oder? Die leere Datei enthält null Datenbytes. Metadaten beanspruchen Speicherplatz, sind jedoch nicht Teil der Datei, sondern des Dateisystems. Andernfalls würden Sie Dateinamen in Ihren Textdateien sehen?

Aus diesem Grund akzeptierten frühe Versionen von DOS nur 8.3 Namen - der für Dateinamen reservierte Speicherplatz war sehr begrenzt. NTFS erlaubt Dateinamen mit einer Länge von 255 Zeichen [1] .


Nur noch ein Wort zu Ihrem Kommentar:

Früher hatte ich eine Art Virus, der einige Dateien auf meinem PC irgendwie beschädigt hat, sodass sie ungefähr 100 GB groß zu sein schienen. Jeder von ihnen. Auf meiner 40GB Festplatte. Es muss also eine Art Magie gegeben haben ... :-D

Dank einer Funktion namens " Sparse Files" ist es durchaus möglich, gültige Dateien zu haben, die größer als Ihre Festplatte sind . Hennes hat eine ausgezeichnete Erklärung dafür in seinem Kommentar zu dieser Frage :

Stellen Sie sich einen Ordner vor, der 100 Seiten aufnehmen kann. Wenn Sie diesen Ordner als reguläre Datei verwenden, können Sie 100 Seiten einfügen. Sie könnten alle 100 lesen. Sie könnten an alle 100 schreiben. Stellen Sie sich nun einen spärlichen Ordner vor. Sie fügen die erste Seite ein, die Sie schreiben "Seite 1: Inhalt A". Anschließend fügen Sie eine zweite Seite ein, die Sie schreiben "Seite 9999: Inhalt b:". Wann immer Sie versuchen, eine Seite zu lesen, prüfen Sie, ob sie existiert. Wenn dies nicht der Fall ist, lautet Ihre Antwort: Dies ist eine leere Seite. Wenn es existiert, geben Sie den Inhalt der Seite zurück. Wenn Sie auf eine Seite schreiben, die noch nicht im Ordner vorhanden ist, fügen Sie ein neues Blatt Papier hinzu.

gronostaj
quelle
Andernfalls würden Sie Dateinamen in Ihren Textdateien sehen? Nun, viele umfangreiche Dateitypen wie Bilder oder PDF-Dateien können viele Metadaten enthalten. Sogar einfache UTF-8-codierte Textdateien enthalten eine Sequenz EFBBBF, die von den meisten Texteditoren ausgeblendet wird. Daher habe ich erwartet, dass die Dateimetadaten nur ein weiterer versteckter und nicht zugänglicher Teil der Datei sind. Wie auch immer, du wärst ein großartiger Lehrer! Jede hier gegebene Antwort war (und wird) in irgendeiner Weise wirklich hilfreich, aber ich schätze Ihre Bemühungen am meisten.
Jeyekomon
Dies beantwortet die Frage nicht, oder? Wo werden also alle Metadaten gespeichert?
Koray Tugay
@KorayTugay Ich glaube, die eigentliche Frage war "Wie werden die Dateimetadaten in Windows gespeichert, damit sie keinen Speicherplatz beanspruchen ". Meiner Meinung nach ist die beste Antwort, die Sie in einem Super User-Beitrag geben können, zu erklären, dass sie im Dateisystem gespeichert sind, nicht direkt in der Datei, und deshalb zählen sie nicht in die Dateigröße. Sie sind im Buch, aber nicht als Teil des Textes.
Gronostaj
7

Ich habe heute gerade etwas über Windows Alternate Data Streams (ADS) erfahren. Dies ist eine versteckte Ressourcengabel, die an eine Datei angehängt ist. Es ist seit Windows NT 3.1 Teil von NTFS.

Wenn Sie beispielsweise eine leere Textdatei haben, aber einige der Zusammenfassungsinformationen in das Eigenschaftstag der Datei eintragen, wird eine versteckte ADS-Datei erstellt und an die Textdatei angehängt. Die meisten Windows-Versionen enthalten nicht die Größe der ADS-Datei, wenn die Größe der Originaldatei angegeben wird.

Sie können ADS-Dateien an einer Eingabeaufforderung erstellen und anzeigen.

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

erstellt eine test.txt-Datei mit einer ADS-Datei namens hidden.txt

Mit diesem Befehl können Sie die Datei bearbeiten:

notepad test.txt:hidden.txt

Hier ist ein leicht zu lesender Artikel, der ausführlicher behandelt wird.

HighTechGeek
quelle
Das ist wirklich eine interessante Sache! Ich habe eigentlich auch noch nie davon gehört ... Danke.
Jeyekomon
@Jeyekomon es scheint, dass 'Typ' es nicht unterstützt, pastebin.com/raw/4Ae3GGkN, aber ich sehe Echo und Notepad tun (getestet in Win7)
Barlop
2

Ich habe eine Suche durchgeführt und bin auf eine ähnliche Frage gestoßen, die bei Stack Overflow gestellt wurde.

Grundsätzlich heißt es, dass die Datei erstellt wird und einige Bytes oder einen Festplattencluster usw. belegt. Dies hängt von der Granularität der Festplatte und des Dateisystems usw. ab.

Sie diskutieren es hier: /programming/4954991/are-0-bytes-files-really-0-bytes

mit zusätzlichen Links für weitere Forschung.

HighTechGeek
quelle
2

Auf einem NTFS-Volume werden diese Informationen in Metadateien gespeichert. Insbesondere werden der Dateiname und die Zeitstempel in einer Metadatei namens $ MFT gespeichert. Auf die Metadateien kann mit den normalen Windows-Methoden wie Explorer oder der Eingabeaufforderung nicht zugegriffen werden.

Weitere Informationen:

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

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

David Marshall
quelle
Vielen Dank. Die Antwort liegt also in einem tieferen Verständnis des Dateisystems meiner Festplatte ... Und nur aus Neugier - kennen Sie eine "ungewöhnliche" Windows-Methode? Diejenige, die tatsächlich nützlich ist, um auf diese Metadateien zuzugreifen? Ein paar Schlüsselwörter für Google würden ausreichen ...
Jeyekomon
1
@Jeyekomon Sie müssen einen Sektoreditor verwenden. Hier gibt es ein Beispiel: blogs.technet.com/b/askcore/archive/2013/03/01/…
David Marshall