Linux fdisk: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 3: Zeile 3:
 
==Master Boot Record==
 
==Master Boot Record==
  
*Bei einer MBR-partitionierten Platte liegen im ersten Sektor – 512 Byte – der Bootcode, die Partitionstabelle und eine Kennung.
+
Bei einer MBR-partitionierten Platte liegen im ersten Sektor – 512 Byte – der Bootcode, die Partitionstabelle und eine Kennung. Bei GPT-Platten ist dieser Sektor ebenfalls belegt, enthält dann aber nur einen Schutzeintrag.
*Bei GPT-Platten ist dieser Sektor ebenfalls belegt, enthält dann aber nur einen Schutzeintrag.
 
  
 
{{#drawio:mbr-1}}
 
{{#drawio:mbr-1}}
Zeile 11: Zeile 10:
 
===Bootcode===
 
===Bootcode===
  
*446 Byte groß.
+
446 Byte groß. Hier liegt die erste Stufe des Bootloaders. Bei GRUB 2 ist das nur ein Sprungbefehl in den Bereich hinter dem MBR.
*Hier liegt die erste Stufe des Bootloaders. Bei GRUB 2 ist das nur ein Sprungbefehl in den Bereich hinter dem MBR.
 
  
 
===Partitionstabelle===
 
===Partitionstabelle===
  
*64 Byte groß, aufgeteilt in vier Einträge zu je 16 Byte.
+
64 Byte groß, aufgeteilt in vier Einträge zu je 16 Byte. Vier Einträge bedeuten vier primäre Partitionen – mehr sieht der MBR nicht vor. Jeder Eintrag ist so aufgebaut:
*Vier Einträge bedeuten vier primäre Partitionen – mehr sieht der MBR nicht vor.
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 35: Zeile 32:
 
|}
 
|}
  
*Ausgewertet werden heute nur die beiden LBA-Felder. Die CHS-Angaben stammen aus der Zeit, als das BIOS die Geometrie brauchte, und sind bei großen Platten schlicht falsch.
+
Ausgewertet werden heute nur die beiden LBA-Felder. Die CHS-Angaben stammen aus der Zeit, als das BIOS die Geometrie brauchte, und sind bei großen Platten schlicht falsch. Anfang und Länge sind je 32 Bit breit; bei 512-Byte-Sektoren ergibt das 2 TiB als größte adressierbare Platte – genau diese Grenze hat GPT abgelöst.
*Anfang und Länge sind je 32 Bit breit. Bei 512-Byte-Sektoren ergibt das 2 TiB als größte adressierbare Platte – genau diese Grenze hat GPT abgelöst.
 
  
 
===Kennung===
 
===Kennung===
  
*2 Byte groß, die letzten beiden Byte des Sektors.
+
2 Byte groß, die letzten beiden Byte des Sektors. Auf der Platte stehen die Byte <code>55 AA</code>. Wird sie mit <code>od -x</code> ausgelesen, erscheint <code>aa55</code>, weil dieses Werkzeug 16-Bit-Wörter little endian ausgibt.
*Auf der Platte stehen die Byte <code>55 AA</code>. Wird sie mit <code>od -x</code> ausgelesen, erscheint <code>aa55</code>, weil dieses Werkzeug 16-Bit-Wörter little endian ausgibt.
 
  
 
===Wichtige Partitionstypen===
 
===Wichtige Partitionstypen===
Zeile 65: Zeile 60:
 
==Den MBR ansehen==
 
==Den MBR ansehen==
  
# dd if=/dev/sdb bs=512 count=1 status=none | hexdump -C
+
Den ersten Sektor auslesen und als Hexdump anzeigen. <code>hexdump -C</code> zeigt die Byte in der Reihenfolge, in der sie auf der Platte stehen.
  
<code>hexdump -C</code> zeigt die Byte in der Reihenfolge, in der sie auf der Platte stehen. Mit <code>od</code> geht es ebenfalls, dann aber byteweise statt in Wörtern:
+
=Ersten Sektor als Hexdump=
 +
*dd if=/dev/sdb bs=512 count=1 status=none | hexdump -C
  
# od -A d -t x1 -N 512 /dev/sdb
+
Mit <code>od</code> geht es ebenfalls, dann aber byteweise statt in 16-Bit-Wörtern:
 +
 
 +
=Ersten Sektor byteweise mit od=
 +
*od -A d -t x1 -N 512 /dev/sdb
  
 
Interessant sind drei Stellen: der Beginn bei 0x000, die Tabelle ab 0x1BE und die Kennung bei 0x1FE.
 
Interessant sind drei Stellen: der Beginn bei 0x000, die Tabelle ab 0x1BE und die Kennung bei 0x1FE.
Zeile 97: Zeile 96:
 
|}
 
|}
  
*Die vier Byte bei 0x1B8 (<code>7b 9a 3b 98</code>) sind die Disk-Signatur, die <code>fdisk</code> als ''Disk identifier'' anzeigt.
+
Die vier Byte bei 0x1B8 (<code>7b 9a 3b 98</code>) sind die Disk-Signatur, die <code>fdisk</code> als ''Disk identifier'' anzeigt. Ab 0x1CE folgen die Einträge 2 bis 4, hier alle leer.
*Ab 0x1CE folgen die Einträge 2 bis 4, hier alle leer.
 
  
 
==Primäre, erweiterte und logische Partitionen==
 
==Primäre, erweiterte und logische Partitionen==
=Partitonstabelle=
+
 
 
{{#drawio:fdsik-1}}
 
{{#drawio:fdsik-1}}
{{#drawio:part-1}}
 
 
''Abbildung 2: Aufteilung einer MBR-Platte''
 
''Abbildung 2: Aufteilung einer MBR-Platte''
  
*Der MBR kennt genau vier Einträge. Einer davon darf eine '''erweiterte Partition''' sein.
+
Der MBR kennt genau vier Einträge. Einer davon darf eine '''erweiterte Partition''' sein: ein Container ohne eigenes Dateisystem, in dem die '''logischen Partitionen''' in einer verketteten Liste verwaltet werden. Logische Partitionen werden immer ab 5 nummeriert, auch wenn nur drei primäre existieren. Der Kernel führt für sd-Geräte höchstens 15 Partitionen je Platte.
*Die erweiterte Partition ist nur ein Container ohne eigenes Dateisystem. In ihr werden die '''logischen Partitionen''' in einer verketteten Liste verwaltet.
 
*Logische Partitionen werden immer ab 5 nummeriert, auch wenn nur drei primäre existieren.
 
*Der Kernel führt für sd-Geräte höchstens 15 Partitionen je Platte.
 
  
 
==fdisk, der Partitionstabelleneditor==
 
==fdisk, der Partitionstabelleneditor==
Zeile 117: Zeile 111:
 
===List-Modus===
 
===List-Modus===
  
# fdisk -l /dev/sdb
+
Zeigt die Partitionstabelle, ohne etwas zu ändern.
 +
 
 +
=Partitionstabelle einer Platte anzeigen=
 +
*fdisk -l /dev/sdb
 +
 
 
  Disk /dev/sdb: 1 GiB, 1073741824 bytes, 2097152 sectors
 
  Disk /dev/sdb: 1 GiB, 1073741824 bytes, 2097152 sectors
 
  Disk model: QEMU HARDDISK
 
  Disk model: QEMU HARDDISK
Zeile 130: Zeile 128:
 
  /dev/sdb2        1050624 2097151 1046528  511M 83 Linux
 
  /dev/sdb2        1050624 2097151 1046528  511M 83 Linux
  
*Gerechnet wird in '''Sektoren''', nicht mehr in Zylindern. Ältere Anleitungen zeigen hier noch Köpfe, Spuren und Zylinder – diese Darstellung ist seit util-linux 2.26 verschwunden.
+
Gerechnet wird in '''Sektoren''', nicht mehr in Zylindern. Ältere Anleitungen zeigen hier noch Köpfe, Spuren und Zylinder – diese Darstellung ist seit util-linux 2.26 verschwunden. Die Zeile ''Disklabel type'' verrät das Schema: <code>dos</code> für MBR, <code>gpt</code> für GPT.
*''Disklabel type'' verrät das Schema: <code>dos</code> für MBR, <code>gpt</code> für GPT.
 
  
 
===Interaktiver Modus===
 
===Interaktiver Modus===
  
# fdisk /dev/sdb
+
Öffnet die Platte zur Bearbeitung. Solange nicht mit <code>w</code> geschrieben wird, passiert auf der Platte nichts; <code>q</code> verwirft alles.
+
 
 +
=Platte interaktiv bearbeiten=
 +
*fdisk /dev/sdb
 +
 
 
  Befehl (m für Hilfe):
 
  Befehl (m für Hilfe):
  
Solange nicht mit <code>w</code> geschrieben wird, passiert auf der Platte nichts. <code>q</code> verwirft alles.
+
Innerhalb des interaktiven Modus stehen unter anderem diese Tasten zur Verfügung:
 
 
====Die wichtigsten Kommandos====
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 149: Zeile 147:
 
|-
 
|-
 
| <code>p</code> || Partitionstabelle anzeigen
 
| <code>p</code> || Partitionstabelle anzeigen
 +
|-
 +
| <code>l</code> || bekannte Partitionstypen auflisten
 
|-
 
|-
 
| <code>n</code> || neue Partition anlegen
 
| <code>n</code> || neue Partition anlegen
Zeile 156: Zeile 156:
 
| <code>t</code> || Partitionstyp ändern
 
| <code>t</code> || Partitionstyp ändern
 
|-
 
|-
| <code>a</code> || Bootflag umschalten (nur MBR)
+
| <code>a</code> || Bootflag umschalten
 
|-
 
|-
 
| <code>F</code> || freien Platz anzeigen
 
| <code>F</code> || freien Platz anzeigen
 
|-
 
|-
 
| <code>i</code> || Details zu einer Partition
 
| <code>i</code> || Details zu einer Partition
 +
|-
 +
| <code>e</code> || Partition vergrößern
 
|-
 
|-
 
| <code>v</code> || Tabelle prüfen
 
| <code>v</code> || Tabelle prüfen
Zeile 168: Zeile 170:
 
| <code>g</code> || neue leere GPT-Tabelle anlegen (siehe eigenen Artikel)
 
| <code>g</code> || neue leere GPT-Tabelle anlegen (siehe eigenen Artikel)
 
|-
 
|-
| <code>O</code> / <code>I</code> || Layout als sfdisk-Skript sichern / laden
+
| <code>x</code> || Expertenmodus
 
|-
 
|-
 
| <code>w</code> || schreiben und beenden
 
| <code>w</code> || schreiben und beenden
Zeile 176: Zeile 178:
  
 
====Eine primäre Partition anlegen====
 
====Eine primäre Partition anlegen====
 +
 +
Nach <code>n</code> fragt fdisk nach Typ, Nummer und Grenzen. Beide Vorgaben lassen sich mit der Eingabetaste übernehmen; der Vorschlag ist immer der erste freie Sektor. Die Größe gibt man als <code>+250M</code> oder <code>+2G</code> an, statt Sektoren auszurechnen.
  
 
  Befehl (m für Hilfe): n
 
  Befehl (m für Hilfe): n
Zeile 188: Zeile 192:
 
  Eine neue Partition 1 des Typs „Linux" und der Größe 250 MiB wurde erstellt.
 
  Eine neue Partition 1 des Typs „Linux" und der Größe 250 MiB wurde erstellt.
  
*Beide Vorgaben lassen sich mit der Eingabetaste übernehmen. Der Vorschlag ist immer der erste freie Sektor.
+
====Eine erweiterte Partition anlegen====
*Die Größe gibt man als <code>+250M</code> oder <code>+2G</code> an, statt Sektoren auszurechnen.
 
  
====Eine erweiterte Partition anlegen====
+
Bei <code>n</code> statt <code>p</code> die Taste <code>e</code> wählen. Die erweiterte Partition bekommt selbst kein Dateisystem.
  
 
  Befehl (m für Hilfe): n
 
  Befehl (m für Hilfe): n
Zeile 205: Zeile 208:
  
 
====Logische Partitionen anlegen====
 
====Logische Partitionen anlegen====
 +
 +
Sind alle vier primären Einträge vergeben, legt <code>n</code> automatisch eine logische Partition ab Nummer 5 an.
  
 
  Befehl (m für Hilfe): n
 
  Befehl (m für Hilfe): n
Zeile 214: Zeile 219:
 
  Eine neue Partition 5 des Typs „Linux" und der Größe 250 MiB wurde erstellt.
 
  Eine neue Partition 5 des Typs „Linux" und der Größe 250 MiB wurde erstellt.
  
*Der erste Sektor liegt 2048 Sektoren hinter dem Anfang der erweiterten Partition. Der Platz davor nimmt den Verkettungssektor auf.
+
Der erste Sektor liegt 2048 Sektoren hinter dem Anfang der erweiterten Partition. Der Platz davor nimmt den Verkettungssektor auf.
  
 
====Den Partitionstyp ändern====
 
====Den Partitionstyp ändern====
 +
 +
<code>t</code> ändert die Systemkennung einer Partition. Der Typ ist nur eine Kennzeichnung – er legt kein Dateisystem an und hindert niemanden daran, etwas anderes darauf zu schreiben. Trotzdem gehört er gesetzt: <code>8e</code> für LVM und <code>fd</code> für RAID sind das, wonach Werkzeuge und Init-System suchen.
  
 
  Befehl (m für Hilfe): t
 
  Befehl (m für Hilfe): t
Zeile 224: Zeile 231:
 
  Der Typ der Partition „Linux" wurde in „Linux LVM" geändert.
 
  Der Typ der Partition „Linux" wurde in „Linux LVM" geändert.
  
*Der Typ ist nur eine Kennzeichnung. Er legt kein Dateisystem an und hindert niemanden daran, etwas anderes darauf zu schreiben.
+
====Schreiben oder verwerfen====
*Trotzdem gehört er gesetzt: <code>8e</code> für LVM und <code>fd</code> für RAID sind das, wonach Werkzeuge und Init-System suchen.
 
  
====Schreiben oder verwerfen====
+
<code>w</code> schreibt die Tabelle und beendet fdisk.
  
 
  Befehl (m für Hilfe): w
 
  Befehl (m für Hilfe): w
Zeile 234: Zeile 240:
 
  Synchronisiere Platten.
 
  Synchronisiere Platten.
  
Ohne Schreiben:
+
<code>q</code> beendet ohne zu schreiben – alle Änderungen sind dann verworfen.
  
 
  Befehl (m für Hilfe): q
 
  Befehl (m für Hilfe): q
Zeile 240: Zeile 246:
 
==Ausrichtung==
 
==Ausrichtung==
  
*Aktuelle Versionen beginnen die erste Partition bei Sektor '''2048''', also bei 1 MiB.
+
Aktuelle Versionen beginnen die erste Partition bei Sektor '''2048''', also bei 1 MiB. Der Grund sind Platten mit 4-KiB-Sektoren, die Erase-Blöcke von SSDs und die Stripes von RAID-Verbünden. Eine falsch ausgerichtete Partition führt dazu, dass jeder Schreibzugriff zwei physische Blöcke berührt statt einen. Prüfen lässt sich das an der Spalte ''Start'' in der Ausgabe von <code>fdisk -l</code>: steht dort 2048, stimmt die Ausrichtung.
*Der Grund: Platten mit 4-KiB-Sektoren, Erase-Blöcke von SSDs und Stripes von RAID-Verbünden. Eine falsch ausgerichtete Partition führt dazu, dass jeder Schreibzugriff zwei physische Blöcke berührt statt einen.
 
*Prüfen lässt sich das an der Spalte ''Start'' in der Ausgabe von <code>fdisk -l</code>: steht dort 2048, stimmt die Ausrichtung.
 
  
 
==Nach dem Schreiben: den Kernel informieren==
 
==Nach dem Schreiben: den Kernel informieren==
Zeile 251: Zeile 255:
 
  Der Kernel benutzt noch die alte Tabelle.
 
  Der Kernel benutzt noch die alte Tabelle.
  
*Ursache ist fast immer eine gemountete Partition oder ein aktives Swap auf derselben Platte.
+
Ursache ist fast immer eine gemountete Partition oder ein aktives Swap auf derselben Platte. Solange die alte Tabelle gilt, arbeitet das System mit den alten Grenzen weiter. Entweder man löst die Blockade und liest die Tabelle neu ein, oder man startet neu.
*Solange die alte Tabelle gilt, arbeitet das System mit den alten Grenzen weiter. Entweder man löst die Blockade und ruft <code>partprobe</code> auf, oder man startet neu.
 
  
# partprobe /dev/sdb
+
=Partitionstabelle neu einlesen=
 +
*partprobe /dev/sdb

Aktuelle Version vom 19. August 2026, 16:52 Uhr

Eine Platte muss aufgeteilt werden, bevor Dateisysteme darauf entstehen können. Wie diese Aufteilung abgelegt wird, regelt das Partitionsschema. Dieser Artikel behandelt den MBR und das Werkzeug fdisk. Das neuere Schema GPT und der zugehörige Editor gdisk sind in einem eigenen Artikel beschrieben.

Master Boot Record

Bei einer MBR-partitionierten Platte liegen im ersten Sektor – 512 Byte – der Bootcode, die Partitionstabelle und eine Kennung. Bei GPT-Platten ist dieser Sektor ebenfalls belegt, enthält dann aber nur einen Schutzeintrag.

Abbildung 1: Aufbau des MBR und eines Partitionseintrags

Bootcode

446 Byte groß. Hier liegt die erste Stufe des Bootloaders. Bei GRUB 2 ist das nur ein Sprungbefehl in den Bereich hinter dem MBR.

Partitionstabelle

64 Byte groß, aufgeteilt in vier Einträge zu je 16 Byte. Vier Einträge bedeuten vier primäre Partitionen – mehr sieht der MBR nicht vor. Jeder Eintrag ist so aufgebaut:

Byte Länge Inhalt
0 1 Bootindikator: 0x80 = aktiv, 0x00 = inaktiv
1–3 3 Anfang der Partition in CHS-Notation
4 1 Partitionstyp (Systemkennung)
5–7 3 Ende der Partition in CHS-Notation
8–11 4 Anfang der Partition als LBA
12–15 4 Länge der Partition in Sektoren

Ausgewertet werden heute nur die beiden LBA-Felder. Die CHS-Angaben stammen aus der Zeit, als das BIOS die Geometrie brauchte, und sind bei großen Platten schlicht falsch. Anfang und Länge sind je 32 Bit breit; bei 512-Byte-Sektoren ergibt das 2 TiB als größte adressierbare Platte – genau diese Grenze hat GPT abgelöst.

Kennung

2 Byte groß, die letzten beiden Byte des Sektors. Auf der Platte stehen die Byte 55 AA. Wird sie mit od -x ausgelesen, erscheint aa55, weil dieses Werkzeug 16-Bit-Wörter little endian ausgibt.

Wichtige Partitionstypen

Hex Bedeutung
83 Linux
82 Linux Swap
8e Linux LVM
fd Linux RAID autodetect
ef EFI System Partition
ee GPT Protective (Platte ist in Wahrheit GPT-partitioniert)
05 / 0f erweiterte Partition

Den MBR ansehen

Den ersten Sektor auslesen und als Hexdump anzeigen. hexdump -C zeigt die Byte in der Reihenfolge, in der sie auf der Platte stehen.

Ersten Sektor als Hexdump

  • dd if=/dev/sdb bs=512 count=1 status=none | hexdump -C

Mit od geht es ebenfalls, dann aber byteweise statt in 16-Bit-Wörtern:

Ersten Sektor byteweise mit od

  • od -A d -t x1 -N 512 /dev/sdb

Interessant sind drei Stellen: der Beginn bei 0x000, die Tabelle ab 0x1BE und die Kennung bei 0x1FE.

000001b0  00 00 00 00 00 00 00 00  7b 9a 3b 98 00 00 80 20
000001c0  21 00 83 ef 1c 10 00 08  00 00 00 00 10 00 00 00
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa

Der erste Eintrag beginnt bei 0x1BE und lässt sich Byte für Byte lesen:

Byte Wert Bedeutung
0 80 aktiv (bootfähig)
1–3 20 21 00 Anfang in CHS
4 83 Typ Linux
5–7 ef 1c 10 Ende in CHS
8–11 00 08 00 00 Start-LBA 2048 (little endian)
12–15 00 00 10 00 1048576 Sektoren = 512 MiB

Die vier Byte bei 0x1B8 (7b 9a 3b 98) sind die Disk-Signatur, die fdisk als Disk identifier anzeigt. Ab 0x1CE folgen die Einträge 2 bis 4, hier alle leer.

Primäre, erweiterte und logische Partitionen

Abbildung 2: Aufteilung einer MBR-Platte

Der MBR kennt genau vier Einträge. Einer davon darf eine erweiterte Partition sein: ein Container ohne eigenes Dateisystem, in dem die logischen Partitionen in einer verketteten Liste verwaltet werden. Logische Partitionen werden immer ab 5 nummeriert, auch wenn nur drei primäre existieren. Der Kernel führt für sd-Geräte höchstens 15 Partitionen je Platte.

fdisk, der Partitionstabelleneditor

fdisk teilt eine Platte in Partitionen ein, löscht bestehende und ändert deren Systemkennung. Es gibt zwei Betriebsarten: den List-Modus und den interaktiven Modus.

List-Modus

Zeigt die Partitionstabelle, ohne etwas zu ändern.

Partitionstabelle einer Platte anzeigen

  • fdisk -l /dev/sdb
Disk /dev/sdb: 1 GiB, 1073741824 bytes, 2097152 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x983b9a7b

Device     Boot   Start     End Sectors  Size Id Type
/dev/sdb1           2048 1050623 1048576  512M 83 Linux
/dev/sdb2        1050624 2097151 1046528  511M 83 Linux

Gerechnet wird in Sektoren, nicht mehr in Zylindern. Ältere Anleitungen zeigen hier noch Köpfe, Spuren und Zylinder – diese Darstellung ist seit util-linux 2.26 verschwunden. Die Zeile Disklabel type verrät das Schema: dos für MBR, gpt für GPT.

Interaktiver Modus

Öffnet die Platte zur Bearbeitung. Solange nicht mit w geschrieben wird, passiert auf der Platte nichts; q verwirft alles.

Platte interaktiv bearbeiten

  • fdisk /dev/sdb
Befehl (m für Hilfe):

Innerhalb des interaktiven Modus stehen unter anderem diese Tasten zur Verfügung:

Taste Wirkung
m Hilfe anzeigen
p Partitionstabelle anzeigen
l bekannte Partitionstypen auflisten
n neue Partition anlegen
d Partition löschen
t Partitionstyp ändern
a Bootflag umschalten
F freien Platz anzeigen
i Details zu einer Partition
e Partition vergrößern
v Tabelle prüfen
o neue leere MBR-Tabelle anlegen
g neue leere GPT-Tabelle anlegen (siehe eigenen Artikel)
x Expertenmodus
w schreiben und beenden
q beenden ohne zu schreiben

Eine primäre Partition anlegen

Nach n fragt fdisk nach Typ, Nummer und Grenzen. Beide Vorgaben lassen sich mit der Eingabetaste übernehmen; der Vorschlag ist immer der erste freie Sektor. Die Größe gibt man als +250M oder +2G an, statt Sektoren auszurechnen.

Befehl (m für Hilfe): n
Partitionstyp
   p   Primär (0 primär, 0 erweitert, 4 frei)
   e   Erweitert (Container für logische Partitionen)
Wählen (Vorgabe p): p
Partitionsnummer (1-4, Vorgabe 1): 1
Erster Sektor (2048-2097151, Vorgabe 2048): 
Letzter Sektor, +/-Sektoren oder +/-Größe{K,M,G,T,P} (2048-2097151, Vorgabe 2097151): +250M

Eine neue Partition 1 des Typs „Linux" und der Größe 250 MiB wurde erstellt.

Eine erweiterte Partition anlegen

Bei n statt p die Taste e wählen. Die erweiterte Partition bekommt selbst kein Dateisystem.

Befehl (m für Hilfe): n
Partitionstyp
   p   Primär (1 primär, 0 erweitert, 3 frei)
   e   Erweitert (Container für logische Partitionen)
Wählen (Vorgabe p): e
Partitionsnummer (2-4, Vorgabe 2): 2
Erster Sektor (514048-2097151, Vorgabe 514048): 
Letzter Sektor, +/-Sektoren oder +/-Größe{K,M,G,T,P} (514048-2097151, Vorgabe 2097151): 

Eine neue Partition 2 des Typs „Extended" und der Größe 773 MiB wurde erstellt.

Logische Partitionen anlegen

Sind alle vier primären Einträge vergeben, legt n automatisch eine logische Partition ab Nummer 5 an.

Befehl (m für Hilfe): n
Alle Primärpartitionen sind in Verwendung.
Logische Partition wird hinzugefügt 5
Erster Sektor (516096-2097151, Vorgabe 516096): 
Letzter Sektor, +/-Sektoren oder +/-Größe{K,M,G,T,P} (516096-2097151, Vorgabe 2097151): +250M

Eine neue Partition 5 des Typs „Linux" und der Größe 250 MiB wurde erstellt.

Der erste Sektor liegt 2048 Sektoren hinter dem Anfang der erweiterten Partition. Der Platz davor nimmt den Verkettungssektor auf.

Den Partitionstyp ändern

t ändert die Systemkennung einer Partition. Der Typ ist nur eine Kennzeichnung – er legt kein Dateisystem an und hindert niemanden daran, etwas anderes darauf zu schreiben. Trotzdem gehört er gesetzt: 8e für LVM und fd für RAID sind das, wonach Werkzeuge und Init-System suchen.

Befehl (m für Hilfe): t
Partitionsnummer (1,2,5, Vorgabe 5): 5
Hex code oder Alias (Typ L zum Auflisten aller): 8e

Der Typ der Partition „Linux" wurde in „Linux LVM" geändert.

Schreiben oder verwerfen

w schreibt die Tabelle und beendet fdisk.

Befehl (m für Hilfe): w
Die Partitionstabelle wurde verändert.
Rufe ioctl() um Partitionstabelle neu einzulesen.
Synchronisiere Platten.

q beendet ohne zu schreiben – alle Änderungen sind dann verworfen.

Befehl (m für Hilfe): q

Ausrichtung

Aktuelle Versionen beginnen die erste Partition bei Sektor 2048, also bei 1 MiB. Der Grund sind Platten mit 4-KiB-Sektoren, die Erase-Blöcke von SSDs und die Stripes von RAID-Verbünden. Eine falsch ausgerichtete Partition führt dazu, dass jeder Schreibzugriff zwei physische Blöcke berührt statt einen. Prüfen lässt sich das an der Spalte Start in der Ausgabe von fdisk -l: steht dort 2048, stimmt die Ausrichtung.

Nach dem Schreiben: den Kernel informieren

Ist eine Partition der Platte gerade in Benutzung, kann der Kernel die neue Tabelle nicht sofort übernehmen und fdisk meldet:

WARNUNG: Neueinlesen der Partitionstabelle führte zu Fehler 16: Device or resource busy.
Der Kernel benutzt noch die alte Tabelle.

Ursache ist fast immer eine gemountete Partition oder ein aktives Swap auf derselben Platte. Solange die alte Tabelle gilt, arbeitet das System mit den alten Grenzen weiter. Entweder man löst die Blockade und liest die Tabelle neu ein, oder man startet neu.

Partitionstabelle neu einlesen

  • partprobe /dev/sdb