Partitionstabelle verbraucht 32 KB Daten?

Partitionstabelle verbraucht 32 KB Daten?

Ich erstelle eine Datei mit einer Größe von 100 MB und weise losetupsie zu /dev/loop0.

Daher erstelle ich fdiskeine leere DOS-Partitionstabelle und eine neue Partition, die sich über die gesamte Festplatte erstreckt.

Ungewöhnlich und für mich unverständlich ist, dass die oben genannte Partition beim 63. Sektor beginnt, das heißt, die Partitionstabelle umfasst 62 Sektoren, also 31 KB.

Ich war davon ausgegangen, dass alle Daten zu Partitionseinträgen im Master-Boot-Record, dem ersten Sektor des Laufwerks, aufgezeichnet werden und daher nur die ersten 512 Bytes der Festplatte tabu sein sollten.

Bei der Untersuchung des Laufwerks sind die Sektoren nach dem ersten nicht vollständig mit Nullen gefüllt. Es fehlen mir also offensichtlich einige Details zu den Partitionstabellen.

fdisk print (Anzeigetyp = Sektoren):

      Device Boot     Start        End     Blocks   Id  System
/dev/loop0p1   *         63     192779      96358+  83  Linux

Antwort1

Das MBR-Partitionsformat ist drei Jahrzehnte alt und weist aus historischen Gründen gewisse Merkwürdigkeiten auf.

Damals musste der Computer die Geometrie der Festplatte kennen. Wie sind die Daten auf einer Festplatte organisiert? In drei Dimensionen:Zylinder, Köpfe und Sektoren.

Spuren, Zylinder, Sektoren, Köpfe

(Diagramm vonjohannes_kimbro)

Die Geometrie wurde mit Maximalwerten gespeichert, die für die damalige Zeit groß genug waren: 8 Bit für die Anzahl der Köpfe (1–255), 6 Bit für die Anzahl der Sektoren auf einer Spur (1–63) und 10 Bit für die Anzahl der Spuren pro Kopf, also die Anzahl der Zylinder (1–1023), wobei ein Sektor 512 Bytes enthielt. Heutzutage müssen Computer die tatsächliche Geometrie der Festplatte nicht mehr kennen (und diese Zahlen sind nicht einmal aussagekräftig), aber das Format bleibt, und Festplatten mit MBR-Partitionierung haben eine Größe, die im CHS-Format ausgedrückt wird, aber alles, was zählt, ist, dass das Produkt der drei Zahlen der Gesamtzahl der Sektoren entspricht.

Die Startadresse am Anfang einer Partition wird im CHS-Format ausgedrückt. Viele ältere Betriebssysteme unterstützten keine Partitionen, die sich über verschiedene Spuren erstreckten, d. h. eine Partition musste an einer Zylindergrenze ausgerichtet werden. Das bedeutet ein Vielfaches von 63 Sektoren für die erste Partition.

Es gibt 31 kB Speicherplatz, der nicht für Partitionsinhalte verwendet wird. Dieser kann für einen Bootloader genutzt werden.

Das moderneGPT-Partitionsformat, der Standard für neuere PCs mit >1 TB-Festplatten, richtet Partitionen gerne an 1-MB-Grenzen aus, sodass vor dem Start der ersten Partition etwa 1023 kB frei sind. Auch dies kann von einem Bootloader verwendet werden. Moderne Betriebssysteme richten MBR-Partitionen ebenfalls an 1-MB-Grenzen aus, wodurch die CHS-Kompatibilität aufgehoben wird und sichergestellt wird, dass Partitionen auf Laufwerken mit 4-kB-Sektoren (= 8 herkömmliche Sektoren mit 512 kB) an einer Sektorgrenze liegen. Das Ausrichten von Partitionen an einer Sektorgrenze (also der tatsächlichen Sektorgröße, die von der Festplatte verwendet wird, d. h. ihrer bevorzugten Übertragungsgröße) verbessert die Leistung.

verwandte Informationen