23.5parted-Kommando
parted ist das wichtigste Partitionierungswerkzeug für Linux auf Kommandoebene. Es kommt sowohl mit MBR- als auch mit GPT-Partitionen zurecht. Details zu den vielen Funktionen von parted finden Sie unter:
http://www.gnu.org/software/parted
fdisk – Ein Relikt aus der Vergangenheit
Als Alternative zu parted ist bis heute auch fdisk beliebt. Da sich fdisk aber nur für Datenträger mit MBR-Partitionen eignet, gehe ich in diesem Buch auf fdisk nicht mehr ein.
Bearbeiten Sie mit parted nur die Partitionen, nicht deren Inhalt!
parted kennt diverse Kommandos, die nicht nur die Partitionen bearbeiten, sondern auch das darauf enthaltene Dateisystem. Das Handbuch rät von der Benutzung dieser Kommandos ab, und in zukünftigen parted-Versionen sollen diese Kommandos ganz eliminiert werden. Verwenden Sie parted nur zur Partitionierung! Um Dateisysteme einzurichten oder zu verändern, verwenden Sie besser die dafür vorgesehenen Kommandos außerhalb von parted, z.B. mkfs.ext4 oder resize2fs.
Beim Start von parted geben Sie das Festplatten-Device an. help oder auch kurz h führt zur Anzeige der zur Auswahl stehenden Kommandos. h kommando liefert einen knappen Hilfetext zu den einzelnen Kommandos. print zeigt die Partitionstabelle an – hier für eine 1,5-TByte-Festplatte, die bereits drei Partitionen enthält:
Standardmäßig zeigt parted Partitionsgrenzen und -größen in dezimalen Maßeinheiten an, also in MB = 106 Byte oder GB = 109 Byte. Eingaben ohne Maßeinheit werden als dezimale MByte interpretiert. Sie können auch explizit die gewünschte Einheit angeben – beispielsweise 100MiB (binäre MByte) oder 15GB (dezimale GByte).
Mit unit können Sie die gewünschte Maßeinheit für alle Ein- und Ausgaben festlegen. Mögliche Einstellungen sind MB und GB, MiB und GiB (binäre Zählweise, also GiB = 230 Byte) sowie % für Prozentangaben relativ zur Größe der Festplatte.
Wenn die Festplatte noch vollkommen ungenutzt ist und keine Partitionstabelle enthält, müssen Sie diese einrichten. Dazu führen Sie mklabel msdos für MBR-Partitionen oder mklabel gpt für GPT-Partitionen aus. Beachten Sie, dass Sie mit mklabel alle bisher vielleicht gespeicherten Daten der Festplatte verlieren!
Mit den Kommandos mkpart bzw. rm erzeugen bzw. löschen Sie Partitionen. Bei mkpart müssen Sie bei MBR-Partitionen den Typ (primary, extended oder logical) sowie die gewünschte Start- und Endposition angeben. Bei GPT-Partitionen wird der erste Parameter als frei wählbarer Partitionsname interpretiert.
Arbeiten ohne Undo-Funktion
Im Gegensatz zu fdisk, wo alle durchzuführenden Änderung nur vorgemerkt und erst mit dem Write-Kommando tatsächlich ausgeführt werden, führt parted jedes Partitionierkommando sofort aus!
Achten Sie immer darauf, dass Sie die richtige Festplatte bearbeiten. Wenn Sie beim Start von parted kein Device angeben, verwendet parted automatisch /dev/sda. Das ist möglicherweise nicht beabsichtigt.
Ärgerlicherweise macht es parted Nutzern extrem schwer, aneinanderliegende Partitionen zu definieren: Das folgende Kommando zeigt den Versuch, der gerade angelegten ersten Partition eine zweite hinzuzufügen, wobei die zweite Partition dort beginnen soll, wo die erste Partition endet:
parted quittiert das Kommando mit der Warnung, dass der Start der zweiten Partition um einen Sektor (in der Regel 512 Byte) verschoben werden muss, und fragt, ob das für Sie akzeptabel ist. Das ist es eben gerade nicht, weil Partitionen auf modernen Festplatten und SSDs unbedingt an 4k-Byte-Grenzen ausgerichtet sein sollen.
Nachdem Sie das Erzeugen der neuen Partition also abgelehnt haben, versuchen Sie es neuerlich, wobei Sie den Startpunkt diesmal aber in der Einheit MiB angeben und dabei zur vorherigen Partition eine Lücke von einem MByte frei lassen. Die Startposition 10241 ergibt sich aus der Rechnung 1024×10 + 1, weil jedes GiB aus 1024 MiB besteht.
Je größer der Datenträger, desto mühsamer wird das korrekte Berechnen der Startpunkte. Das können Sie sich ersparen, wenn Sie MiB als Einheit vorgeben und mit print die aktuelle Partitionstabelle ansehen. Die Spalte Ende gibt an, wo die jeweilige Partition endet. Zu diesem Wert addieren Sie 1 – und schon haben Sie den Startpunkt für die nächste Partition. Der Nachteil dieser Einstellung offenbart sich allerdings bei großen Datenträgern mit sechsstelligen und entsprechend unübersichtlichen MiB-Werten.
Normalerweise erzeugt mkpart Partitionen, die später ein Linux-Dateisystem aufnehmen. Dieser Partitionstyp ist auch für Software-RAID und LVM geeignet. Wenn Sie hingegen eine Swap- oder eine Windows-Partition erzeugen möchten, müssen Sie in einem zusätzlichen Parameter vor der Startposition den Dateisystemtyp angeben, z.B. linux-swap, fat32 oder ntfs. Weitere mögliche Dateisystemtypen liefert help mkpart.
Bevor Sie eine logische Partition auf einem MBR-Datenträger erzeugen können, müssen Sie eine erweiterte Partition anlegen (mkpart extended start ende). Gegebenenfalls können eine schon vorhandene erweiterte Partition mit resize vergrößern, sofern am Ende der erweiterten Partition noch freier Platz auf dem Datenträger ist. Das Kommando resize kann aber nicht für andere Partitionsarten verwendet werden.
Um eine Partition zu löschen, ermitteln Sie zuerst mit print die Nummern aller Partitionen. Anschließend löschen Sie mit rm n die gewünschte Partition, wobei n eine Partitionsnummer laut print ist.
Beim Löschen einer Partition gehen vorerst noch keine Daten verloren. Deswegen ist es prinzipiell möglich, diesen Schritt rückgängig zu machen, indem Sie die Partition mit exakt demselben Start- und Endpunkt neuerlich erzeugen. Das Problem dabei ist allerdings die Positionsangabe – diese muss auf den Sektor genau stimmen.
Wenn Sie die neue Partition als Teil eines LVM- oder RAID-Systems nutzen möchten, müssen Sie Zusatzattribute (Flags) entsprechend einstellen. Das erforderliche Kommando lautet set partitionsnummer attributname on/off. Mögliche Attribute sind unter anderem boot, lvm, raid und bios_grub.
Um mit parted eine EFI-Partition auf einem GPT-Datenträger einzurichten, verwenden Sie als Partitionstyp fat32 und die Flags boot und esp:
Wenn Sie eine Partition irrtümlich gelöscht haben, können Sie mit rescue versuchen, diese Partition wiederherzustellen. Dabei müssen Sie den ungefähren Start- und Endpunkt der Partition angeben. parted durchsucht den Datenträger dann nach bekannten Dateisystemen. Diese Suche gelingt umso schneller, je genauer Start- und Endpunkt sind. Wenn parted fündig wird, bietet es an, diese Partition wieder in die Partitionstabelle einzutragen:
Erwarten Sie keine Wunder vom Rescue-Kommando. Es kann nur dann zum Erfolg führen, wenn das Dateisystem unbeschädigt ist und nicht z.B. durch andere, überlappend platzierte Dateisysteme bereits teilweise überschrieben wurde.
Beispiel 1 (MBR)
Die folgenden Kommandos richten zuerst eine primäre Partition (500 MiB), dann eine erweiterte Partition (19,5 GiB) und darin eine logische Partition in derselben Größe ein. Beachten Sie, dass der Startpunkt für die logische Partition um 1 MiB größer ist als der Startpunkt der erweiterten Partition. Dadurch entsteht zwar eine kleine, ungenutzte Lücke, dafür sind die Partitionen aber optimal ausgerichtet.
Nun soll auf der Festplatte eine weitere logische Swap-Partition eingerichtet werden. Dazu muss zuerst die erweiterte Partition vergrößert werden. resize zeigt dabei eine vollkommen irreführende Warnung an – eine erweiterte Partition enthält ja ohnedies nie ein Dateisystem:
Beispiel 2 (GPT)
In einem zweiten Beispiel sollen auf einer Festplatte mit GPT zwei Partitionen eingerichtet werden, von denen eine später als Physical Volume für ein LVM-System dienen wird: