Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
linux:partitionierung [2012/02/26 03:49] – st | linux:partitionierung [2019/11/20 15:49] (aktuell) – [partition alignment] st | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Partitionierung ====== | ||
+ | Wenn man einen neuen Datenträger zu seinem (Linux-)System hinzufügen möchte (z. B. eine 2 Festplatte oder eine externe USB-Festplatte) muß dieser Datenträger zuerst **partitioniert und formatiert werden**. | ||
+ | |||
+ | |||
+ | |||
+ | ===== Vorüberlegungen ===== | ||
+ | |||
+ | Die Einteilung des verfügbaren Festplattenplatzes hängt von der Verwendung des Systems ab. Hierzu sollten Sie einige Dinge beachten: | ||
+ | |||
+ | Für den Start des Einzelbenutzermodus (single-user) müssen /root, /bin, /sbin, /etc, /lib und /dev auf der root (/ | ||
+ | |||
+ | :!: Jede Partition, auf die die Benutzer des Systems Schreibzugriff haben, sollte auf einer eigenen Partition liegen. | ||
+ | Die Problematik wird in dem Artikel [[http:// | ||
+ | |||
+ | Mindestens die Bereiche /home und /tmp bzw. /var/tmp sollten eine extra Partition darstellen. Dies verhindert einerseits, dass ein Benutzer das Root-Dateisystem (/) unbenutzbar macht und das gesamte System in einen instabilen Zustand bringt und andererseits die oben im Artikel genannten Hardlink-Angriffe. Es bleibt natürlich ein gewisser Platz (meist fünf Prozent, dieser Wert kann mit tune2fs, Parameter '' | ||
+ | |||
+ | Es sollte auch für jeden Bereich, der automatisch mit Daten gefüllt wird (beispielsweise /var und hier insbesondere das Verzeichnis /var/log), eine eigene Partition vorgesehen werden. Auf Debian-Systemen sollte /var großzügiger bemessen werden, da unter / | ||
+ | |||
+ | Wenn Software installiert werden soll, die nicht in der Debian-Distribution enthalten ist, sollten auch diese Bereiche auf eigenen Partitionen liegen; diese werden dann bei einer Neuinstallation des Systems nicht überschrieben. Nach dem „[[http:// | ||
+ | |||
+ | |||
+ | |||
+ | ^ [[wpde> | ||
+ | | / | je nach System: bei minimal Servern kann wenig reichen bei Desktops sind 5 GB meist minimum | | ||
+ | | /usr | 2000 MB, wird manchmal auch schreibgeschützt eingehangen | | ||
+ | | /var | hier schreiben viele Dienste z.B. eMail- oder Fax-Server Daten rein, also genug Platz lassen | | ||
+ | | /home | | | ||
+ | | /tmp | > 500 MB, hier landen bei Desktops auch mal DVD-Images von Brennprogrammen, | ||
+ | Zusätzlich wird dann noch die SWAP-Partition angelegt. | ||
+ | |||
+ | |||
+ | ===== Partionierungsprogramme ===== | ||
+ | |||
+ | Zum Partitionieren gibt es unter Linux viele Programme. Auch das altbekannte **fdisk** (nicht so leicht zu bedienen, dafür immer vorhanden) steht zur Verfügung, auch wenn es nicht mit GPT-Partionierungen funktioniert). | ||
+ | |||
+ | ==== cfdisk ==== | ||
+ | |||
+ | cfdisk ist menugeführt und kann ohne Kenntnis spezieller Befehle bedient werden, kann allerding nicht mit GPT-Partionierung benutzt werden (also nicht bei Festplatten/ | ||
+ | |||
+ | cfdisk wird mit dem Gerätenamen der entsprechenden Festplatte, die partitioniert werden soll, als Argument aufgerufen. Wird kein Gerätename angegeben wird /dev/hda angenommen. | ||
+ | |||
+ | Hat man cfdisk aufgerufen, wird das momentane Partitionierungsschema angezeigt. Im unteren Bereich habe ich eine Auswahl an möglichen Befehlen. Besteht noch unpartitionierter Platz, kann ich darin durch auswählen des unpartitionierten Platzes per Pfeil-auf/ | ||
+ | |||
+ | Sofern noch nicht alle primären Partitionen vergeben sind, werde ich dann gefragt, ob ich eine primäre oder eine logische Partition anlegen möchte (auswahl mit Pfeiltasten) und werde dann nach der Größe der Partition gefragt. Steht das hinterlegte Feld oben auf einer bereits angelegten Partition, verändern sich unten die möglichen Kommandos. Hier kann ich eine Partition löschen, ein Boot-Flag setzen oder den Typ der Partition verändern. Den **Typ** muß ich beispielsweise dann verändern, wenn ich statt einer normalen Linuxpartition eine Swap-Partition oder eine Partition mit einem Fat-Dateisystem erstellen möchte. Wenn ich " | ||
+ | |||
+ | Die Änderungen werden übrigens nicht sofort auf die Festplatte geschrieben. Dies erledigt erst der Befehl " | ||
+ | |||
+ | |||
+ | ==== parted ==== | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | Hier eine Befehlsfolge um auf /dev/sda eine primäre Partition (vom Anfang bis zum letzten Sektor) incl. LVM-Typ und Boot-Flag zu erzeugen. | ||
+ | |||
+ | < | ||
+ | mklabel gpt | ||
+ | mkpart primary ext4 2048s -1s | ||
+ | set 1 lvm on | ||
+ | set 1 boot on | ||
+ | |||
+ | quit | ||
+ | </ | ||
+ | |||
+ | Hier eine Befehlsfolge um auf /dev/sda eine primäre Partition (vom Anfang bis zum letzten Sektor) incl. Partition für [[server: | ||
+ | |||
+ | < | ||
+ | parted --align optimal /dev/sda | ||
+ | (parted) mklabel gpt | ||
+ | (parted) mkpart primary ext4 2048s -1s | ||
+ | Warning: You requested a partition from 1049kB to 3001GB. | ||
+ | The closest location we can manage is 1049kB to 3001GB. | ||
+ | Is this still acceptable to you? | ||
+ | Yes/No? Y | ||
+ | (parted) set 1 raid on | ||
+ | (parted) quit | ||
+ | </ | ||
+ | |||
+ | * [[https:// | ||
+ | |||
+ | === partition alignment === | ||
+ | |||
+ | Wenn die Partitionen nicht aber den Grenzen ausgerichtet ist, die das darunter liegende Speichersystem (z.B. eine Festplatte oder ein RAID-Array) hat dann kommt es zu zusätzlichen Schreib-/ | ||
+ | |||
+ | <box 100% blue round right | der einfachste Weg> | ||
+ | Einfach mit optimalem alignment starten: <code bash> | ||
+ | oder/und mit Prozentwerten arbeiten (parted ermittelt dann selbst die besten Werte): <code bash> | ||
+ | </ | ||
+ | |||
+ | Es geht aber auch per Hand: | ||
+ | < | ||
+ | parted /dev/DEVICE | ||
+ | (parted) align-check | ||
+ | alignment type(min/ | ||
+ | Partition number? 1 | ||
+ | 1 aligned | ||
+ | </ | ||
+ | |||
+ | Beim Anlegen von Partitionen warnt parted davor Partitionen ohne korrektes alignment anzulegen: | ||
+ | < | ||
+ | |||
+ | Wie legt man also eine korrekt ausgerichtete Partition an? | ||
+ | |||
+ | Zuerst einmal sollte die erste Partition bei einer durch 8 teilbaren Sektorzahl anfangen, in der Praxis hat sich 1MiB bzw. 2048 Sektoren durchgesetzt (([[windows: | ||
+ | |||
+ | (parted) mkpart primary ext4 2048s -1s | ||
+ | |||
+ | Bei diesem Befehl kommt immer die Warnung, weil der letzte Sektor nicht korrekt ausgerichtet ist (-1s bedeutet der letzte verfügbare Sektor). Allerdings ist das nicht wirklich ein Problem, da es sich nur um den letzten Sektor handelt. | ||
+ | |||
+ | Wenn man wirklich den letzten Sektor auch noch ausrichten möchte dann muss ein Taschenrechner her: | ||
+ | |||
+ | - **Gesamtanzahl der Sektoren anzeigen** (wir legen eine nicht ordentlich ausgerichtete Partition mit maximaler Größe an, wird später gelöscht): <code bash> | ||
+ | Warning: You requested a partition from 512B to 4993GB. | ||
+ | The closest location we can manage is 17,4kB to 4993GB. | ||
+ | Is this still acceptable to you? | ||
+ | Yes/No? Yes | ||
+ | Warning: The resulting partition is not properly aligned for best performance. | ||
+ | Ignore/ | ||
+ | (parted) unit s | ||
+ | (parted) print</ | ||
+ | Model: Adaptec DAS (scsi) | ||
+ | Disk /dev/sdd: 9751715840s | ||
+ | Sector size (logical/ | ||
+ | Partition Table: gpt | ||
+ | |||
+ | Number | ||
+ | | ||
+ | </ | ||
+ | - **Rechenaufgabe**: | ||
+ | - **Gesamtgröße** (9751715773) **- Anfang** (2048) = 9751713725 **verbleibende Sektoren** (wenn der freie Anfangsbereich abgezogen wird) | ||
+ | - Vielfaches von 2048 suchen (Ergebnis ist 17165950): **verbleibende Sektoren** (9751713725) **/ 2048** = **Vielfaches** (4761578, | ||
+ | - **Gesamtgröße der Partition abzüglich des " | ||
+ | - **Ende berechnen**: | ||
+ | - von den 9751713792 Sektoren **ziehen wir noch einen Sektor ab**, da der erste Sektor 0 schon mitzählt: Also muss eine korrekt ausgerichtete Partition genau bei Sektor 9751713791 enden (Schreibweise: | ||
+ | - **Erstellen wir die korrekte Partition** ((vorher die alte Partion löschen mit <code bash> | ||
+ | (parted) unit s | ||
+ | (parted) print free | ||
+ | Model: Adaptec DAS (scsi) | ||
+ | Disk /dev/sdd: 9751715840s | ||
+ | Sector size (logical/ | ||
+ | Partition Table: gpt | ||
+ | |||
+ | Number | ||
+ | 34s 2047s 2014s Free Space | ||
+ | | ||
+ | 9751713792s | ||
+ | </ | ||
+ | |||
+ | == Sonderfall RAID-Array == | ||
+ | |||
+ | Raid bei Partition 1 aktivieren: <code bash>set 1 raid on</ | ||
+ | |||
+ | * Partionen sollten bei einem Vielfachen der stripe-Größe anfangen | ||
+ | * stride-size/ | ||
+ | |||
+ | |||
+ | == Links == | ||
+ | |||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | |||
+ | |||
+ | === partition erweitern === | ||
+ | |||
+ | Partition (hier Nr. 1) auf 100% erweitern:< | ||
+ | ==== gparted / qtparted ==== | ||
+ | Die grafischen Oberflächen **'' | ||
+ | |||
+ | :!: TIP: [[http:// | ||
+ | |||
+ | |||
+ | ===== Auslagerungs- bzw. Swap Partition und Datei ===== | ||
+ | |||
+ | Siehe auch: [[http:// | ||
+ | ==== Auslagerungspartition ==== | ||
+ | |||
+ | Eine beliebige Partition (Beispielangabe /dev/SWAP) kann mit <code bash> | ||
+ | |||
+ | Anschließend kann die Auslagerungsdatei | ||
+ | * sofort aktiviert werden (gilt bis zum Neustart): <code bash> | ||
+ | * oder für die dauerhafte Nutzung in der Datei ''/ | ||
+ | /dev/SWAP none swap sw 0 0 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Auslagerungsdatei ==== | ||
+ | |||
+ | - Image erzeugen (hier: Größe 1G):< | ||
+ | - Signatur für die Auslagerungsdatei erzeugen:< | ||
+ | - Dateirechte setzen:< | ||
+ | sudo chmod 600 / | ||
+ | - Beispielausgabe:< | ||
+ | on whole disk. Use -f to force. | ||
+ | Setting up swapspace version 1, size = 1048576 KiB | ||
+ | no label, UUID=eeafde5c-477e-4a63-b656-83cc94abfadd | ||
+ | </ | ||
+ | - Anschließend kann die Auslagerungsdatei | ||
+ | * sofort aktiviert werden (gilt bis zum Neustart): <code bash> | ||
+ | * oder für die dauerhafte Nutzung in der Datei ''/ | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | ===== Defekte Partitionstabelle reparieren ===== | ||
+ | |||
+ | Fehler: Der Zugriff auf Partitionen klappt nicht mehr, gparted zeigt beim Aufruf aus dem Terminal heraus diese Fehlermeldung: | ||
+ | < | ||
+ | |||
+ | Das bedeutet die GPT-Partitionstabelle ist beschädigt, | ||
+ | Wenn die erkannte(n) Partion(en) nicht korrekt erkannt wurde(n) dann besser nichts schreiben sondern gleich mit q beenden (und andere Hilfe suchen). | ||
+ | |||
+ | <code bash> | ||
+ | < | ||
+ | |||
+ | Caution! After loading partitions, the CRC doesn' | ||
+ | Warning! Main partition table CRC mismatch! Loaded backup partition table | ||
+ | instead of main partition table! | ||
+ | |||
+ | Warning! One or more CRCs don't match. You should repair the disk! | ||
+ | |||
+ | Partition table scan: | ||
+ | MBR: protective | ||
+ | BSD: not present | ||
+ | APM: not present | ||
+ | GPT: damaged | ||
+ | |||
+ | **************************************************************************** | ||
+ | Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk | ||
+ | verification and recovery are STRONGLY recommended. | ||
+ | **************************************************************************** | ||
+ | |||
+ | Command (? for help): p | ||
+ | Disk /dev/sdj: 5860533168 sectors, 2.7 TiB | ||
+ | Logical sector size: 512 bytes | ||
+ | Disk identifier (GUID): 4CECBE99-7919-4909-9686-D5DEE416376E | ||
+ | Partition table holds up to 128 entries | ||
+ | First usable sector is 34, last usable sector is 5860533134 | ||
+ | Partitions will be aligned on 2048-sector boundaries | ||
+ | Total free space is 2014 sectors (1007.0 KiB) | ||
+ | |||
+ | Number | ||
+ | | ||
+ | |||
+ | Command (? for help): w | ||
+ | |||
+ | Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING | ||
+ | PARTITIONS!! | ||
+ | |||
+ | Do you want to proceed? (Y/N): Y | ||
+ | OK; writing new GUID partition table (GPT). | ||
+ | The operation has completed successfully.</ |