Disks: Partitionierung
Eine MBR-basierte Partitionstabelle einer Festplatte kann maximal vier Partitionen enthalten - vier primäre oder drei primäre und eine erweiterte Partition. Die erweiterte Partition kann eine zweistellige Anzahl logischer (= virtueller) Partitionen aufnehmen. Insgesamt sind maximal 15 Partitionen und 2 TB grosse Disks möglich. Wird häufig auf Systemen eingesetzt, die BIOS-Firmware ausführen.
Auf UEFI-Systemen ist dagegen GPT der Standard für das Layout der Partitonierungstabelle. Hier sind maximal 128 Partitionen möglich. Disks könne bis zu 8 ZB gross werden. Disks und Partitionen können über GUIDs identifiziert werden.
Das von Redhat empfohlene Kommandozeilen-Tool zur Partitionsverwaltung
heisst parted
, die GNOME-Variante gparted
. Fans des älteren
fdisk
können dieses ebenfalls verwenden; die TUI-Variante heisst cfdisk
. Während fdisk
Partitionen erzeugen, löschen und prüfen kann, ist parted
darüber
hinaus in der Lage, Partitionsgrössen zu ändern oder Partitionen zu
kopieren. Der grösste Nachteil von fdisk
ist, dass es nicht mit
Partitionen grösser als 2 TB und GUID Partition Table (GPT) umgehen kann.
Es gibt rund einhundert verschiedene Partitionstypen, z.B. FAT16, FAT32,
OS/2, NTFS, Linux, Linux swap usw. Die bereits eingerichteten Typen
lassen sich mit fdisk -l
in der Spalte „Id“ und „System“ einsehen.
Jeder Partitionstyp wird über dessen hexadezimale Nummer
angesprochen. Die gebräuchlichsten sind:
82
: Linux swap83
: Linux8e
: Linux LVM
fdisk
Art der Partitionen inkl. deren Grössen auflisten:
fdisk -l
Soll auf der Platte /dev/sdb
eine Partition angelegt werden, geht
man wie folgt vor:
fdisk /dev/sdb
Damit befindet man sich in der Kommandozeile des Tools. Um eine primäre oder eine erweiterte Partition zu erzeugen, müssen folgende Kommandos eingegeben werden:
n
: new, neue Partition erzeugenp
: primäre Partition (um eine erweiterte Partition zu erstellen,e
eingeben)1
: gewünschte Partitionsnummer von 1 bis 4 eingeben- Das Tool fragt nach zwei Zylinder-Zahlen: der erste Zylinder ist der kleinstmögliche Bereich auf der Festplatte für die kommende Partition, der letzte Zylinder der grösstmögliche (oft das Ende der Festplatte).Es geht aber auch anders: möchte man beispielsweise eine Partition mit einer Grösse von 100 MB erzeugen, verwendet man als zweite Angabe
+100M
.
p
: print, neue Partitionstabelle prüfen - wurde die Partition auch (erst mal nur im Memory) angelegt?w
: write, schreibt die Änderungen auf die Festplatte. Das Tool wird damit beendet.
Um den Typ einer primären Partition festzulegen, geht man folgendermassen vor:
fdisk /dev/sdb
t
: type, Partitionstyp festlegen - überL
wird eine Hilfe angezeigt83
: der Hex-Code für die allgemeine Linux-Partitionw
Um die Partition wieder zu löschen, verwendet man das Kommando d
innerhalb von fdisk
:
fdisk /dev/sdb
d
: delete, Partition löschen (wenn mehrere auf/dev/sdb
vorhanden sind, noch die passende Partition auswählen)w
: schreiben
Bemerkung
Ein Aufruf von partprobe
oder udevadm settle
hilft, sämtliche Änderungen an Festplatten und Partitionen dem Kernel bekanntzumachen, ganz ohne Neustart des Servers (natürlich nur solange sich nichts an der Geometrie einer aktiven Partition geändert hat).
parted
Bemerkung
Wird eine GPT verwendet, wird der erste Parameter primary
nach parted --script /dev/sd$disk mkpart ...
als Label der Partition interpretiert. Bei MBR ist dagegen ein Partitionstyp anzugeben.
Infos über die Disk auslesen:
parted /dev/vdb print
Die Disk vdb mit einer GPT und zwei Partitionen versehen (Vorsicht: Partitionsinformationen werden dadurch überschrieben):
parted --script /dev/vdb \
mklabel gpt \
mkpart primary 0% 50% \
mkpart primary 50% 100%
Die Disks sdb bis sde auf GPT setzen (Vorsicht: Partitionsinformationen werden dadurch überschrieben) und mehrere Paritionen einrichten, die insgesamt 100% der Disk nutzen, und bei der die erste durch den Startblock 2048s
sauber aligniert ist.
for disk in {b..e}
do
parted --script /dev/sd$disk mklabel gpt
parted --script /dev/sd$disk mkpart primary 2048s 50%
parted --script /dev/sd$disk mkpart primary 50% 77G
parted --script /dev/sd$disk mkpart primary 77G 100%
done
Ein zusätzliche Partition auf der Systemdisk einrichten:
parted /dev/vda 'unit s print'
# last "End" sector, for example 37328895
parted --script /dev/vda mkpart primary 37328896s 25G
# creates a partition up to position 25G, so with (25G - Pos 37328896s) in size
Disk per BIOS/MBR bootfähig partitionieren:
parted /dev/vdb mklabel msdos
parted /dev/vdb mkpart primary 1MiB 10G
parted /dev/vdb set 1 boot on
Disk per BIOS/GPT bootfähig partitionieren:
parted /dev/vdb mklabel gpt
parted /dev/vdb mkpart primary 2048s 10G
parted /dev/vdb set 1 bios_grub on
Alignment prüfen:
# check partition 2 for optimal alignment
parted /dev/vda align-check optimal 2
- Sind mehr als vier „primary“ Partitions möglich?
Ja. Das „primary“ ist hier logisch zu sehen, nicht physisch.
- Muss man sich über den „Name“ der Partition Sorgen machen?
Nein, völlig wurscht. Die Partitionen im Beispiel werden zwar als „Microsoft basic“ ausgegeben, enthalten aber trotzdem xfs-Dateisysteme:
# Start End Size Type Name 1 2048 1953791 953M Microsoft basic primary 2 1953792 3905535 953M Microsoft basic primary 3 3905536 5859327 954M Microsoft basic primary 4 5859328 10741759 2.3G Microsoft basic primary 5 10741760 21483519 5.1G Microsoft basic primary 6 21483520 37109759 7.5G Microsoft basic primary
Error: /dev/vdb: unrecognised disk label
Vorher
mklabel
verwenden:parted --script /dev/vda mklabel gpt
Built on 2024-11-18