{{{#!vorlage Warnung Veränderungen der Partitionierung[1] können das System unbrauchbar machen und sollten nie ohne vorherige [:Datensicherung:] durchgeführt werden! }}} [[Vorlage(Getestet-general-ab, 'Noble Numbat' )]] {{{#!vorlage Wissen [:Partitionierung:] {Übersicht} Übersichtsartikel [:Datenträger:] {Übersicht} Übersichtsartikel [:Datenträger#Wie-heissen-die-Datentraeger: Wie heißen die Datenträger] [:Systeminformationen_ermitteln#Festplatten: Welche Datenträger sind angeschlossen] [:Terminal: Ein Terminal benutzen] [:sudo: Root-Rechte erlangen] }}} [[Inhaltsverzeichnis()]] [[Bild(Wiki/Icons/terminal.png, 48, left)]] IBM veröffentlichte 1983 mit PC-DOS 2.0 die erste Version vom FDISK.COM (für '''f'''ixed '''disk'''), einem Programm zur Einrichtung und Verwaltung von Festplatten. Seitdem gibt es für jedes Betriebssystem ein eigenständiges Programm mit dementsprechender und erweiterter Funktionalität, so auch für Linux. Das Paket '''fdisk''' enthält Werkzeuge für die Kommandozeile[5] zur Partitionierung[1] von Datenträgern[2] mit [wikipedia:Partitionstabelle:Partitionstabellen] diverser Standards. Traditionell unterstützt werden die Formate [wikipedia:Master_Boot_Record:MBR] (auch DOS, MBR/DOS, "MBR (DOS)", Legacy u.a. genannt), Sun, SGI und BSD, aber neuere Versionen von '''fdisk''' erlauben auch eine Partitionierung[1] des Datenträgers[2] im modernen Format [wikipedia:GUID_Partition_Table:GPT] ("GUID Partition Table") wie mit den Werkzeugen aus dem Paket [:gdisk:]. Für Linux relevant sind nur die Formate "MBR (DOS)" und "GPT". (Fdisk verwendet diese Schreibweisen.) Eine Alternative zu den Werkzeugen aus den Sammlungen fdisk und gdisk ist [:GNU_Parted:GNU Parted]. ## In den meisten Fällen wird nur das Werkzeug fdisk zum Auflisten und Analysieren der Partitionstabelle sowie das Werkzeug sfdisk zum Erzeugen einer Backup-Datei der jeweiligen Partitionstabelle benötigt. = Installation = Das Paket [packages:fdisk:'''fdisk'''] {en} wurde aus dem essenziellen Paket [packages:util-linux:] {en} ausgelagert, gehört aber immer noch zum Standardumfang jeder Ubuntu-Installation und bedarf daher in der Regel keiner eigenen Installation. Das Paket beinhaltet die Werkzeuge: * [#fdisk fdisk] -- zur interaktiven Nutzung auf der Kommandozeile, * [#cfdisk cfdisk] -- zur interaktiven Nutzung mit halb grafischer Bedienoberfläche, basierend auf [wikipedia:ncurses:], * [#sfdisk sfdisk] -- zur Verwendung in Skripten. Die Varianten cfdisk und sfdisk erlauben nicht den vollen Funktionsumfang von fdisk. = fdisk = Das Programm fdisk legt Partitionen an, löscht, manipuliert oder listet sie. Wenn man, abgesehen von Standardoperationen wie Anlegen und Löschen von Partitionen, keine Besonderheiten benötigt, ist [#cfdisk cfdisk] bequemer. == Aufruf == Die Ausführung und Benutzung erfolgt im Terminal[5] mit Root-Rechten[6]. Die generelle Aufrufsyntax lautet: [[Vorlage( Befehl, "sudo fdisk OPTIONen DEVICE" ) ]] * OPTIONen ist eine möglicherweise leere Liste von Optionen nach [#Optionen Tabelle 1]. Wenn hier die Option `-l` angegeben wird, beendet sich der Befehl nach Ausgabe der Liste, anderenfalls wechselt er in den interaktiven Modus. Im interaktiven Modus können Kommandos gemäß [#Kommandos Tabelle 2] per Tastendruck erfolgen. * DEVICE identifiziert den zu bearbeitenden Datenträger[2][3][4] über seine immer anzugebende Gerätedatei; hierfür verwendet dieser Artikel immer beispielhaft '''/dev/sdX'''. Eine Erklärung aller Kommandos und Optionen mit ausführlicher Information liefert die [:man:Manpage]: [[Vorlage( Befehl, "man fdisk" ) ]] == Optionen == {{{#!vorlage Tabelle <-2 rowclass="titel">Tabelle 1: Ausgewählte Optionen +++ Option Beschreibung +++ `-V` Version des Programms anzeigen und beenden. +++ `-h` Hilfetext anzeigen und Programm beenden. +++ `-l` Partitionen anzeigen und Programm beenden. +++ `-x` Wie `-l`, aber mit weiteren Details. +++ `-t TYP` TYP als Typ der Partitionierung erzwingen. TYP kann lauten `mbr` oder `gpt` oder anders. [[BR]]Vorsicht: Wenn man selbst einen unzutreffenden Typ angibt, kann man damit eine vorhandene gültige Partitionierung zerstören! }}} == Kommandos == {{{#!vorlage Hinweis Beim interaktiven Gebrauch werden alle Änderungen zuerst nur im Arbeitsspeicher vorgemerkt: * Das Programm kann jederzeit mit [[Vorlage (Tasten, q)]] verlassen werden, ohne Veränderungen am Datenträger vorzunehmen. * Erst mit dem Kommando [[Vorlage (Tasten, w)]] werden alle Informationen unwiderruflich festgeschrieben. }}} Der Typ einer vorhandenen Partitionierung wird automatisch (empfohlen!) erkannt oder kann beim Aufruf per Option eingestellt werden. Das Menü unterscheidet sich geringfügig abhängig vom Typ der Partitionierung. === Hauptmenü bei MBR === {{{#!vorlage Tabelle <-2 rowclass="titel">Tabelle 2a: Ausgewählte Kommandos ohne Veränderungen der Partitionierung +++ Kommando Beschreibung +++ < cellstyle="width: 10%;">`m` Hilfetext mit den zur Verfügung stehenden Kommandos ausgeben. +++ `p` Die Partitionstabelle ausgeben. +++ `u` Die Einheit für die Anzeige/Eingabe umschalten. (Sektoren <--> Zylinder) +++ `x` Die zweite Menü-Ebene aufrufen: Zusätzliche Funktionen (nur für Experten). Siehe [#Tabelle-2b Tabelle 2b] +++ `q` Programms ohne Speichern der Änderungen auf dem Datenträger beenden. }}} [[Anker( Tabelle-2b ) ]] {{{#!vorlage Tabelle <-2 rowclass="titel">Tabelle 2b: Auswahl von Kommandos mit Veränderungen der Partitionierung +++ Kommando Beschreibung +++ < cellstyle="width: 10%;">`a` (De)Aktivieren des "bootfähig"-Flag einer Partition +++ `c` (De)Aktivieren des DOS-Kompatibilitätsflags +++ `d` Eine Partition löschen. Die Nummer der Partition wird abgefragt. +++ `n` Eine neue Partition anlegen. Nummer und Typ der Partition sowie Anfang und Ende/Größe werden abgefragt. +++ `o` Neue leere Partitionstabelle des Typs "MBR (DOS)" erstellen. +++ `g` Neue leere GPT-Partitionstabelle erstellen. +++ `t` Typ einer Partition ändern. Nummer der Partition und neuer Typ werden abgefragt. +++ `w` Die Tabelle im Arbeitsspeicher auf den Datenträger schreiben und das Programm beenden. }}} === Expertenmenü === {{{#!vorlage Tabelle <-2 rowclass="titel">Tabelle 2c: Auswahl von zusätzlichen Funktionen mit/ohne Veränderungen +++ Kommando Beschreibung +++ < cellstyle="width: 10%;">`b` Datenanfang einer Partition eines Datenträgers verschieben. +++ `f` Einträge in Partitionstabelle aufsteigend ordnen. +++ `r` Zurück zur Menü-Ebene 1 (Hauptmenü) wechseln. +++ `v` Partitionstabelle überprüfen. }}} == Partitionierung auflisten == Die Anzeige einer Partitionstabelle ist in der Praxis die wichtigste Anwendung des Befehls fdisk. {{{#!vorlage Hinweis In allen Befehlen wird als Datenträger '''/dev/sdX''' genutzt, dieser muss auf die eigenen Belange abgestellt werden! }}} * Auflisten der Informationen zu den Partitionen: [[Vorlage( Befehl, "sudo fdisk -l /dev/sdX" ) ]] Beispielausgabe für einen mit GPT partitionierten USB-Stick mit 16 GB (so beworben, tatsächliche Größe aber nur 15,4 GB): \\ {{{ Festplatte /dev/sdc: 14,34 GiB, 15401484288 Bytes, 30081024 Sektoren Festplattenmodell: SanDisk 3.2Gen1 Einheiten: Sektoren von 1 * 512 = 512 Bytes Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes Festplattenbezeichnungstyp: gpt Festplattenbezeichner: 1C1AD315-042D-427C-A72F-BBFF308CAECB Gerät Anfang Ende Sektoren Größe Typ /dev/sdc1 2048 30015447 30013400 14,3G Microsoft Basisdaten /dev/sdc2 30015448 30080983 65536 32M Microsoft Basisdaten }}} * Ausführliche Liste der Informationen zu den Partitionen: [[Vorlage( Befehl, "sudo fdisk -x /dev/sdX" ) ]] Beispielausgabe für denselben Stick wie vorstehend: \\ {{{ Festplatte /dev/sdc: 14,34 GiB, 15401484288 Bytes, 30081024 Sektoren Festplattenmodell: SanDisk 3.2Gen1 Einheiten: Sektoren von 1 * 512 = 512 Bytes Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes Festplattenbezeichnungstyp: gpt Festplattenbezeichner: 1C1AD315-042D-427C-A72F-BBFF308CAECB Erster nutzbarer LBA: 34 Letzter nutzbarer LBA: 30080990 Alternative LBA: 30081023 Partition entries starting LBA: 2 Zugeordnete Partitionseinträge: 128 Partition entries ending LBA: 33 Gerät Anfang Ende Sektoren Typ-UUID UUID Name Attr. /dev/sdc1 2048 30015447 30013400 EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 F4B863C7-39A1-41E7-A13A-D2974A8658CA Ventoy /dev/sdc2 30015448 30080983 65536 EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 B423B518-C6D6-495D-9364-5D3399E4FE81 VTOYEFI RequiredPartition GUID:62,63 }}} \\ Beispielausgabe für einen mit "MBR (DOS)" partitionierten USB-Stick mit 32 GB (so beworben, tatsächliche Größe aber nur 31,9 GB): \\ {{{ Festplatte /dev/sdc: 29,69 GiB, 31876710400 Bytes, 62259200 Sektoren Festplattenmodell: Alu Line Einheiten: Sektoren von 1 * 512 = 512 Bytes Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes Festplattenbezeichnungstyp: dos Festplattenbezeichner: 0xf71d721a Gerät Boot Anfang Ende Sektoren Kn Typ Start-C/H/S Ende-C/H/S Attr. /dev/sdc1 * 2048 62193663 62191616 7 HPFS/NTFS/exFAT 4/4/1 1023/254/2 80 /dev/sdc2 62193664 62259199 65536 ef EFI (FAT-12/16/32) 1023/254/2 1023/254/2 }}} = cfdisk = Das Programm cfdisk kommt mit einer via [wikipedia:ncurses:] realisierten Textoberfläche. Es ist interaktiv, selbsterklärend und stellt die wichtigsten Aufgaben über eine Menüsteuerung bereit. Einfache Routine-Aufgaben wie Anlegen und Löschen ganzer Partitionen erledigt man daher bequemer mit cfdisk anstelle von fdisk. Aufruf: [[Vorlage( Befehl, "sudo cfdisk OPTIONen DEVICE" ) ]] * OPTIONen ist auch hier eine möglicherweise leere Liste von Optionen nach folgender Tabelle 3. * DEVICE identifiziert den zu bearbeitenden Datenträger wie beim Aufruf von [#fdisk fdisk]. {{{#!vorlage Tabelle <-2 rowclass="titel">Tabelle 3: Ausgewählte Optionen beim Start von cfdisk +++ Option Beschreibung +++ `-V` Version des Programms anzeigen und beenden. +++ `-h` Hilfetext anzeigen und Programm beenden. +++ `-r` Programm im nur-Lesen-Modus starten. +++ `-z` Vorhandene Partitionstabelle ignorieren und mit leerer („ausgenullter“) Tabelle im Arbeitsspeicher beginnen. }}} Die Steuerung erfolgt über * den Pfeiltasten [[Vorlage( Tasten, auf) ]] und [[Vorlage( Tasten, ab) ]] zur Auswahl der zu bearbeitenden Partition oder freien Bereiches, * den Pfeiltasten [[Vorlage( Tasten, links) ]] und [[Vorlage( Tasten, rechts) ]] zur Auswahl der auszuführenden Aktion, * und der Eingabetaste [[Vorlage( Tasten, Eingabe ) ]] zur Auslösung der gewählten Aktion auf dem gewählten Bereich. Auch cfdisk bearbeitet zunächst wie fdisk nur eine Kopie der Partitionstabelle im Arbeitsspeicher und schreibt diese erst mit Ausführen der Aktion ''Schreiben'' auf den Datenträger. Vorsichtige Leute verwenden trotzdem die Option `-r`, wenn nur eine Besichtigung der Partitionstabelle erfolgen soll. Weitere Erklärungen und ausführliche Information liefert die [:man:Manpage]: [[Vorlage( Befehl, "man cfdisk" ) ]] = sfdisk = Das Programm sfdisk ist für Skripte vorgesehen. Es wird komplett über mitgegebene Optionen, Befehle und Eingabedaten von stdin gesteuert. Für interaktive Bedienung eignet es sich schlechter als [#cfdisk cfdisk] und [#fdisk fdisk]. {{{#!vorlage Warnung Das Programm sfdisk arbeitet anders als seine Schwestern fdisk und cfdisk: * Während die beiden anderen Programme die Partitionstabelle auf dem Datenträger erst überschreiben, wenn man es selbst per Befehl erlaubt/anfordert, schreibt sfdisk bei jedem Aufruf Änderungen direkt auf den Datenträger, sofern man es nicht beim Aufruf mit der Option `--no-act` verbietet. * Bei falschem Einsatz wird der Datenträger evtl. unbenutzbar. Der Einsatz in Skripten sollte gut überlegt werden. }}} == Syntax == Üblicherweise benutzt man das Programm sfdisk als [:root:], entweder in einem Terminal[5] mit einer Root-Shell[6] oder in einem Skript, welches unter dem Benutzer `root` ausgeführt wird. Ein typischer Aufruf sieht beispielsweise so aus: * [[Vorlage( Befehl, "sfdisk OPTIONen DEVICE Tabelle 4: Auswahl Optionen und Befehle für sfdisk +++ Option Beschreibung +++ `-v` Version des Programms anzeigen und beenden. +++ `-h` Hilfetext anzeigen und Programm beenden. +++ `-l` Partitionen anzeigen und Programm beenden. +++ `-n` (`no-act`) Alles bis auf den tatsächlichen Schreibvorgang auf den Datenträger ausführen. +++ `-d` (`--dump`) Komplette Partitionstabelle als Klartext auf stdout ausgeben. Die Ausgabe kann später wieder von sfdisk eingelesen und angewendet werden. +++ `-T` Bekannte Schemata zu Partitionierung (ID) und deren Bezeichnung (Name) auflisten. +++ `--no-reread` Vor Schreiben der Partitionstabelle nicht überprüfen, ob das Gerät benutzt wird.[[BR]]Die Angabe dieser Option ist normalerweise eine schlechte Idee! +++ `--force` Jegliche Konsistenzprüfungen vor Schreiben der Partitionstabelle abschalten.[[BR]]Die Angabe dieser Option ist normalerweise eine extrem schlechte Idee! }}} == Beispiele == {{{#!vorlage Hinweis In den Beispielen wird als Datenträger '''/dev/sdX''' genutzt, dieser muss auf die eigenen Belange abgestellt werden! }}} === Partitionstabelle anzeigen === Listen der Partitionstabelle: [[Vorlage( Befehl, "sudo sfdisk -l /dev/sdX" ) ]] Das ergibt dieselbe Ausgabe wie die entsprechende von [#Partitionierung-auflisten fdisk]. === Partitionstabelle sichern === In vielen Anweisungen wird zur Sicherung einer Partitionstabelle das Programm [:dd#MBR-Boot-Loader-und-Partitionstabelle-sichern:dd] vorgeschlagen. Dies ist mit Vorsicht anzuwenden, da dabei oft nur Teile gesichert werden und beispielsweise bei MBR die Einträge zu den logischen Laufwerken in der erweiterten Partition fehlen. Beim Einsatz von MBR mit einer erweiterten Partition ist sfdisk zum Sichern und Rückspielen der einfachste und schnellste Weg, um die Datenintegrität zu gewährleisten. Das Programm funktioiert aber auch mit GPT. * Quelle: Partitionstabelle des Datenträgers '''/dev/sdX''' * Ausgabe: '''Backup_sdX''' im eigenen [:Homeverzeichnis:Benutzerverzeichnis] (HOME) {{{#!vorlage befehl sudo sfdisk -d /dev/sdX >${HOME}/Backup_sdX }}} :arrow: Im Artikel [:Skripte/Partitionstabellen sichern:] findet man ein Skript zum Sichern aller Partitionstabellen der Typen "MBR (DOS)" und GPT. === Partitionstabelle zurückladen === * Eingabe: '''Backup_sdX''' aus dem Verzeichnis '''/backup''' (Das ist ein Skript für sfdisk.) * Ziel: Partitionstabelle des Datenträgers '''/dev/sdX''' {{{#!vorlage befehl sudo sfdisk --no-act /dev/sdX {{{This disk is currently in use - repartitioning is probably a bad idea. It's recommended to umount all file systems, and swapoff all swap partitions on this disk. }}} Die Warnung besagt, dass eine Bearbeitung von in das Dateisystem eingebundenen Partitionen eine ganz schlechte Idee ist, weil so etwas fast unvermeidlich zum Datenverlust führt. Wenn man diese Warnung sieht, sollte man daher, spätestens nach einer Abfrage der vorhandenen Partitionen, unverzüglich das Programm mit der Taste [[Vorlage( Tasten, Q ) ]] beenden und dann die Partitionen auf der Kommandozeile[3] manuell aushängen: [[Vorlage( Befehl, "umount /dev/sdX1" ) ]] Dieser Befehl ist für alle Partitionen zu wiederholen. Man benutze nicht die GUI für das Aushängen bzw. Auswerfen, dann dabei wird oft auch die noch benötigte Gerätedatei '''/dev/sdX''' entfernt. = Links = * [wikipedia:fdisk:] * [wikipedia:Partitionstabelle:] - Übersichtsartikel * [wikipedia:Master_Boot_Record:Master-Boot-Record] - (MBR) Legacy-MBR * [wikipedia:GUID_Partition_Table:GUID Partition Table] - (GPT) incl. Protectiv-MBR * [wikipedia:Solid-State-Drive#Ausrichtung: Alignment-Problematik am Beispiel SSD's] * [https://tldp.org/HOWTO/Partition/fdisk_partitioning.html Linux Partition HOWTO] {en} #tag: Partitionierung, System