Festplatten
Allgemeine Infos zu Festplatten.
SSD
Infos zu SSD Festplatten
Alignment
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 Dateisystem-Block über zwei 4.096 Byte große SSD-Pages erstreckt. Achtet man beim Partitionieren auf diese Besonderheiten, kann man Performance-Engpässe sehr einfach vermeiden.
Wichtig für das korrekte Alignment des 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.
Die Installationsprogramme richten seit „Maverick Meerkat“ neu angelegte Partitionen automatisch an den für SSD wichtigen Mebibyte-Grenzen (MiB) aus. Auch aktuelle Versionen von gparted und fdisk/gdisk arbeiten nach diesem Schema.
Prüfung
Überprüfen mit z.B. parted
parted /dev/sda align-check opt
Die Ausgabe sollte sein:
Partitionsnummer? 1 1 aligned
oder per fdisk
fdisk -l -u /dev/sda
Hier sollte die Ausgabe so sein:
isk /dev/sda: 1000.2 GB, 1000204886016 bytes 255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000d8343 Device Boot Start End Blocks Id System /dev/sda1 * 2048 20973567 10485760 83 Linux /dev/sda2 20973568 312581807 145804120 83 Linux
Der Installer hat dabei die Partitionen auf 1 MiB (Mebibyte) ausgerichtet. Dies erkennt man daran, dass die Nummer des Start-Sektors 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).
Alignment berechen
quelle: http://www.helsic.de/?p=1592
parted – optimal Partition Alignment Wenn bei dem Erstellen einer GPT-Partition mit parted, wie z.B. hier beschrieben, folgender Hinweis auftaucht Warning: The resulting partition is not properly aligned for best performance. dann sollte die Partitionierung erneut erfolgen – diesmal mit Parametern, die “properly aligned” sind. Die einfache Variante für eine Partition, die die größtmögliche Festplattenkapazität nutzen läßt, ist folgende: (parted) mkpart primary xfs 1 -1 Beispiel: knecht ~ # parted /dev/sdb Warning: Could not determine physical sector size for /dev/sdb. Using the logical sector size (512). GNU Parted 2.3 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) (parted) print Error: /dev/sdb: unrecognised disk label (parted) mklabel gpt (parted) mkpart primary xfs 1 -1 (parted) unit s (parted) print Model: AMCC 9690SA-4I DISK (scsi) Disk /dev/sdb: 35155869696s Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 2048s 35155867647s 35155865600s primary Dies lässt sich auch manuell ausrechnen: (parted) unit s (parted) print free Model: AMCC 9690SA-4I DISK (scsi) Disk /dev/sdb: 35155869696s Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 34s 35155869662s 35155869629s Free Space Maximal verfügbare Sektoren, MaxSectors: 35155869629 Begin bei Sektor 2048 (1MiB). Ende berechnen: MaxSectors – 2048 = AvaibleSectors 35155869629-2048 = 35155867581 Ein vielfaches von 2048 ist optimal: AvaibleSectors / 2048 = MaxCountCyl 35155867581 / 2048 = 17165950,967285156 MaxCountCyl * 2048 = SizeInSectors 17165950 * 2048 = 35155865600 35155865600 + 2048 = 35155867648 Davon einen abziehen, da der erste Sektor schon mitzählt: 35155867648 -1 —> 35155867647 (parted) mkpart primary File system type? [ext2]? xfs Start? 2048 End? 35155867647 (parted) print Model: AMCC 9690SA-4I DISK (scsi) Disk /dev/sdb: 35155869696s Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 2048s 35155867647s 35155865600s primary (parted)
Löschen / Wipen
SSD
Quelle: https://wiki.ubuntuusers.de/SSD/Secure-Erase/
Da SSD-Speichercontroller eigenständig zu speichernde Daten auf unterschiedliche Speicherblöcke verteilen, muss beim Wipen anders vorgegangen werden als mit magnetischen Datenträgern.
Diese ließen sich bislang einfach überschreiben. DBAN war dazu recht beliebt.
Bei einer SSD würde DBAN grundsätzlich Speicherblöcke überschreiben, es wäre aber nicht sichergestellt, dass zusammenhängende Speicherblöcke überschrieben oder einfach nur freie Speicherblöcke beschrieben würden. Das Überschreiben der gesamten SSD würde sie auch nur unnötig belasten bzw. altern lassen.
Namhafte Hersteller bieten für ihre SSDs eigene Software zum Löschen an.
Solche Software weißt die SSD über den ATA-Befehl „Secure Erase“ an, ihre Speicherblöcke zu leeren. Das kann auch mit Linux gemacht werden.
Mit „Secure Erase“ setzt man die SSD in den Werkszustand zurück. Unter Umständen wird die SSD wieder so schnell wie zu Anfang.
Vorbereitungen
Die SSD muss direkt am SATA-Controller und nicht per Adapter angeschlossen sein.
Sie darf nicht gemountet, gesperrt oder sich im „Freeze-Mode“ befinden.
Zum Prüfen des „Freeze-Mode“ die Informationen der SSD auslesen.
hdparm -I /dev/sd<BUCHSTABE_DES_GERÄTES>
In der Ausgabe sieht man oben die Angaben zum Hersteller und das Model, unten sieht man die Stati zur Sicherheit und ob die SSD sich im „Freeze-Mode“ befindet.
... Security: supported not enabled not locked not frozen not expired: security count supported: enhanced erase ...
„enabled“, „locked“ und „frozen“ sollten wie oben zu sehen, nicht gesetzt und „enhanced erase“ sollte unterstützt sein.
Wenn die SSD sich im „Freeze-Mode“ befindet, kann der Suspend-Mode oder das erneute Verbinden der SSD helfen:
- Suspend-Mode
- den PC in den Schlafmodus versetzen und dann wieder aufwecken
systemctl suspend
- danach wieder mit
hdparm -I …
kontrollieren
- SSD im laufenden Betrieb neu verbinden
- dazu muss der S-ATA Bus im „AHCI“ Modus laufen und der entspr. S-ATA Port als „hot-plug“ eingestellt sein
- SSD aus dem System entfernen
echo 1 | sudo tee /sys/block/sd<BUCHSTABE_DES_GERÄTES>/device/delete
- erst danach das S-ATA Kabel und danach das Stromkabel im laufenden Betrieb entfernen und in umgekehrter Reihenfolge wieder anschließen
- nach einigen Sek. erneut mit
hdparm -I …
kontrollieren
Wenn kein „Freeze-Mode“ gesetzt ist, muss noch die Sicherheit aktiviert sein, dazu setzt man ein Festplatten-Passwort.
hdparm --user-master u --security-set-pass <PASSWORD> /dev/sd<BUCHSTABE_DES_GERÄTES>
Jetzt wieder per Befehl hdparm -I …
prüfen.
Der Status „enabled“ solte jetzt nicht mehr auf „not enabled“ stehen.
SSD Löschen
Wenn alle Vorbereitungen erfüllt sind, darf man den PC nicht neu starten, sonst fängt man von vorne an, da „Freeze-Mode“ und die Sicherheit zurückgesetzt werden.
Die SSD nun mit folgendem Befehl löschen, also in den Werkszustand versetzen.
time hdparm --user-master u --security-erase <PASSWORD> /dev/sd<BUCHSTABE_DES_GERÄTES>
Das Löschen von SSDs ist recht schnell, im Gegensatz zu herkömmlichen magnetischen Datenträgern.
Wenn man erneut mit hdparm -I …
prüft sollte die Sicherheit wieder deaktiviert sein.
herkömmliche Festplatten
Mit dd
lassen sich auch Geräte vollkommen löschen (Low-Level-Format).
Mit Nullen überschreiben
dd if=/dev/zero of=<PFAD_ZU_GERÄT>
Mit Zufallszahlen überschreiben
dd if=/dev/random of=<PFAD_ZU_GERÄT>
oder
dd if=/dev/urandom of=<PFAD_ZU_GERÄT>
Partition vergrößern
Vergrößert man eine Festplatte (z.b. in einer virtuellen Umgebung), muss diese Änderung im Betriebssystem bekannt gemacht und danach die Partition erweitert werden.
Ein Reboot lässt das Betriebssystem automatisch nach Äderungen der Hardware suchen. Möchte man keinen Reboot dafür durchführen, sucht man manuell nach Änderungen der Festplatten.
echo 1 > /sys/class/block/<GERÄTENAME>/device/rescan
Danach sollte man im Syslog Einträge sehen wie, „<GERÄTENAME>: detected capacity change from ##### to #####“
Nun kann man die Partition erweitern mit parted
oder mit growpart
.
- parted
parted
- Festplatte auswählen
select /dev/<GERÄTENAME>
- Partition vergrößern
resizepart <NUMMER_DER_PARTITION>
- growpart
growpart /dev/<GERÄTENAME> <NUMMER_DER_PARTITION>
Zuletzt noch das Dateisystem erweitern und fertig.
resize2fs -p /dev/<GERÄTENAME_MIT_PARTITIONSNUMMER>