Ich glaube, Sie sind verwirrt, möglicherweise, weil Sie mehrere Dokumente gelesen haben, die unterschiedliche Begriffe verwenden. Begriffe wie „Blockgröße“ und „Clustergröße“ haben auch im Kontext der Dateisystemliteratur keine universelle Bedeutung.
Dateisysteme
Für ext2 oder ext3 ist die Situation relativ einfach: Jede Datei belegt eine bestimmte Anzahl von Blöcken . Alle Blöcke in einem bestimmten Dateisystem haben dieselbe Größe, normalerweise eines von 1024, 2048 oder 4096 Bytes. Eine Datei¹, deren Größe zwischen N Blöcken plus einem Byte und N + 1 Blöcken liegt, belegt N + 1 Blöcke. Diese Blockgröße legen Sie mit fest mke2fs -b
. Es gibt keine getrennte Vorstellung von Clustern.
Das FAT- Dateisystem, das insbesondere von MS-DOS und früheren Versionen von Windows verwendet wird, weist eine ähnlich einfache Speicherplatzzuordnung auf. Was ext2 Blöcke aufruft, ruft FAT Cluster auf . Das Konzept ist das gleiche.
Einige Dateisysteme verfügen über ein komplexeres Zuordnungsschema: Sie haben Blöcke mit fester Größe, können jedoch denselben Block zum Speichern der letzten Bytes von mehr als einer Datei verwenden. Dies wird als Blockunterzuordnung bezeichnet . Reiserfs und Btrfs machen das, aber nicht ext3 oder ext4.
Dienstprogramme
Unix-Dienstprogramme verwenden häufig das Wort "Block", um eine Einheit beliebiger Größe zu bezeichnen, in der Regel 512 Byte oder 1 KB. Diese Verwendung steht in keinem Zusammenhang mit einem bestimmten Dateisystem oder einer bestimmten Festplattenhardware. In der Vergangenheit ist der 512B-Block entstanden, weil Festplatten und Dateisysteme zu der Zeit oft in 512B-Blöcken betrieben wurden, aber die moderne Verwendung ist nur willkürlich. Herkömmliche Unix-Dienstprogramme und -Schnittstellen verwenden manchmal immer noch 512-Byte-Blöcke, obwohl 1- KB-Blöcke heutzutage häufig bevorzugt werden . Sie müssen die Dokumentation jedes Dienstprogramms überprüfen, um festzustellen, welche Blockgröße es verwendet (einige haben einen Schalter, z. B. du -B
oder df -B
unter Linux).
Im GNU / Linux- stat
Dienstprogramm gibt die blocks
Zahl die Anzahl der von der Datei verwendeten 512B-Blöcke an. Die IO Block
Zahl ist die bevorzugte Größe für die Eingabe / Ausgabe von Dateien, die im Prinzip unabhängig ist, aber normalerweise einen Hinweis auf die Blockgröße des zugrunde liegenden Dateisystems (oder die Clustergröße, wenn Sie sie so nennen möchten) gibt. Hier haben Sie eine 13-Byte-Datei, die einen Block im ext3-Dateisystem mit einer Blockgröße von 2048 belegt. Daher belegt die Datei 4 512-Byte-Einheiten (von "Blöcken" genannt stat
).
Festplatten
Die meisten Festplatten verfügen über eine Schnittstelle, die die Festplatte als eine Reihe von Sektoren anzeigt . Die Festplatte kann nur einen ganzen Sektor schreiben oder lesen, keine einzelnen Bits oder Bytes. Die meisten Festplatten haben 512-Byte-Sektoren, obwohl 4-KB-Sektoren vor ein paar Jahren aufgetaucht sind.
Die Größe des Festplattensektors steht nicht in direktem Zusammenhang mit der Blockgröße des Dateisystems, aber es ist für die Leistung besser, wenn ein Block aus einer ganzen Anzahl von Sektoren besteht.
¹
Ausnahme: Dateien mit geringer Dichte sparen Platz.