Informatik - Wiki

Partitionierung, Formatierung

1 - Low-Level-Formatierung

Um einen Datenträger für den Rechner nutzbar zu machen, muss dieser in logische Bereiche aufgeteilt werden. (Low-Level-Formatierung)

Dazu muss man wissen, das eine Festplatte im Inneren aus mehreren runden Scheiben besteht, die übereinander auf einer Achse angeordnet sind. Jede Scheibe wird in mehrere Ringe (Spuren) aufgeteilt, welche ihrerseits ebenfalls in Abschnitte (Sektoren) unterteilt werden. Die Spuren auf einer Scheibe werden von 0 aufwärts durchnummeriert. Die Spur am äußeren Rand des Datenträgers erhält die Nummer 0, die Spur welche am dichtesten an der Achse liegt erhält die höchste Nummer. Die jeweils übereinander liegenden Spuren aller Scheiben bezeichnet man als Zylinder. Diese Struktur entspricht einem dreidimensionalen Raster, anhand dessen der physikalische Speicherort von Daten (auf dem Datenträger) ermittelt werden kann.

Bei der Low-Level-Formatierung wird die Plattenoberfläche in logische Spuren und Sektoren unterteilt. Ein Sektor ist die kleinste mögliche Speichereinheit auf der Festplatte.

Die Speicherkapazität eines Sektors stellt immer eine Potenz von Zwei dar. (in der Regel 512 Byte) Ein oder mehrere Sektoren werden zu sogenannten Clustern zusammengefasst.

Ein Cluster ist der kleinste Speicherbereich auf einem Datenträger, der von einem Dateisystem genutzt werden kann.

1.1 - MZR – Verfahren

Früher wurden die Spuren einer Festplatte so unterteilt, das sie alle die gleiche Anzahl an Sektoren enthielten. Dabei waren die Sektoren auf der äußeren Spur (physikalisch) länger als auf den inneren Spuren.

Um den Speicherplatz optimaler auszunutzen, wurde das Multiple Zone Recording Verfahren entwickelt. Bei diesem vergrößert sich die Anzahl der Sektoren pro Spur, je weiter die jeweilige Spur von der zentralen Achse entfernt ist. Die Drehgeschwindigkeit der Platte wird dabei automatisch angepasst, um dem Betriebssystem den Eindruck einer konstanten Anzahl Sektoren pro Spur zu vermitteln.

2 - Partitionierung

Eine Partition ist ein Bereich auf einer (oder mehreren) Festplatte(n), der wie eine physikalisch separate Einheit funktioniert und sich durch ein Dateisystem nutzen lässt.

Man unterscheidet zwischen primären Partitionen und erweiterten Partitionen. Die primäre Partition von der der Rechner gebootet werden soll wird auch aktive oder Systempartition genannt.

Unter der aktiven Partition bzw. der Systempartition versteht man die primäre Partition, von der der Rechner gebootet wird.

Auf einer Festplatte lassen sich bis zu 4 primäre Partitionen erstellen, was bedeutet man hätte vier Laufwerke zur Verfügung. Um jedoch mehr Laufwerke zu erhalten ist es möglich eine sogenannte erweiterte Partition zu erstellen. Diese stellt einen logischen Bereich dar, der sich wiederum in sogenannte logische Laufwerke unterteilen lässt. (Hinweis: pro Festplatte kann es nur eine erweiterte Partition geben.)

Die Anzahl dieser logischen Laufwerke ist in der Praxis durch die Anzahl der zur Verfügung stehenden Laufwerksbuchstaben begrenzt. In Windows bedeutet das von A: bis Z:, in Linux z.B. sind auch Laufwerksnamen wie AB: oder XY: möglich.

2.1 - Dynamische Datenträger

Unter Windows gibt es eine weitere Möglichkeit Festplattenspeicher einzuteilen. Es handelt sich dabei um eine flexible Verwaltungsstruktur, welche als dynamische Datenträgerverwaltung bezeichnet wird.

Die Einteilung erfolgt in Form von Basisdatenträgern (entspricht den primären und erweiterten Partitionen) und Volumes (logische Laufwerke).

Hierbei sind verschiedene Volume-Typen möglich:

Einfaches VolumeEntspricht einer herkömmlichen Partition auf einem Datenträger
Übergreifendes VolumeZusammenfassung von Speicherplatz, der sich auf mehreren Datenträgern befinden kann
StripesetZusammenfassung mehrerer Datenträger (wie bei RAID0)

Anders als bei der herkömmlichen Festplattenpartitionierung wird bei der dynamischen Datenträgerverwaltung die Information über Laufwerke nicht in der Partitionstabelle gespeichert, sondern am Ende der Platte in einer Art Datenbank abgelegt. Eine Partitionstabelle wird trotzdem geschrieben, damit andere Betriebssysteme die Festplatte nicht als leer einstufen.

3 - Logische Formatierung

Damit eine Partition (oder ein logisches Laufwerk) von einem Betriebssystem durch ein Dateisystem genutzt werden kann, müssen noch die zur Verwaltung des Dateisystems benötigten Dateien bzw. Strukturen angelegt werden. Dieser Vorgang wird als Logische Formatierung bezeichnet.

Hierbei werden die Boot-Datei, sowie das Wurzelverzeichnis erstellt. Informationen über den zur Verfügung stehenden und den belegten Speicherplatz werden ebenfalls abgespeichert, sowie Informationen über beschädigte Bereiche auf der Platte.

4 - Master Boot Record

Am Anfang einer Festplatte befinden sich bei der klassischen Partitionierung der sogenannte Master Boot Record und eine Boot-Datei.

Der MBR befindet sich bei x86 Prozessoren immer in Sektor 1 der Spur 0 auf der ersten Platte und ist in der Regel unabhängig vom Betriebssystem. Er enthält eine Partitionstabelle und einen ausführbaren Code. Die Partitionstabelle ist 64 Byte lang und unterteilt in vier Bereiche von jeweils 16 Byte. Diese Bereiche enthalten Informationen über die jeweiligen Partitionen und sind in sogenannte Felder unterteilt.

8 BitBoot IndikatorZeigt an ob dies die aktive Partition ist
8 BitSystem IDBeschreibt das verwendete Dateisystem
8 BitErster KopfPosition des ersten Kopfes
6 BitErster physikalischer SektorPosition des ersten Sektors
10 BitErster physikalischer ZylinderPosition des ersten Zylinders
8 BitLetzter KopfPosition des letzten Kopfes
6 BitLetzter physikalischer SektorPosition des letzten Sektors
10 BitLetzter physikalischer ZylinderPosition des letzten Zylinders
32 BitRelativer SektorKennzeichnet den ersten Sektor der Partition
32 BitAnzahl der SektorenAnzahl der Sektoren in der Partition

Die Boot-Datei enthält Informationen zum Booten des Betriebssystems.

4.1 - Festplattenkapazität

Die maximale Festplattenkapazität hängt ab von der Größe der Felder für Köpfe, Sektoren und Zylinder.

Die Felder für den ersten und den letzten Kopf sind jeweils 8 Bit lang, so das maximal 256 Köpfe möglich sind.

Die Felder für den ersten und den letzten Sektor sind jeweils 6 Bit lang, womit bis zu 64 Sektoren pro Spur möglich sind. Da jedoch die Zuordnung 000000 für Datenfelder nicht zulässig ist, bleiben nur 63 Sektoren pro Spur zur Datenspeicherung.

Die Felder für den ersten und den letzten Zylinder sind jeweils 10 Bit lang, so das bis zu 1024 Zylinder möglich sind.

Das würde bedeuten:

Maximale Festplattenkapazität = Sektorgröße x Sektoren pro Spur x Zylinder x Köpfe
Maximale Festplattenkapazität = 512 Byte x 63 x 1024 x 256
Maximale Festplattenkapazität = 8.455.716.864 Byte
Maximale Festplattenkapazität = 7,875 GByte

Andererseits ist das Feld Anzahl der Sektoren 32 Bit lang, womit 2 hoch 32 Sektoren möglich sind.

Maximale Festplattenkapazität = 512 Byte x 2^32
Maximale Festplattenkapazität = 412 Byte x 4.294.967.296
Maximale Festplattenkapazität = 2.199.023.255.552 Byte
Maximale Festplattenkapazität = 2.048 GByte

Es hängt also davon ab, ob lediglich die Anzahl der Sektoren pro Spur, Zylinder und Köpfe bekannt ist (z.B. greift das BIOS auf diese Art auf Festplatten zu) oder ob das Feld für die Anzahl der Sektoren ausgelesen wird (wie beim NTFS Dateisystem z.B.).

4.2 - Verwaltung von Festplattenkapazitäten

Entsprechend ihrer Spezifikation stellen (E)IDE Festplatten die Anzahl ihrer Zylinder und Köpfe und Sektoren pro Spur anders dar, als die Partitionstabelle. Dadurch ergeben sich andere Maximalwerte. Um diese im BIOS zu verwalten wurde der sogenannte CHS-Modus entwickelt. Aus Gründen der Abwärtskompatibilität wurden hierbei die beiden Schnittstellen auf ihre kleinsten gemeinsamen Nenner gebracht. Daraus ergab sich eine maximale Festplattenkapazität von 504 MByte. Im BIOS werden diese Festplatten mit dem Zusatz CHS gekennzeichnet.


BIOS(E)IDECHS
Sektorengröße512 Byte512 Byte512 Byte
Sektoren pro Spur6325663
Zylinder1024655361024
Köpfe2561616
Maximale Kapazität7,875 GByte128 GByte504 MByte

Um auch größere Festplattenkapazitäten verwalten zu können, entwickelte man aus dem CHS den XCHS-Modus (Extended-CHS). Bei diesem macht man sich zu Nutzen, das vom BIOS theoretisch bis zu 256 Köpfe angesprochen werden können. Durch eine Übersetzung der Sektorenadressen in eine logische Struktur, konnte eine Erhöhung der Kapazität um den Faktor 16 erreicht werden (maximal 7,875 GByte). Allerdings muss diese Übersetzung durch das System-BIOS durchgeführt werden, was die Rechenleistung negativ beeinflusst. Die Kennzeichnung dieses Modus im BIOS ist LARGE oder auch BIG.

Auch beim sogenannten LBA-Modus (Large Block Adressing) werden die Sektorenadressen in eine logische Struktur übersetzt. Verwendet wird eine 28 Bit Adressierung, womit bis zu 2 hoch 28 Adressen mit jeweils 512 Byte möglich sind (maximal 128 GByte). Anders als beim XCHS-Modus übernimmt beim LBA-Modus der Controller der Festplatte die Übersetzung. Im BIOS werden diese mit dem Zusatz LBA gekennzeichnet.

Durch die Erweiterung des ATA Standards auf eine 48 Bit Adressierung lassen sich heutzutage auch größere Festplattenkapazitäten verwalten.

Dateisysteme

1 - Allgemein

Ein Dateisystem ist aufgebaut aus Dateien (und Verzeichnissen) und einer Struktur für den Zugriff und die Verwaltung dieser.

Unter dem Begriff Dateisystem versteht man die Struktur, auf deren Grundlage Dateien angelegt und verwaltet werden können.

Die Sektoren einer Festplatte (bzw. eines Datenträgers) werden in einem Dateisystem zu sogenannten Clustern zusammengefasst. Alle Cluster in einem Dateisystem haben dieselbe Größe. Dabei enthält ein Cluster mindestens einen Sektor, kann jedoch auch aus mehreren Sektoren bestehen. In diesen Clustern werden die Dateien abgespeichert, wobei sich eine Datei über mehrere Cluster erstrecken kann. Die Verteilung der Dateien auf die Cluster muss nicht hintereinander sein, sondern es wird beim Speichern einer Datei immer der jeweils nächste freie Cluster verwendet. Ist eine Datei kleiner als ein Cluster, so wird trotzdem der gesamt Cluster belegt.

2 - FAT 16

Die Dateiverwaltung wird im FAT16 Dateisystem mithilfe der sogenannten Dateizuordnungstabellle (File Allocation Table) realisiert. Diese Tabelle befindet sich direkt hinter dem Bootsektor einer Partition. In ihr befinden sich Informationen über jeden Cluster innerhalb des Dateisystems. Diese Informationen sagen aus, ob ein Cluster von einer Datei verwendet wird, nicht verwendet wird, fehlerhaft ist oder der letzte Cluster einer Datei ist.

Da eine 16 Bit Adressierung verwendet wird, können maximal 65536 Cluster verwaltet werden. Ein Cluster kann dabei bis zu 64 KByte groß sein. Dadurch ergibt sich eine maximale Partitionsgröße von 4 GByte.

Hinter der Dateizuordnungstabelle liegt das Stammverzeichnis. In ihm findet man einen Eintrag für jede vorhandene Datei (und jedes Unterverzeichnis). Das Stammverzeichnis kann maximal 512 Einträge enthalten, wobei jeder Eintrag 32 Byte groß ist.

Aufbau eines Eintrags im Stammverzeichnis

112 BitName der Datei im 8 + 3 Format
8 BitAttribut Byte (Archiv, System, versteckt, schreibgeschützt)
24 BitErstellungszeit
16 BitErstellungsdatum
16 BitDatum des letzten Zugriff
16 BitUhrzeit der letzten Änderung
16 BitDatum der letzten Änderung
16 BitErste Clusternummer in der FAT
32 BitDateigröße

Aufbau einer FAT-Partition

3 - VFAT

Mit Windows 95 wurde das VFAT Dateisystem (Virtual File Allocation Table) eingeführt. Es stellt im Grunde eine Erweiterung des FAT16 Dateisystems dar, mit dem Unterschied das lange Dateinamen unterstützt werden.

4 - FAT 32

Auch das FAT32 Dateisystem ähnelt dem FAT16 Dateisystem, ist jedoch nicht mit diesem kompatibel. Es wurde mit dem OEM-Release von Windows 95 (Windows 97) veröffentlicht.

Es wird eine 32 Bit Adressierung verwendet, was Partitionen von mehr als 4 GByte möglich macht.

5 - NTFS

Das NTFS Dateisystem (New Technology File System) wurde mit Windows NT eingeführt. Es handelt sich dabei um ein sogenanntes Journaling Dateisystem.

Zur Datenträgerverwaltung werden beim NTFS nicht die Felder für ersten und letzten Kopf, Sektor und Zylinder ausgelesen, sondern die Felder für Relativen Sektor und Anzahl der Sektoren.

Die Adressierung erfolgt mit 64 Bit und die Clustergröße ist abhängig der Größe des eingesetzten Datenträgers.

Nach dem Bootsektor einer NTFS Partition liegt die sogenannte Master-Dateitabelle (Master File Table, MFT). Sie enthält Information über alle Dateien (und Verzeichnisse) auf der Partition. Dateinamen können bis zu 256 Zeichen lang sein.

Hinter dem MFT befinden sich die Systemdateien, welche u.a. das Stammverzeichnis, sowie Informationen über beschädigte Cluster und Informationen zur Wiederherstellung von Dateien enthalten.

Sowohl MFT, als auch die Systemdateien können mehrere MByte groß sein.

Aufbau einer NTFS-Partition

NTFS stellt eine Methode bereit (Cluster Remapping), die ermöglicht es Cluster mit fehlerhaften Sektoren zu erkennen und zu ersetzen. Die dort liegenden Daten werden automatisch in einen anderen Cluster verschoben.

Ein weiteres Feature des NTFS Dateisystems ist die Möglichkeit den Zugriff auf Verzeichnisse lokalen Benutzern zuzuordnen und sie zu verschlüsseln.

6 - EXT2 / EXT3 / EXT4 (Linux)

EXT2 (Extended Filesystem 2) wurde ursprünglich im Jahr 1993 entwickelt und war lange Zeit das Standarddateisystem für Linux. Durch sein besonderes Design der Dateiverwaltung wird eine externe Fragmentierung von Dateien minimal gehalten.

Die Struktur von EXT2 ist aufgebaut aus sogenannten Blöcken, Inodes und Verzeichnissen.

Die Partition wird aufgeteilt in Blöcke, welche wiederum in Blockgruppen zusammengefasst werden. Am Anfang der Partition befindet sich der sogenannte Superblock. Dieser enthält Informationen über das Dateisystem, wie z.B. die Belegung und Anzahl der Blöcke.

Jedes Objekt in einem EXT2 Dateisystem wird durch eine Inode repräsentiert. Sie enthält Zeiger auf die Blöcke, welche die Daten des Objektes enthalten. Außerdem beinhaltet sie unter anderem Informationen über dessen Größe, Anzahl der verwendeten Blöcke und Zugriffsrechten auf das Objekt.

Mehr Informationen zum EXT2 Dateisystem gibt es hier.

Aktuell ist das Standarddateisystem in den meisten Linuxdistributionen EXT3. Im Grunde handelt es sich dabei lediglich eine Erweiterung des EXT2 Dateisystems um Journaling.

Seit 2006 existiert die vierte Version des EXT Dateisystems (EXT4). Neben der erhöhten Performance sind auch die möglichen Kapazitäten erhöht worden (z.B. maximale Partitionsgröße 1 EByte).

7 - Journaling Dateisysteme

Der Begriff Journaling bezeichnet eine Technik mit deren Hilfe zu jeder Zeit ein konsistenter Zustand des Dateisystems sichergestellt werden kann. Realisiert wird dies indem alle Änderungen am Dateisystem vor dem eigentlichen Schreiben in einem sogenannten Journal eingetragen werden. Kommt es bei einem Schreibvorgang nun zu einem unvorhergesehenen Abbruch (z.B. durch einen Stromausfall), so können die Daten anhand der Journaleinträge rekonstruiert werden. Das Journal befindet sich in einem dafür reservierten Speicherbereich der Partition.

Soll beispielsweise eine Datei X aus Verzeichnis A in Verzeichnis B verschoben werden, so würden dafür in der Regel 3 Einträge in das Journal eingetragen.

Lege Eintrag für X in Verzeichnis B an.

Kopiere /A/X nach /B/X.

Lösche Eintrag für X in Verzeichnis A.

Um wirklich sicherzustellen, das sich das Dateisystem in einwandfreiem Zustand befindet, wird das Journal von Zeit zu Zeit abgeschlossen. Dabei werden die Einträge mit dem realen Zustand des Dateisystems verglichen und eventuelle Reparaturen vorgenommen.

Systemstart, Registry, Hardwareressource

1 - Systemstart

Das BIOS (Basic Input Output System) ist ein Programm mit dessen Hilfe ein Rechner gestartet werden kann. Es sorgt dafür, das die grundlegenden Komponenten des Rechners zur Verfügung stehen, wie die Tastatur, die Laufwerke und der Speicher.

Nach dem Systemstart führt das BIOS zunächst einen Selbsttest (Power On Self Test, POST) durch. Danach liest es aus dem CMOS-Speicherchip alle Informationen über die vorhandenen Systemkomponenten aus, die zum Booten des Rechners benötigt werden. Zum Schluss sucht es noch auf den vorhandenen Speichermedien (Festplatte, CD-Rom, etc.) nach dem zu startenden Betriebssystem, welches dann den weiteren Bootvorgang übernimmt.

Das BIOS befindet sich auf einem ROM Modul (EPROM, EEPROM), welches fest auf dem Mainboard verbaut ist.

Das Aktualisieren des BIOS wird auch als Flashen bezeichnet.

1.1 - Windows XP Bootvorgang

Der Betriebssystemstart beginnt mit dem Laden des XP-Bootloaders. Dieser stellt ein Auswahlprogramm dar, mit dessen Hilfe verschiedene installierte Betriebssysteme gestartet werden können.

Der Bootloader startet das Betriebssystem, die dazu nötigen Informationen befinden sich in der BOOT.INI (Windows Startdatei).

Danach werden verschiedene Dateien die für den Bootvorgang verantwortlich sind (u.a. die Datei NTDR) und schließlich die Windows Oberfläche geladen.

2 – Windows Registry

Bei der Windows Registry (Registrierungsdatenbank) handelt es sich um eine zentrale Sammelstelle für systemspezifische Einstellungen. Diese können sowohl Informationen zu Hardware-Konfiguration, als auch Programm-Einstellungen sein. Änderungen an der Registry lassen sich mithilfe des Programms Regedit.exe (bzw. Regedit32.exe) durchführen.

Im Fall von Windows XP besteht die Registry aus sieben einzelnen Dateien, welche im Ordner C:WindowsSystem32config liegen.

DEFAULT

SAM

SECURITY

SOFTWARE

SYSTEM

NTUSER.DAT

UsrClass.DAT

Die Daten in der Registry sind hierarchisch in einer Baumstruktur organisiert. Der Hauptschlüssel in dieser Struktur wird HKEY_CLASSES_ROOT genannt.

Im Schlüssel HKEY_CURRENT_USER befindet sich die Konfiguration des aktuell aktiven Benutzers.

HKEY_LOCAL_MACHINE enthält alle Informationen zur verwendeten Hardware, Software und Benutzerrechten.

In HKEY_USERS liegen alle benutzerspezifischen Einstellungen (z.B. Desktop), welche in der USER.DAT gespeichert werden. Existieren mehrere Benutzer, so wird für jeden Benutzer jeweils eine eigene USER.DAT angelegt.

HKEY_CURRENT_CONFIG ist der Schlüssel für unterschiedliche Hardwareprofile.

Jedem Schlüssel in der Registry ist mindestens ein Wert zugewiesen, welcher den Namen Standard trägt. Jeder weitere Wert muss sowohl einen Namen, als auch einen Datenwert besitzen. Dieser Datenwert kann eine Zeichenfolge, ein Binärwert oder ein sogenanntes DWORD (binärer Wert von maximal 4 Bytes) sein.

3 - IRQ

Ein IRQ (Input Request) ist eine Busleitung über die dem Prozessor mitgeteilt wird, das ein laufender Prozess angehalten werden soll. Erhält der Prozessor eine solche Anfrage, unterbricht er den laufenden Prozess und führt den Prozess aus der die Anfrage gestartet hat. Danach führt er den vorherigen Prozess an der Stelle weiter aus, wo er unterbrochen wurde.

z.B. generiert die Tastatur einen Input Request wenn der Benutzer eine Taste drückt.

Liegen mehrere Geräte auf dem selben IRQ, so kann das die Geschwindigkeit des Systems bremsen, da immer wieder zwischen den Geräten hin und her geschaltet werden muss.

4 – DMA

Sollen große Datenmengen verwaltet werden, so ist die einfache Verwendung von IRQs relativ langsam, da immer nur sehr kleine Speicherbereiche zur Adressierung zur Verfügung stehen.

Aus diesem Grund hat man den sogenannten DMA-Modus (Direct Memory Access) entwickelt. Mit diesem werden die Daten direkt in den Arbeitsspeicher geschrieben.

top