meta data for this page
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
kurzuebersicht_zu_datentraegern_partitionen [2023/01/09 23:53] juergenhaaskurzuebersicht_zu_datentraegern_partitionen [2023/02/06 00:01] (aktuell) juergenhaas
Zeile 18: Zeile 18:
   * QLC: 16 Zustände -> 4 Bit pro Zelle   * QLC: 16 Zustände -> 4 Bit pro Zelle
 Außerdem werden in neueren Speicherchips die Speicherstrukturen dreidimensional aufgebaut. Zum besseren Grundverständnis wird hier aber eine vereinfachte Darstellung der herkömmlichen zweidimensionalen Anordnung verwendet. Außerdem werden in neueren Speicherchips die Speicherstrukturen dreidimensional aufgebaut. Zum besseren Grundverständnis wird hier aber eine vereinfachte Darstellung der herkömmlichen zweidimensionalen Anordnung verwendet.
 +
 +Siehe hierzu auch dieses {{https://www.youtube.com/embed/AO7CNNZmtTw | Video zur Funktionsweise von Flash-Speicher-Zellen}} auf YouTube (1:43).
  
 ---- ----
Zeile 55: Zeile 57:
 ---- ----
 ===== Partitionen ===== ===== Partitionen =====
-//**in Arbeit**//+ 
 +{{ ::abstraktionsebenen_auf_datentraegern.png?300|Abstraktionsebenen auf einem Datenträger}} 
 +Betrachtet man die Speicherung von Daten auf einem Datenträger, dann ergeben sich verschiedene Abstraktionseben. In dem Schaubild auf der rechten Seite ist ganz unten der Datenträger selbst dargestellt, so wie wir ihn mit LBA-Adressierung und Datenträgerblöcken als Festplatte oder Flash-Laufwerk kennengelernt haben. Auf der nächsten Ebene sind die Partitionen dargestellt, auf die in diesem Abschnitt näher eingegangen werden soll. Innerhalb einer Partition kann später eine Formatierung durchgeführt werden, so dass ein Dateisystem entsteht. Ein Dateisystem ist dann in der Lage Dateien und Verzeichnisse darzustellen, Metadaten wie Zeitstempel oder Benutzerrechte für die Dateien zu verwalten, etc. 
 + 
 +==== MBR-Partitionierung ==== 
 +{{ ::mbr_schematisch.png?200|schematische Darstellung der Struktur eines MBR}} 
 +Im ersten 512-Byte-Block eines partitionierten Datenträgers findet man in der Regel den Master Boot Record (MBR). Dabei handelt es sich um eine festgelegte Datenstruktur, welche nach dem rechts abgebildeten Schema aufgebaut ist. 
 +  - 440 Byte für den Bootloader; Dabei handelt es sich um Byte-Code, der vom Prozessor gelesen und ausgeführt werden kann, damit von diesem Datenträger gebootet werden kann. 
 +  - 4 Byte für die Datenträgersignatur zur Identifizierung eines Datenträgers 
 +  - 2 Nullbytes, ungenutzt 
 +  - 64 Byte für die Partitionstabelle; Die Partitionstabelle besteht aus 4 Einträgen zu je 16 Byte 
 +  - 2 Byte MBR-Signatur, immer ''0x55aa'' 
 + 
 +---- 
 +=== MBR-Partitionstabelle === 
 +{{ ::mbr_beispiel.png?200|Beispielhafter Abdruck eines MBR in Hexadezimaldarstellung mit Markierung der Abschnitte}} 
 +Die MBR-Partitionstabelle besteht aus insgesamt 64 Byte und ist in 4 Einträge zu je 16 Byte unterteilt. Somit können bei MBR-Partitionierung maximal 4 **primäre Partitionen** angelegt werden. Unter Zuhilfenahme einer sogenannten logischen Partition kann eine primäre Partition nochmal weiter unterteilt werden. Dazu wird am Beginn einer primären Partition einfach eine weitere, verschachtelte Partitionstabelle abgelegt um diese Partition nochmal zu unterteilen. 
 + 
 +  - 1 Byte zur Angabe ob die Partition bootbar ist (0x00 = nein, 0x80 = ja) 
 +  - 3 Byte für die veraltete CHS-Angabe des ersten Sektors 
 +  - 1 Byte für die Angabe des Partitionstyps (ob z. B. darin ein NTFS- oder FAT32-Dateisystem zu erwarten ist) 
 +  - 3 Byte für die veraltete CHS-Angabe des letzten Sektors 
 +  - 4 Byte für die Startadresse (LBA) der Partition 
 +  - 4 Byte für die Größe (in Blöcken) der Partition 
 + 
 +Da man mit 4 Byte nur bis knapp 4,3 Milliarden zählen kann, ergibt sich bei einer Blockgröße von 512 Byte eine maximale Größe für eine Partition von 2 TiB. 
 + 
 +Für eine genauere Beschreibung und eine Liste definierter Partitionstypen siehe auch den entsprechenden [[https://de.wikipedia.org/wiki/Master_Boot_Record#Partitionstabelle| Abschnitt im Wikipedia-Artikel]] zum Master Boot Record. 
 + 
 +==== GUID-Partitionierung ==== 
 +{{ ::gpt_schematisch.png?200|schematische Darstellung eines Datenträgers mit GPT}} 
 +Um den Einschränkungen der MBR-Partitionierung zu entgehen, wurde die **GUID Partition Table (GPT)** entwickelt. Datenträger mit GPT können nahezu beliebig viele Partitionen beinhalten, da die Anzahl der Partitionseinträge in einer GPT in deren Header variabel festgelegt werden kann. Außerdem stehen für die Größenangaben ausreichend viele Stellen zur Verfügung. 
 + 
 +Die schematische Darstellung auf der rechten Seite zeigt den Aufbau eines Datenträgers mit GPT-Partitionierung. Dort ist folgendes zu sehen: 
 +  - im ersten Datenträgerblock (LBA 0) der sogenannte Protective MBR. Hierbei handelt es sich um eine MBR-ähnliche Struktur um abwärtskompatibel mit älteren Systemen zu bleiben, die die GPT nicht interpretieren können. Auf diese Weise wird verhindert, dass ein älteres Partitionierungs-Tool einen bereits GPT-partitionierten Datenträger mit MBR-Partitionierung überschreibt. 
 +  - im zweiten Datenträgerblock (LBA 1) der primäre GPT-Header. Darin wird beschrieben welcher Teil des Datenträgers für die Partitionierungstabelle belegt ist, wie groß diese ist und wo die Backup-Kopie der GPT zu finden ist. 
 +  - in den folgenden Datenträgerblöcken (bis LBA 33) insgesamt 128 mögliche Einträge für einzelne Partitionen 
 +  - ab LBA 34 (= ab 17 kiB) Platz für die eigentlichen Partitionen. 
 +  - in den letzten Blöcken (hier 33) des Datenträgers die Kopie der Partitionseinträge und des GPT-Headers als Backup 
 + 
 +---- 
 +=== Der GPT-Header === 
 +{{ ::gpt-header.png?200|GPT-Header schematisch mit Beispiel}} 
 +Der GPT-Header beinhaltet unter anderem folgende Angaben (vgl. auch schematische Darstellung rechts) 
 +  die LBA-Adresse wo sich dieser Header befindet 
 +  die Anzahl, wie viele Partitionseinträge nach diesem Header folgen (z. B. 128 Stück) 
 +  * die Größe eines einzelnen Partitionseintrages (z. B. 128 Byte) 
 +  * Die Angabe der ersten und letzten LBA-Adresse, die für Partitionen zur Verfügung stehen 
 +  * die LBA-Adresse, an der die Kopie des GPT-Headers zu finden ist 
 + 
 +---- 
 +=== Ein GPT-Partitionseintrag === 
 +{{ ::gpt-eintrag_schematisch.png?400|schematischer Aufbau eines GPT-Eintrages}} 
 +Ein einzelner 128 Byte großer Eintrag für eine Partition folgt dem rechts abgebildeten schematischen Aufbau 
 +  - 16 Byte für die angabe des Partitionstyps 
 +  - 16 Byte für die eindeutige GUID der Partition, damit diese vom Betriebssystem wiedererkannt werden kann 
 +  - 8 Byte für die Startadresse der Partition 
 +  - 8 Byte für die Endadresse der Partition 
 +  - 8 Byte für Attributangaben zur Partition 
 +  - 72 Byte für den Namen der Partition 
 + 
 +Ein Beispiel mit den ersten beiden Einträgen aus einer GPT: 
 +{{ :gpt-eintrag_beispiel.png?400 |Beispiel mit Einträgen einer GPT als Hexdump}}