Linux – SSD – TRIM aktivieren – dm-crypt, lvm, ext4, grub

Letztens habe ich meinem Media-PC eine 64 GB SSD spendiert. Bekanntlich ist bei SSDs eine gute Garbage Collection und/oder TRIM vonnöten – sonst kann es zu Performanceverlusten und zu einer verkürzten Lebensdauer kommen!

Hintergrund: Das Dateisystem streicht „gelöschte“ Dateien nur aus dem Inhaltsverzeichnis, die eigentliche Datei aber bleibt weiter gespeichert. Nach einiger Zeit der Nutzung ist damit jeder Bereich des Laufwerks mit entweder aktuellen, oder noch nicht tatsächlich gelöschten Inhalten belegt. Bei Festplatten war das kein Problem, da sie ihre Magnetisierungszustände direkt ineinander übergehen lassen können. Flashspeicher hingegen müssen die noch gefüllten Flashzellen erst leeren, um sie im zweiten Durchgang mit der neuen Datei zu beschreiben. Diese doppelte Arbeit ist anhand einer dann bis zu doppelt so langen Schreibzeit nachvollziehbar.

Quelle: Wikipedia.de – Solid-State-Drive - Performanceverluste

Die Crucial m4 hat zwar eine gute Garbage Collection, aber ich habe bereits unter Mac OS X mit aktiviertem TRIM bessere Benchmarkergebnisse erzielen können als ohne. Daher wollte ich auf meinem Arch Linux HTPC auch Trim aktivieren.

Grundsätzlich unterstützt Linux zwei Arten des Discards [TRIM] (discard = verwerfen):

  • Batched Discard – Der Befehl fstrim /mnt/point/ weist das Dateisystem an, ungenutzte Bereiche zu suchen und diese dem Controller der SSD zu melden. Dieser Befehl muss sporadisch und manuell vom Anwender ausgeführt werden.
  • Online Discard – Der Kernel informiert das Laufwerk sofort, wenn Speicherbereiche durch Löschen von Dateien frei werden. Diese Funktion ist von Haus aus deaktiviert und muss vom Anwender in /etc/fstab mit der Option -o discard eingeschaltet werden.

Quelle: wiki.ubuntuusers.de – SSD

Allerdings wird Online Discard nicht gerade empfohlen, aufgrund der zahlreichen TRIM-Befehle kann auch hier die Leistung bzw. Haltbarkeit der SSD einbrechen! Daher sollte man Batched Discard verwenden, diesen kann man automatisiert per Crontab ausführen.

Damit die TRIM-Befehle korrekt bei der SSD ankommen Weiterlesen →

Arch Linux – Installation mit verschlüsseltem LVM

Schon vor einem Jahr war ich von Arch Linux absolut begeistert als ich mein NAS mit diesem Linux-Derivat aufsetzte. Durch die Arch Linux Install-HowTo von Voku (suckup_de) ist die Liebe zu dieser Distribution wieder neu entfacht! Mit diesem Artikel möchte ich Voku’s Arch Howto um ein verschlüsseltes Logical Volume (/, /home & swap) erweitern.


Partitionierung

Nach dem Punkt 2die Shell” werden wir erstmal die gewünschte Festplatte mit “fdisk” partitionieren, in meinem Fall “/dev/sda“.

Ich habe …

/dev/sda1 – 100 MB – für /boot
/dev/sda2 – den Rest – für LVM

… geplant.

Verschlüsselung

Aus Sicherheitsgründen ist empfehlenswert die Partition ein mal mit Zufallszahlen zu überschreiben, vor allen Dingen, wenn auf dieser vorher unverschlüsselte Daten gespeichert waren. Ansonsten sind unter Umständen viele Dateien nach dem Verschlüsseln noch auslesbar. (http://wiki.ubuntuusers.de/LUKS#Erstellen)

shred -vz /dev/sda2” löscht /dev/sda2 – 3 mal mit Zufallswerten und 1 mal mit Nullen

Jetzt laden wir das benötigte Kernel-Modul für unsere Verschlüsselung, …

… im Anschluss verschlüsseln wir unser /dev/sda2 und legen das gewünschte Entschlüsselungspasswort fest, …

… mit …

… öffnen wir die verschlüsselte Partition und mounten diese nach /dev/mapper/lvm.
Logical Volume Manager

Nachdem wir die Verschlüsselung angelegt haben, müssen wir nun das LVM erstellen
Weiterlesen →

Ubuntu/Debian – Kernel: 2.6.32.3 – Loop-AES selber kompilieren

Nach meinem Kernelupdate auf Version 2.6.32.3 wollte ich ganz normal, wie in der alten HowTo beschrieben, loop-AES kompilieren. Jedoch lief bereits das Kompilieren von util-linux-2.12r auf Fehler.

Um dieses Problem schnellstmöglich zu umgehen habe ich mich für die util-linux Alternative util-linux-ng entschieden. Kurz und knapp nochmal die veränderte HowTo: Weiterlesen →

Ubuntu/Debian – Loop-AES selber kompilieren

In einem älteren Artikel haben wir uns die veraltete loop-aes-source aus dem Debian-Repository beschafft. Diesmal werden wir uns die aktuellste Source vom Entwickler direkt holen und diese auf unserem Debian Lenny selbst kompilieren.

UPDATE: …funktioniert auch mit Ubuntu!

ACHTUNG: Wichtig ist das, dass Modul loop vorhanden ist. Bei manchen Distributionen ist loop direkt im Kernel kompiliert (CONFIG_BLK_DEV_LOOP=y) oder garnicht (CONFIG_BLK_DEV_LOOP=n), es muss aber als Modul vorhanden sein (CONFIG_BLK_DEV_LOOP=m) damit loop-AES dieses anpassen kann. Zum Kernel kompilieren kann mein Artikel oder die Ubuntuusers Wiki zu Rat gezogen werden.

Zuerst installieren wir uns ein wenig Kernelzubehör.

Jetzt holen wir uns die Source von util-linux und loop-AES. Weiterlesen →

Ubuntu/Debian – Loop-AES einrichten

Linux-Maskottchen Happy TuxEigentlich wollte ich euch einen Artikel über die Erstellung eines Software-RAID’s unter Debian schreiben, aber das wäre ein sinnloses Unterfangen gewesen. Dem Wiki-Eintrag bei ubuntuusers.de gibt es nämlich nichts mehr hinzuzufügen. Daher habe ich mich entschlossen euch “Loop-AES” etwas näher zu bringen, die AES-Verschlüssung sollte jedem von Euch ein Begriff sein. Was aber macht Loop-AES? Loop-AES erzeugt ein neues “loop”-Device, was euch beim ISO-Image mounten unter Linux schon ein Begriff sein könnte. Dieses Loop-Device wird zwischen dem eigentlichen Device und dem Mountpunkt gehangen.

Das Loop-Device verschlüsselt die Daten mit AES256 bevor diese auf das eigentliche Device geschrieben werden, je nach Einstellungen natürlich auch mit einer anderen Bit-Zahl. Loop-AES kann nicht nur Block-Devices verschlüsseln sondern auch Container die zum Beispiel mit “dd” erstellt werden können. Es gibt für Linux viele verschiedene Verschlüsselungsmöglichkeiten : Truecrypt, DM-Crypt, Loop-AES, Cryptsetup etc., warum ich mich für Loop-AES entschieden habe kann ich euch nicht sagen. Eine kleine HowTo möchte euch dennoch nicht vorenthalten:

Weiterlesen →