# Formatierung

Die Formatierung (von lateinisch forma ‚Form, Gestalt‘) bezeichnet in der EDV im Bereich der Datenspeicherung alle diejenigen Prozesse, durch welche ein Speichermedium zur Aufnahme von Daten vorbereitet wird.
Man unterscheidet dabei mehrere Stufen:
* Low-Level-Formatierung – die physische Einteilung eines Speichermediums in Spuren und Sektoren durch den Controller.
* Partitionierung – die physische und logische Einteilung des Speichermediums in zusammenhängende Strukturen.
* High-Level-Formatierung – die logische Einteilung der Partitionsstruktur mit einem Dateisystem durch eine Software (meist durch das Betriebssystem).
Soweit durch die Beschaffenheit, industrielle Standards oder durch spezielle Verwendung die physische Einteilung des Mediums als Norm feststeht, ist eine separate Low-Level-Formatierung nicht erforderlich. In diesen Fällen können beide Vorgänge gleichzeitig vorgenommen werden, so zum Beispiel bei Disketten, CD-ROM, CD-RW oder DVD-ROM/RW.

## Low-Level-Formatierung

Bei der Low-Level-Formatierung wird die Festplatte physisch in Spuren und Sektoren eingeteilt. Die Low-Level-Formatierung wird heute fast immer vom Hersteller vorgenommen. Die dabei zugrunde gelegten Parameter – etwa für die unterschiedlichen Sektorenzahlen beim Zone Bit Recording – bleiben dem Anwender unbekannt, sodass er keine Low-Level-Formatierung selbst vornehmen sollte. Normalerweise hat jede Festplatte bei der Auslieferung schon einige defekte Sektoren, welche durch den Hersteller ausgeblendet werden. Er speichert in der so genannten P-Liste gewisse Sektoren, die die Festplatte nicht verwenden soll.

### Werkzeuge und Dienstprogramme zur Low-Level-Formatierung

Die meisten Hersteller bieten betriebssystemnahe Dienstprogramme an, die neben anderen Arbeiten an der Steuerung eines Datenträgers die Formatierung umfassen. Keines dieser Programme leistet ein echtes Low-Level-Format, sondern bietet unter diesem Namen die Option an, einen Zero-Fill durchzuführen, um dabei schlechte Sektoren zu remappen.
Die meisten Programme arbeiten nur mit Datenträgern des Herstellers. Die Linux-Distribution Desinfec’t (ehemals Knoppicillin) des Computermagazins c’t bietet eine breite Auswahl von solchen Programmen gesammelt und bootfähig (DVD) an.

## High-Level-Formatierung

Der Begriff „High-Level-Formatierung“ entstammt dem Jargon der IT-Branche. In der Umgangssprache wird verkürzt und verallgemeinernd nur der Oberbegriff „Formatierung“ dafür verwendet. Die Formatierung richtet ein Dateisystem (z. B. APFS, Btrfs, ext, FAT, NTFS oder ZFS) auf dem Datenträger ein.
Die High-Level-Formatierung baut auf den im Rahmen der Low-Level-Formatierung angelegten Partitionen auf. Dieses zweite logische Formatieren wird über das Betriebssystem gesteuert. Unter Microsoft Windows und DOS kann eine High-Level-Formatierung z. B. mit dem FORMAT-Befehl initialisiert werden. Unter unixoiden Systemen startet man eine derartige Formatierung mittels mkfs.* (make filesystem) oder newfs_* (new filesystem) wobei der * durch das gewünschte Dateisystem zu ersetzen ist, etwa ext2 oder ext4. Im Rahmen dieses Schemas werden die Vorgaben für das Dateisystem und für Cluster-Größen durch Parameter angepasst.

### Normal- und Schnellformatierung

Es gibt zwei unterschiedliche Methoden, den Datenträger high-level zu formatieren: Die Schnell- und die Normalformatierung. Sie unterscheiden sich in folgenden Punkten:
* Normalformatierung – Wird auf einem Datenträger eine normale Formatierung durchgeführt, so wird unabhängig vom Dateisystem zunächst eine Suche nach fehlerhaften Sektoren durchgeführt und die Partition mit Nullen überschrieben, womit vorhandene Daten gelöscht werden. Dies nimmt den Großteil der Zeit in Anspruch. Anschließend erfolgt das Schreiben der Dateisystem-Metadaten.
* Schnellformatierung – Wird ein Datenträger ebenfalls unabhängig vom Dateisystem mit der Schnell-Methode formatiert, werden zwar die Dateien aus dem Inhaltsverzeichnis des Datenträgers beziehungsweise der betreffenden Partition entfernt, die Suche nach fehlerhaften Sektoren wird jedoch ausgelassen. Es werden nur die Dateisystem-Metadaten geschrieben, was meist nur wenige Sekunden dauert.
Je nach Konfiguration und in Abhängigkeit vom verwendeten Betriebssystem kann dabei ein physischer Datenträger insgesamt als eine Partition mit einem Dateisystem formatiert werden. Da im Gegensatz zu der Low-Level-Formatierung hier nur eine logische Einteilung stattfindet, kann ein Datenträger auch zuvor in mehrere Partitionen unterteilt werden und diese mit unterschiedlichen Dateisystemen eingerichtet werden.
Bei einer schnellen High-Level-Formatierung sind in dem neuen Dateisystem die alten Daten nicht verfügbar, da sie nicht mehr durch entsprechende Verweise im Dateisystem referenziert werden. Sie werden jedoch nicht notwendigerweise gelöscht. Meistens verbleiben sie rein physisch auf der Festplatte, bis sie mit neuen Daten überschrieben werden. Solange die verwendeten Datenblöcke nicht erneut beschrieben werden, ist mit entsprechender Software eine weitgehende Wiederherstellung noch möglich, gestaltet sich jedoch schwerer, als wenn die Dateien einfach nur gelöscht würden. Nicht selten können daher via Software nur die einzelnen Dateien, nicht aber die Ordnerstruktur wiederhergestellt werden. Bei Flash-Speicher mit Unterstützung für Trim und Deterministic read Zero After Trim (DZAT, auch RZAT) sind die Datenblöcke auch dann nicht mehr lesbar, wenn sie eigentlich gar nicht überschrieben wurden. Im Detail kommt es jedoch auf die jeweilige Implementierung der Trim-Funktion an, viele SSDs ab ca. 2020 nutzen Read Zero After Trim (RZAT) meist standardmäßig.
Einige Betriebssysteme, wie z. B. Windows ab Vista, führen während einer Normalformatierung eine Mid-Level-Formatierung durch, bei der die Daten physisch mit einer 0 überschrieben werden. Laut einer 2008 vorgestellten wissenschaftlichen Untersuchung ist bereits ein einmaliges Überschreiben der Festplatte ausreichend, um Daten permanent zu löschen. So können selbst spezialisierte Datenrettungsunternehmen mit entsprechender Ausrüstung die Daten in aller Regel nicht mehr rekonstruieren.