# Fdisk

fdisk – Original-Schreibweise FDISK in DOS-üblicher Form (siehe 8.3) – bezeichnet mehrere Partitionierungsprogramme für Blockgeräte wie Festplatten oder Disketten. Das Wort kommt von fixed disk, eine von IBM eingeführte englische Bezeichnung für Festplatte.
PC DOS 2.0 (1983) und die von Microsoft für alle IBM-PC-kompatiblen Computer veröffentlichte Version MS-DOS 2.0 enthielten die von IBM entwickelte allererste Version von FDISK.COM, die gemeinsam mit MS-DOS weiterentwickelt wurde. Als Programm auf der Kommandozeile (Konsolenprogramm) kann FDISK sowohl per Kommandozeilenparameter als auch per zeichenorientierter Benutzerschnittstelle (dialog- oder menü-basiert) bedient werden. Andere Betriebssysteme enthalten meist einen an das MS-DOS-FDISK angelehnten Klon, ebenfalls unter dem Namen fdisk, wie beispielsweise PC-Unix und PC-kompatibles DOS.
FDISK kann ursprünglich nur Partitionen des Master Boot Record (MBR) bearbeiten. Der MBR wurde gemeinsam mit PC DOS 2.0 und dem „Fixed Disk Setup Program Version 1.0“ (FDISK.COM, deutsche Übersetzung „Festplatten-Einrichtungsprogramm“) 1983 eingeführt. Der Master Boot Record ist ein Bootsektor und enthält neben dem Startprogramm auch die eigentliche Partitionstabelle, die auf vier primäre Partitionen begrenzt ist. Ab MS-DOS 3.2 ist auch eine erweiterte Partition möglich, innerhalb derer weitere Partitionen als logische Laufwerke definiert sein können.
Es gibt auch grafische Varianten von FDISK, etwa FDISKPM.EXE von OS/2. Einige Weiterentwicklungen von fdisk, z. B. die in util-linux enthaltene Variante, können zusätzlich zum MBR auch mit GUID-Partitionstabellen (GPT, englisch GUID Partition Table) umgehen – die GUID-Partitionstabelle ist der Nachfolger des Master Boot Record auf IBM-PC-kompatiblen Computern.

## Geschichte

Der IBM PC XT (Typ 5160) von 1983 war der erste Vertreter der später als IBM-PC-kompatible Computer bezeichneten Systeme, der mit einer Festplatte ausgestattet war. Das dazu gelieferte Betriebssystem PC DOS bzw. MS-DOS 2.0 führte für diese Neuerung eine Unterteilung des Festplattenspeichers ein, sogenannte Partitionen, die in der dazu eingeführten Partitionstabelle „Master Boot Record“ (MBR) definiert sind. Aus Kompatibilitätsgründen wurde die Partitionstabelle innerhalb des Bootsektors untergebracht – dieser beinhaltet beim IBM PC und kompatiblen Computern das Startprogramm, welches im Chainloading-Prinzip das Betriebssystem, z. B. MS-DOS, von der als aktiv markierten Partition startet.
Festplatten waren um ein Vielfaches größer als Disketten. Ausgedrückt in damals üblichen Größenverhältnissen: eine 20 MiB große Festplatte ist um den Faktor 57 größer als eine damals übliche 360‑kB-Diskette. Die Dateisysteme dieser Zeit waren FAT12 für Disketten und FAT16 für Festplatten. Das FAT16-Dateisystem wies anfangs jedoch ein Größenlimit von 32 MiB auf, sodass größere Festplatten (damals 40 MiB und mehr) partitioniert werden mussten. DOS-FDISK folgt dieser Entwicklung: die Limits wurden sowohl beim FAT-Dateisystem als auch bei MBR-Partitionen sukzessive erhöht. Dementsprechend kann FDISK.COM aus MS-DOS/PC DOS 2.0 nur Partitionen bis 16 MiB anlegen. Ab MS-DOS 3.2 (1985) sind Partitionen bis 32 MiB möglich und die erweiterte Partition wurde eingeführt. Mit MS-DOS 3.3 (1987) wurde innerhalb der erweiterten Partition mehr als ein logisches Laufwerk unterstützt, was nun mehr als zwei Laufwerksbuchstaben pro Festplatte ermöglicht, sowie die Unterstützung für eine zweite Festplatte eingeführt.
Weil unter PC-DOS/MS-DOS-kompatiblen DOS-Betriebssystemen die Anzahl der (logischen) Laufwerke auf 26 beschränkt ist – von A: bis Z: (siehe Laufwerksbuchstaben) –, sind insgesamt nur 24 Partitionen möglich. Die Laufwerksbuchstaben A: und B: sind unter MS-DOS in jedem Fall für Diskettenlaufwerke reserviert. Bei einer primären Partition sind somit noch maximal 23 logische Laufwerke innerhalb der erweiterten Partition möglich. Während das anfängliche Limit von maximal vier primären Partitionen ein Hindernis darstellen konnte, ist die Anzahl möglicher (logischer) Laufwerke durch Hinzufügen einer erweiterten Partition nicht nur für die damalige Zeit absolut ausreichend.

### MS-DOS und PC DOS

In PC DOS bzw. IBM DOS ist jeweils dasselbe FDISK wie in MS-DOS der gleichen Version enthalten, da IBM das größtenteils unmodifizierte Betriebssystem von Microsoft für die hauseigene IBM-PC-Produktlinie nutzte. Der einzige Unterschied war, dass MS-DOS auch auf Klonen installiert werden konnte – es gab zahlreiche OEM-Versionen –, während IBM DOS nur auf dem Original-IBM-PC nutzbar war – bis IBM DOS 3.3 (1986), welches erstmals auch gezielt als Alternative für IBM-PC-kompatible Computer vermarktet wurde.
Aufgrund einer mit IBM geschlossenen gemeinsamen Entwicklungsvereinbarung (englisch Joint Development Agreement, JDA) sind ab MS-DOS 3.3 die von IBM geschriebenen DOS-Programme auch in der von Microsoft veröffentlichten Betriebssystemvariante enthalten.
Mit MS-DOS 4.0 wurde FDISK eine EXE-Datei, FDISK.EXE. Partitionen können ab dieser Version bis zu 2 GiB groß sein, was zugleich auch das Limit von FAT16B („BigDOS“) ist.
Ab MS-DOS 6.0 (und dem darin enthaltenen FDISK) werden bis zu acht Festplatten unterstützt; zwei IDE-Festplatten und bis zu sechs SCSI-Festplatten, für die erst über einen Treiber im Betriebssystem ein Zugriff ermöglicht wird.
Ab PC DOS 6.1 wurde das Betriebssystem von IBM eigenständig und ohne Microsoft weiterentwickelt.
MS-DOS 7.0 bis 8.0 sind keine eigenständigen Betriebssysteme mehr, sondern Bestandteil der Windows-9x-Betriebssystemreihe (Windows 95 bis Windows Me).

### OS/2

OS/2 ist bis Version 4.0 mit zwei Partitionsmanagern ausgestattet, dem textbasierten FDISK.EXE und dem grafischen Programm FDISKPM.EXE. Beide haben gleiche Funktionen und können FAT- und HPFS-Partitionen erstellen. OS/2-FDISK kann komplett über die Kommandozeile gesteuert werden, inklusive des Löschens von Partitionen, und kann den OS/2-Bootmanager installieren. OS/2-Versionen ab 4.5 unterstützen das Dateisystem JFS und haben FDISK durch einen Logical Volume Manager (LVM) ersetzt.
Aufgrund der gemeinsamen Entwicklungsgeschichte von OS/2 und Windows NT hat NTFS den gleichen Partitionstyp wie HPFS.

### Windows

MS-DOS-basierte Windows-Versionen, auch als Windows 9x bezeichnet, enthalten ein nahezu vollwertiges MS-DOS, sowie ein FDISK, das ab MS-DOS 7.10 (Windows 95b, Windows 98) und 8.00 (Windows Me) FAT32-Partitionen erstellen kann. Für Festplatten, die größer als 32 GiB sind, benötigt MS-DOS 7.10 einen Patch, der nur für Windows 98 zur Verfügung steht. Die FDISK-Programme von Windows 98 bis Windows Me können jedenfalls Festplatten von bis zu 128 GiB verwalten – mehr, wenn das BIOS die 48-Bit-Adressierung LBA-48 unterstützt. Allerdings weisen diese Versionen von FDISK ein Limit von 64 GiB bei der Anzeige der Festplattenkapazität auf, was ebenfalls durch einen Patch von Microsoft behoben werden kann.
In Windows NT ist FDISK.EXE nicht enthalten. Ab Windows NT 3.1 wird stattdessen die grafische Datenträgerverwaltung (englisch Disk Administrator) verwendet und ab Windows 2000 steht zusätzlich das Konsolenprogramm diskpart zur Verfügung.

## FDISK-Klone

Alternative Betriebssysteme verwenden auf PCs üblicherweise das vorhandene Partitionsschema – auf IBM-PC-kompatiblen Computern mit BIOS (für „basic input/output system“) somit die Partitionstabelle im Master Boot Record (MBR). Es gibt daher zahlreiche Programme mit dem Namen fdisk – oder ähnlichem Dateinamen bzw. Programmnamen – die zum Verwalten von Partitionen auf den jeweiligen Betriebssystemen dienen und dabei in Funktion und Verhalten mehr oder weniger an IBMs PC-DOS-FDISK angelehnt sind.
Dadurch, dass alternative Betriebssysteme die Partitionstabelle der jeweiligen Computerplattform unterstützen und mit dem enthaltenen FDISK-Klon verwalten können, ermöglichen sie Multi-Boot-Systeme. Folglich ist auf IBM-kompatiblen PCs mit BIOS allen FDISK-Klonen die Unterstützung der MBR-Partitionstabelle gemein. Allerdings wurde seit ca. 2010 das BIOS zunehmend durch UEFI und somit die Partitionstabelle im MBR durch die GUID-Partitionstabelle (GPT) ersetzt, sodass PC-Betriebssysteme nun ebenfalls GPT verwenden können (müssen).

### DR DOS

Einer der Hauptkonkurrenten von PC DOS und MS-DOS auf dem IBM PC war CP/M von Digital Research. Später wurden aus CP/M-86 auch PC-DOS-kompatible Versionen entwickelt, wie Concurrent DOS, DOS Plus und DR DOS. Auch in diesen Varianten ist ein von Digital Research entwickelter FDISK-Klon enthalten, der stark an IBMs FDISK angelehnt ist.
Wie bei PC DOS und MS-DOS wurde auch DR-DOS-FDISK nicht weiterentwickelt und kann mit der GUID-Partitionstabelle nicht umgehen.

### Unix

Alternative Betriebssysteme für den PC wurden seit dessen großer Verbreitung auch diverse Unix-Systeme. Auf IBM-kompatiblen-PCs und deren Nachfolgern laufen daher neben Betriebssystemen wie DOS und Windows meist diverse Unices, anfangs auch „PC-Unix“ bezeichnet, beispielsweise BSD-Derivate oder Linux. Dies trifft auch auf Macs zu, auf denen seit 2001 normalerweise mit macOS bereits ein Unix vorinstalliert ist. PC-Unix muss zwecks Dual- oder Multi-Boot daher bereits zur Installation MBR- und GPT-Partitionen verwalten können und stellt somit ein entsprechendes Partitionierungsprogramm bereit, was oft eine weitere Variante von fdisk ist. macOS (ursprünglich „Mac OS X“), das ein FreeBSD-Userland bietet, enthält eine Variante von fdisk zum Manipulieren von „PC-Partitionstabellen“ des Typs MBR, obwohl PowerPC-basierte Macs APM und Intel-basierte Macs (x86-Architektur) GPT verwenden. Im jeweiligen Betriebssystem enthaltene Festplattenverwaltungsprogramme können meist ebenfalls damit umgehen.
Da die GUID-Partitionstabelle (GPT) der Nachfolger des MBR ist, kann fdisk auf EFI-PCs oft zumindest eine vorhandene GPT-Partitionierung erkennen, diese selbst verwalten oder bietet ein weiteres an fdisk angelehntes separates Partitionierungsprogramm. Unter macOS ist dies etwa das Konsolenprogramm gpt, das sich auch auf vielen anderen Unix-artigen Systemen findet.
Linux-Distributionen stellen verschiedene Varianten von fdisk bereit. Neben dem traditionellen fdisk ist dies auch oft pfdisk – beide Programme sind kommandozeilen- und dialogbasiert und bieten zahlreiche Optionen. Das Programm cfdisk bietet eine einfache, menübasierte Handhabung. Das Programm sfdisk gilt als eher umständlich und für Experten ausgelegt, bietet aber als einziges mit dem Parameter --dump die Möglichkeit, die Struktur einer Partitionierung (d. h. ohne Bootcode) für ein späteres Neupartitionieren abzuspeichern. fdisk, cfdisk und sfdisk sind in der Paketsammlung util-linux enthalten.
Für Macs gibt es das von Apple entwickelte Konsolenprogramm pdisk zur Verwaltung von APM-Partitionen, das auf vielen Unix-artigen Systemen funktioniert. Es war ursprünglich auch im klassischen Mac OS enthalten und wurde für Linux-Distributionen, die auf PowerPC-Macs (1994–2006) laufen, adaptiert. Eine Weiterentwicklung davon ist mac-fdisk.
So wie OS/2-FDISK zusätzlich HPFS und Windows-9x-FDISK zusätzlich FAT32 unterstützt, kennen FDISK-Klone noch Partitionstypen (und Dateisysteme) des jeweiligen Betriebssystems – zusätzlich zu den mit MS-DOS eingeführten Partitionstypen. So kann z. B. ein für Linux geschriebenes fdisk auch Swap- (Partitionstyp 82) und extended-Partitionen (Partitionstyp 83) anlegen.

## FDISK-Alternativen

Das mit FreeDOS ausgelieferte Free FDISK ist ein freies und erweitertes Partitionierungsprogramm, das auch auf anderen PC-kompatiblen DOS-Versionen lauffähig ist. Ebenso kann der erweiterte Partitionsmanager XFDisk als freier Ersatz für das MS-DOS/PC-DOS-FDISK verwendet werden. XFDisk bietet viele Optionen, die im Standard-FDISK nicht enthalten sind.

## GUID-Partitionstabelle

Die GUID-Partitionstabelle (GPT) ist das Partitionsschema des BIOS-Nachfolgers UEFI: Design-bedingt enthält jeder GPT auch eine MBR-Partitionstabelle, die eine einzige primäre Partition enthält, welche sich über den gesamten vorhandenen Speicherbereich erstreckt. Diese Partitionstabelle wird als Schutz-MBR, englisch Protective MBR, bezeichnet, denn sie soll die im GPT definierten Partitionen und Daten vor unabsichtlichem Löschen durch ältere Betriebssysteme und Programme schützen. Für alte Software – bei Programmen für den PC kann man seit 1983 davon ausgehen, dass diese eine MBR-Partitionstabelle erkennt – markiert der Schutz-MBR den gesamten Speicherbereich als belegt. Wäre dies nicht so, wären die vorhandenen Daten in Gefahr, weil alte Software den GPT nicht erkennt und den Speicher somit als vermeintlich frei erkennen würde.
In einigen Varianten von fdisk wurde daher die Unterstützung für die GUID-Partitionstabelle ebenfalls aufgenommen: Neuere Versionen von fdisk erkennen das Vorhandensein von GPT-Datenstrukturen und geben eine Warnung aus. fdisk würde sonst zwar den Schutz-MBR manipulieren, nicht aber die im GPT definierten Partitionen, was zu Datenverlust führt.
Andere Varianten von fdisk wurden um die Funktion erweitert, selbst GUID-Partitionstabellen (GPT) verwalten zu können. Wieder andere an MS-DOS-FDISK angelehnte Partitionierungsprogramme wurden rein für die GUID-Partitionstabelle, ohne Bearbeitungsmöglichkeit für die MBR-Partitionstabelle, neu geschrieben.

## Limits

Geschichtlich bedingt sind die Limits für das Betriebssystem, für das FDISK geschrieben wurde, und FDISK selbst sehr nahe beieinander. Daher ist das Betriebssystemlimit meist auch das FDISK-Limit.
| Betriebssystem | FDISK | Jahr | Limit |
| MS-DOS 2.0 PC DOS 2.0 | 1.0 | 1983 | eine Festplatte |
| MS-DOS 2.0 PC DOS 2.0 | 1.0 | 1983 | 4 primäre Partitionen, jedoch von MS-DOS nur eine primäre Partition nutzbar |
| MS-DOS 2.0 PC DOS 2.0 | 1.0 | 1983 | 16 MiB pro Partition (Partitionstyp 01) |
| MS-DOS 2.0 PC DOS 2.0 | 1.0 | 1983 | kennt keine erweiterten Partitionen |
| MS-DOS 3.0 | MS-DOS 3.0 | 1984 | Einführung von FAT16 für Festplatten |
| MS-DOS 3.2 | MS-DOS 3.2 | 1985 | Erweiterte Partition (Partitionstyp 05), jedoch von MS-DOS nur ein logisches Laufwerk unterstützt; maximal 2 Laufwerke: C: (MS-DOS unterstützt nur eine primäre Partition) und ein logisches Laufwerk D: (von der erweiterten Partition) |
| MS-DOS 3.3 | MS-DOS 3.3 | 1987 | Unterstützung für zwei physische Festplatten |
| MS-DOS 3.3 | MS-DOS 3.3 | 1987 | Unterstützung für mehrere logische Laufwerke primäre Partitionen und logische Laufwerke zusammen: maximal 24, Laufwerk C: bis Z: |
| MS-DOS 3.3 | MS-DOS 3.3 | 1987 | 32 MiB pro Partition (Partitionstyp 04) |
| Compaq MS-DOS 3.31 (OEM) | Compaq MS-DOS 3.31 (OEM) | 1987 | 512 MiB pro Partition (Partitionstyp 04, jedoch mit 32-Bit-Sektoradressierung) – inkompatibel mit anderen Versionen von MS-DOS! |
| MS-DOS 4.0 | MS-DOS 4.0 | 1988 | Partitionen bis zu 2 GiB (Partitionstyp 06) |
| NEC MS-DOS 3.30 (OEM) | NEC MS-DOS 3.30 (OEM) | 1988 | Unterstützung für 8 Primärpartitionen im MBR – inkompatibel mit anderen Versionen von MS-DOS! |
| NEC MS-DOS 3.30 (OEM) | NEC MS-DOS 3.30 (OEM) | 1988 | 32-Bit-Sektoradressierung wie Compaq MS-DOS 3.31, jedoch mit Problemen bei Partitionen > 256 MiB – inkompatibel mit anderen Versionen von MS-DOS! |
| MS-DOS 5.0 | MS-DOS 5.0 | 1991 | bis zu 8 physische Festplatten unterstützt |
| MS-DOS 5.0 | MS-DOS 5.0 | 1991 | Obwohl FDISK immer noch nur eine primäre Partition anlegen kann, kann der Kernel nun weitere primäre Partitionen nutzen (Laufwerksbuchstaben zuweisen). |
| MS-DOS 7.0 (Windows 95) | MS-DOS 7.0 (Windows 95) | 1995 | wenn das BIOS den LBA-Zugriffsmodus unterstützt: neuer Partitionstyp 0E für Primärpartition und 0F für die erweiterte Partition |
| MS-DOS 7.1 (Windows 95B und 98) | MS-DOS 7.1 (Windows 95B und 98) | 1996 | Partitionen bis zu 2 TiB (Partitionstyp 0B für Primärpartition und 0C für die erweiterte Partition; für letztere ist LBA-Zugriff erforderlich) |
Obwohl im Master Boot Record bis zu vier primäre Partitionen möglich wären, kann FDISK nur eine einzige primäre Partition erstellen. Um eine zweite Festplatte oder mehr als ein logisches Laufwerk nutzen zu können, muss sowohl der DOS-Kernel als auch FDISK erweiterte Partitionen kennen – eine mit dem in MS-DOS 3.3 enthaltenen FDISK partitionierte Festplatte funktioniert daher nicht ohne weiteres auf einer früheren Version von PC DOS/MS-DOS, da dieses die logischen Laufwerke in der erweiterten Partition nicht verwenden kann. Ebenso kann MS-DOS vor Version 5.0 nur eine einzige primäre Partition verwenden.
Genau eine primäre Partition kann als erweiterte Partition definiert sein. Diese kann eine beliebige Anzahl logischer Laufwerke enthalten, wobei MS-DOS nur maximal 24 logische Festplattenlaufwerke verwenden kann. Ist nur eine Festplatte im PC und auf der Festplatten ebenfalls genaue eine primäre Partition (die keine erweiterte Partition ist) vorhanden, so können in der erweiterten Partition noch 23 logische Laufwerke von MS-DOS verwendet werden – bei drei Primärpartitionen (ab MS-DOS 5.0) sind es nur noch 21 logische Laufwerke. Diese müssen innerhalb eines zusammenhängenden Speicherbereichs, der durch die erweiterte Partitionen festgelegt ist, definiert sein. Bei mehr als einer Festplatte reduziert sich die Anzahl der in der erweiterten Partition nutzbaren logischen Laufwerke entsprechend der Gesamtanzahl an Partitionen und logischen Laufwerken auf allen Festplatten.
OS/2 akzeptiert wie MS-DOS (vor Version 5.0) nur eine primäre Partition pro Festplatte.
MS-DOS (und PC DOS) können nicht von einer erweiterten Partition starten. OS/2 hingegen schon – wenn allerdings ein logisches Laufwerk in der erweiterten Partition hinzugefügt oder gelöscht wird und sich damit die Laufwerksbuchstaben (welche automatisch vergeben werden) verändern, kann OS/2 eventuell nicht mehr starten.
Wie MS-DOS (bzw. kompatible DOS) und Windows unterliegt auch PC-Unix den BIOS-bedingten Einschränkungen beim Betriebssystemstart. Ältere BIOS-Versionen konnten auf Bereiche oberhalb von 1024 Zylindern nicht zugreifen. Daher legten viele Anwender eine kleinere Startpartition für den Unix-Kernel so an, dass sie unterhalb der 1024-Zylinder-Grenze beginnt. Ebenso verhält es sich mit der 128-GiB-Grenze, wenn LBA nicht als 48-Bit-Zahl (LBA-48) vom BIOS implementiert wurde. Ist die Unix-Startpartition unterhalb der BIOS-bedingten Grenze, ist ein Starten möglich und das gestartete Betriebssystem kann anschließend auch den oberhalb liegenden Bereich nutzen. Meist richten die Installationsprogramme neben der Startpartition zumindest eine root-Partition für das Wurzelverzeichnis ein sowie eine Swap-Partition. Da viele Unix-Bootloader erweiterte Partition unterstützen, können alle für Unix relevanten Partition als logisches Laufwerk definiert sein, jedoch kann es nötig sein, die Startpartition /boot wegen der BIOS-Limitierung als Primärpartition erstellen zu müssen.