====== 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).
(Quelle: [[https://wiki.ubuntuusers.de/SSD/Alignment]])
=== 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
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/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 /dev/sd
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 /dev/sd
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=
Mit Zufallszahlen überschreiben
dd if=/dev/random of=
oder
dd if=/dev/urandom of=
===== 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//device/rescan
Danach sollte man im Syslog Einträge sehen wie, ": detected capacity change from ##### to #####"
Nun kann man die Partition erweitern mit ''parted'' oder mit ''growpart''.
* **parted** \\ parted
* Festplatte auswählen ''select /dev/''
* Partition vergrößern ''resizepart ''
* **growpart** \\ growpart /dev/
Zuletzt noch das Dateisystem erweitern und fertig.
resize2fs -p /dev/