[[Vorlage(Archiviert)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Root-Rechte:] }}} [[Inhaltsverzeichnis(2)]] {{{#!vorlage hinweis Dieser Artikel ist Teil der Artikelserie [:SSD:], die das Thema [wikipedia:Solid_State_Drive:Solid State Drives] behandelt. Dieser Artikel geht in allen Beschreibungen davon aus, dass das SSD als '''/dev/sda''' im System eingebunden ist. Die Befehle müssen bei davon abweichenden Systemen daher gegebenenfalls angepasst werden. }}} [[Bild(Wiki/Icons/SSD.png, 64, align=left)]] Bei der [:Partitionierung:] bringt ein korrektes Ausrichten („Alignment“) der Partitionen respektive der Dateisysteme deutliche Performance-Vorteile. Diese Maßnahme bringt den mit Abstand größten Geschwindigkeitszuwachs und sollte in jedem Falle durchgeführt werden. Ein nicht optimales Partitionsalignment kann dazu führen, dass sich ein 4.096 Byte großer [wikipedia:Dateisystem#Organisation_von_Massenspeichern:Dateisystemblock] über zwei 4.096 Byte große SSD-Pages (siehe Artikel [:SSD/Grundlagen#Aufbau-der-SSD:Aufbau der SSD]) erstreckt. Achtet man beim Partitionieren auf diese Besonderheiten, kann man Performance-Engpässe sehr einfach vermeiden. Weitere Informationen zum „Partition Alignment“ kann man auf der Wiki-Seite von [http://www.thomas-krenn.com/de/wiki/Partition_Alignment Thomas Krenn] {de} finden. {{{#!vorlage experten Es werden in diesem Artikel durchweg die binären Einheiten Kibibyte (KiB), Mebibyte (MiB) und Gibibyte (GiB) verwendet, welche sich jeweils um den Faktor 1024 (= 2 hoch 10) unterscheiden. Dies ist wesentlich für ein korrektes Alignment. Sie sind nicht zu verwechseln mit den Einheiten Kilobyte (kB), Megabyte (MB) und Gigabyte (GB), welche auf dem Dezimalsystem basieren und daher den Faktor 1000 benutzen (siehe auch [wikipedia:Byte#Vergleich:]). Zum Verständnis der Details ist zu beachten, dass bei der heute üblichen [wikipedia:Logical_Block_Addressing:LBA]-Adressierung von Blöcken (hier als Sektoren bezeichnet) auf der Festplatte die Zählung bei "0" beginnt. Der [wikipedia:Master_Boot_Record:MBR] hat also die Block-/Sektornummer "0"; das erste MiB einer Festplatte umfasst somit die Blöcke/Sektoren 0 - 2047. }}} = Grundlagen = Wichtig für das korrekte Alignment des [:Dateisystem:Dateisystems] ist die korrekte Ausrichtung aller Partitionen einschließlich der logischen. Bei der erweiterten Partition ist es hingegen unerheblich, ob diese korrekt ausgerichtet wird, da diese nur als Rahmen für beliebig viele logische Partitionen oder Laufwerke dient (siehe Artikel [:Partitionierung/Grundlagen#Primaere-Partitionen-erweiterte-Partition-und-logische-Laufwerke:Partitionierung/Grundlagen]). ## {{{#!vorlage Warnung ## Eine Partitionierung stellt einen tiefen Eingriff in die Struktur einer Festplatte dar. Vorhandene Daten gehen dabei verloren und können nur mit großem Aufwand wieder hergestellt werden. Eine [:Datensicherung:] ist daher Pflicht. ## }}} Die [:Ubiquity:Installationsprogramme] in unterstützten Ubuntu-Versionen bzw. aktuelle Versionen von [:GParted:] und [:fdisk:]/[:gdisk:] richten neu angelegte Partitionen automatisch an den für SSD wichtigen Mebibyte-Grenzen (MiB) aus. {{{#!vorlage Warnung Damit die eingerichtete Ausrichtung (Alignment) nicht durcheinander gerät oder gar der gesamte Speicherplatz als belegt markiert wird, sollte man Daten oder einzelne Partitionen nicht mit Anwendungen auf die SSD kopieren, die nur alle Sektoren kopieren. Dazu gehören neben Abbild- oder Partitionierungsprogrammen, die das verwendete Dateisystem nicht kennen, auch das Kommandozeilenwerkzeug [:Shell/dd:dd]. }}} = Partitionieren mit GUI = [[Bild(ssd-gparted.png,200,right)]] Man kann bedenkenlos mit dem grafischen Installationsprogramm respektive mit [:GParted:] partitionieren, das von Haus aus mit SSD sowie neueren konventionellen Festplatten (laut c't 4/11 seit Anfang 2010) zurechtkommt. Diese nutzen die 4096 Byte („4K“) großen Sektoren, so dass die erste Partition (sowie alle folgenden) korrekt beim logischen Sektor 2048 beginnen. Beachten muss man jedoch, dass bei der Partitionierung im Feld ''"Ausrichten an"'' die Option `MiB` ausgewählt wird (siehe Bild rechts). = Partitionieren im Terminal = Zum Partitionieren kann man [:fdisk:] benutzen. Die Änderungen an der Partitionstabelle werden erst auf die Festplatte geschrieben, wenn man die Option `w` benutzt. Abbrechen kann man die Partitionierung jederzeit, wenn man den Befehl `q` benutzt. Man startet die Partitionierung durch folgenden Befehl in einem Terminal [1] mit Root-Rechten [2] : {{{#!vorlage befehl sudo fdisk /dev/sda }}} Die Partitionierung selbst findet im Terminal statt. Die Ausgabe des obigen Befehls lautet etwa wie folgt: {{{Befehl (m für Hilfe): }}} An dieser Stelle empfiehlt es sich, die Taste [[Vorlage(Tasten, m)]] zu nutzen, welche eine Hilfe anzeigt. Die Tastenbelegungen sind wie folgt: {{{#!vorlage Tabelle <-2 rowclass="titel"> Optionen von fdisk +++ Parameter Bedeutung +++ [[Vorlage(Tasten, a)]] (De)Aktivieren der bootfähig-Markierung +++ [[Vorlage(Tasten, b)]] verschachtelte BSD-Festplattenbezeichnung bearbeiten +++ [[Vorlage(Tasten, c)]] (De)Aktivieren der DOS-Kompatibilitätsmarkierung +++ [[Vorlage(Tasten, d)]] Eine Partition löschen +++ [[Vorlage(Tasten, g)]] Eine neue leere GPT-Partitionstabelle erstellen +++ [[Vorlage(Tasten, i)]] Informationen über eine Partition ausgeben +++ [[Vorlage(Tasten, l)]] Die bekannten Dateisystemtypen anzeigen +++ [[Vorlage(Tasten, m)]] Hilfe anzeigen +++ [[Vorlage(Tasten, n)]] Eine neue Partition anlegen +++ [[Vorlage(Tasten, o)]] Eine neue leere DOS-Partitionstabelle erstellen +++ [[Vorlage(Tasten, p)]] Die Partitionstabelle ausgeben +++ [[Vorlage(Tasten, q)]] Beenden ohne Speichern der Änderungen +++ [[Vorlage(Tasten, s)]] Eine neue leere Sun-Partitionstabelle erstellen +++ [[Vorlage(Tasten, t)]] Einen Partitionstyp ändern +++ [[Vorlage(Tasten, u)]] Die Einheit für die Anzeige/Eingabe ändern +++ [[Vorlage(Tasten, v)]] Die Partitionstabelle überprüfen +++ [[Vorlage(Tasten, w)]] Die Tabelle auf die Festplatte schreiben und das Programm beenden +++ [[Vorlage(Tasten, x)]] Zusätzliche Funktionen (nur für Experten) }}} Mit [[Vorlage(Tasten, o)]] wird eine neue leere DOS-Partitionstabelle angelegt. Dies ist bei unbenutzten SSDs sinnvoll oder wenn man alte, möglicherweise fehlerhafte DOS-Partitionstabellen neu schreiben will. Zudem werden so sämtliche Partitionen am schnellsten gelöscht. {{{ Eine neue DOS-Festplattenbezeichnung 0x9cf7b0eb wurde erstellt. }}} Anschließend gibt man [[Vorlage(Tasten, p)]] ein, um sich die Partitionstabelle anzeigen zu lassen. Diesen Befehl kann und sollte man immer dann benutzen, wenn man mit Taste [[Vorlage(Tasten, n)]] eine neue Partition angelegt hat, um zu überprüfen, dass alles korrekt eingetragen worden ist. Dies sieht dann ungefähr wie folgt aus (die letzte Zeile ist noch leer, da noch keine Partition angelegt worden ist): {{{Befehl (m für Hilfe): p Festplatte /dev/sda: 223,6 GiB, 240065183744 Bytes, 468877312 Sektoren 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: 0x9cf7b0eb }}} Mit dem Befehl [[Vorlage(Tasten, n)]] wird nun die erste Partition angelegt. Man muss sich entscheiden, ob man eine erweiterte oder eine primäre Partition anlegen möchte (siehe Artikel [:Partitionierung/Grundlagen#Primaere-Partitionen-erweiterte-Partition-und-logische-Laufwerke:Partitionierung/Grundlagen]). {{{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-468877311, Vorgabe 2048): Letzter Sektor, +Sektoren oder +Größe{K,M,G,T,P} (2048-468877311, Vorgabe 468877311): +10G }}} Nachdem in diesem Beispiel mit [[Vorlage(Tasten, p)]] eine primäre Partition und eine Partitionsnummer (in diesem Beispiel `1`) ausgewählt worden ist, ist der Standardwert für den ersten Sektor anzugeben. Man kann per [[Vorlage(Tasten, Enter)]] den vorgegeben Wert „2048” auswählen. Abschließend wird man gefragt, welchen Wert der letzte Sektor haben soll. Im Beispiel ist `+10G` eingegeben worden, die Partition soll eine Kapazität von 10 GiB (Gibibyte) haben. An dieser Stelle kann man also entweder direkt die genaue Anzahl der Sektoren eintragen oder eine Größe mit den Befehlen `+10k` (10 Kibibyte), `+50M` (50 Mebibyte) oder `+20G` (20 Gibibyte) erstellen lassen (diese drei Zahlen fungieren nur als Beispiele – es ist jede andere Zahl möglich). Die korrekte Anzahl an Sektoren wird dabei automatisch vergeben. Wie oben empfohlen, ist hier mit [[Vorlage(Tasten, p)]] die Partitionstabelle angezeigt worden. Wie man sieht, ist die eben erstellte 10-Gibibyte-Partition eingetragen worden. {{{Befehl (m für Hilfe): p Festplatte /dev/sda: 223,6 GiB, 240065183744 Bytes, 468877312 Sektoren 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: 0xc6178d53 Gerät Boot Anfang Ende Sektoren Größe Kn Typ /dev/sda1 2048 20973567 20971520 10G 83 Linux }}} An dieser Stelle ist die Erstellung der zweiten Partition erfolgt. Wieder sind dazu die Befehle in der Reihenfolge [[Vorlage(Tasten, n)]] , [[Vorlage(Tasten, p)]] , [[Vorlage(Tasten, 2)]] , [[Vorlage(Tasten,Enter)]] (vorgegebener Standardwert des ersten Sektors übernommen) und [[Vorlage(Tasten,Enter)]] (vorgegebener Standardwert des letzten Sektors übernommen) ausgeführt worden. Damit ist eine zweite Partition angelegt worden, welche den kompletten Rest der Festplatte einnimmt. {{{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): p Partitionsnummer (2-4, Vorgabe 2): 2 Erster Sektor (20973568-468877311, Vorgabe 20973568): Letzter Sektor, +Sektoren oder +Größe{K,M,G,T,P} (20973568-468877311, Vorgabe 468877311): Eine neue Partition 2 des Typs „Linux“ und der Größe 213,6 GiB wurde erstellt. }}} Wieder folgt mit [[Vorlage(Tasten, p)]] eine Übersicht aller erstellten Partitionen (= Kontrolle). Die korrekten Startsektoren kann man mit Hilfe eines Taschenrechners überprüfen: Die Anfangssektoren müssen __immer__ durch 2048 teilbar sein. {{{Befehl (m für Hilfe): p Festplatte /dev/sda: 223,6 GiB, 240065183744 Bytes, 468877312 Sektoren 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: 0xc6178d53 Gerät Boot Anfang Ende Sektoren Größe Kn Typ /dev/sda1 2048 20973567 20971520 10G 83 Linux /dev/sda2 20973568 468877311 447903744 213,6G 83 Linux }}} Ist man nun mit allem einverstanden, nutzt man [[Vorlage(Tasten, w)]] um die Partitionstabelle zu schreiben. Mit [[Vorlage(Tasten, q)]] verwirft man alle Einträge und beendet das Programm. = Alignment überprüfen = {{{#!vorlage hinweis Es müssen nur primäre und logische Partitionen korrekt ausgerichtet sein. Erweiterte Partitionen sind nur Container und müssen nicht ausgerichtet werden. }}} Es gibt zwei Arten, das korrekte Alignment zu überprüfen. Beide werden in einem Terminal [1] mit Root-Rechten [2] ausgeführt. == fdisk == Man kann mit einem der beiden folgenden Kommandos das vorgenommene Alignment überprüfen: {{{#!vorlage befehl sudo sfdisk -d /dev/sda }}} oder {{{#!vorlage befehl sudo fdisk -l -u /dev/sda }}} {{{#!vorlage hinweis Die Meldung: "Partition X endet nicht an einer Zylindergrenze." kann man ignorieren. Diese sollte nur erscheinen, wenn man die Option `-u` vergessen hat. }}} Der Installer hat dabei die Partitionen auf 1 MiB (Mebibyte) ausgerichtet. Dies erkennt man daran, dass die Nummer des Startsektors der jeweiligen Partition durch 2048 teilbar ist (2048 Sektoren multipliziert mit 512 Byte pro Sektor = 1.048.576 Bytes = 1 Mebibyte, abgekürzt 1 MiB). {{{sudo sfdisk -d /dev/sda label: dos label-id: 0x5a1151bb device: /dev/sda unit: sectors /dev/sda1 : start= 2048, size= 259164160, type=7, bootable /dev/sda2 : start= 453253120, size= 15622144, type=82 /dev/sda3 : start= 259166208, size= 194086912, type=83 }}} respektive {{{sudo fdisk -l -u /dev/sda Festplatte /dev/sda: 223,6 GiB, 240065183744 Bytes, 468877312 Sektoren 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: 0x5a1151bb Gerät Boot Anfang Ende Sektoren Größe Kn Typ /dev/sda1 * 2048 259166207 259164160 123,6G 7 HPFS/NTFS/exFAT /dev/sda2 453253120 468875263 15622144 7,5G 82 Linux Swap / Solaris /dev/sda3 259166208 453253119 194086912 92,6G 83 Linux Partitionstabelleneinträge sind nicht in Festplatten-Reihenfolge. }}} == parted == Um mit `parted` das Alignment zu überprüfen, nutzt man folgendes Kommando: {{{#!vorlage befehl sudo parted /dev/sda align-check opt ## opt 1 würde die erste Partition testen, opt 2 die zweite… }}} Gibt man keine Partitionsnummer hinter `opt` ein, so wird man im Anschluss an den Befehl nach der Partitionsnummer gefragt, welche man eingibt und mit [[Vorlage (Tasten, Return)]] bestätigten muss. Die Ausgabe sieht bei korrektem Alignment wie folgt aus: {{{sudo parted /dev/sda align-check opt Partitionsnummer? 1 1 ausgerichtet }}} = Links = * Links zum Alignment von SSD: * [http://thunk.org/tytso/blog/2009/02/20/aligning-filesystems-to-an-ssds-erase-block-size/ Ted Ts'os Blog: Aligning filesystems to an SSD’s erase block size] {en} * [http://www.thomas-krenn.com/de/wiki/Partition_Alignment#Linux Wiki auf thomas-krenn.com: Partition Alignment] {de} * [http://www.ocztechnologyforum.com/forum/showthread.php?54379-Linux-Tips-tweaks-and-alignment&p=373226#post373226 Partition alignment for OCZ Vertex in Linux] {en} * [http://forum.corsair.com/forums/showpost.php?p=448636&postcount=5 Dual Boot Linux/Windows 7 SSD Alignment Confusion (Corsair)] {en} * [http://www.ocztechnologyforum.com/forum/showthread.php?82287-Using-The-Linux-Flasher-With-Parted-Magic ocztechnologyforum.com Using The Linux Flasher With Parted Magic] {en} * Partitionieren mit fdisk: * [:fdisk:] * [wikipedia:Fdisk:fdisk] * [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html The Linux Documentation Project: Linux Partition HOWTO – Partitioning with fdisk] {en} * [https://ata.wiki.kernel.org/index.php/ATA_4_KiB_sector_issues#L-2._Userspace_tools_status_.28thanks_to_Karel_Zak.5B13.5D.29 wiki.kernel.org:fdisk supports 4KiB physical sector size (util-linux-ng >= 2.17)] {en} #tag: Hardware, System, Installation, Shell