wiki.ubuntuusers.desagt, wenn ich TRIM auf einer verschlüsselten SSD verwenden möchte, benötige ich mindestens Cryptsetup 1.4 und Kernel 3.1. Brauche ich das, wenn ich die Partitionen erstelle und die Verschlüsselung einrichte, oder reicht ein anschließendes Upgrade?
Antwort1
Ubuntu 11.10 Oneiric wird nicht mit Cryptsetup 1.4 ausgeliefert, Precise jedoch schon. Ich weiß nicht, ob Cryptsetup auf Oneiric aktualisiert werden kann oder nicht. Da Precise in einem Monat veröffentlicht wird, können Sie auch auf diese Veröffentlichung warten, bevor Sie TRIM mit verschlüsselten Partitionen in Betracht ziehen. Der Kernel kann danach immer noch aktualisiert werden.
Aushttp://code.google.com/p/cryptsetup/wiki/Cryptsetup140:
Unterstützt die Option --allow-discards, um Discards/TRIM-Anfragen zuzulassen.
Seit Kernel 3.1 unterstützen dm-crypt-Geräte optional (nicht standardmäßig) Block Discards-Befehle (TRIM).
Wenn Sie diesen Vorgang aktivieren möchten, müssen Sie ihn bei jeder Aktivierung manuell mit --allow-discards aktivieren.
cryptsetup luksOpen --allow-discards /dev/sdb test_disk
ACHTUNG: Es gibt mehrere Sicherheitsfolgen, bitte lesen Sie mindestens http://asalor.blogspot.com/2011/08/trim-dm-crypt-problems.html bevor Sie es aktivieren.
Wie Sie sehen, ist diese Funktion aufgrund der eingeschränkten Sicherheit, wie im verlinkten Blog erwähnt, standardmäßig nicht aktiviert. Wenn Sie also Cryptsetup auf Kernel 3.0 (dem mit Precise gelieferten) verwenden, haben Sie keine TRIM-Unterstützung auf Ihren verschlüsselten Partitionen. Nach dem Upgrade auf 3.1+ haben Sie diese Funktion immer noch nicht, es sei denn, Sie aktivieren sie.
Dazu müssen Sie /etc/crypttab
nach der Installation Änderungen vornehmen (ich bin nicht sicher, ob dies während der Installation möglich ist) und die discard
Option hinzufügen. Siehe auchcrypttab(5).
Antwort2
Ich habe eine Schritt-für-Schritt-Anleitung zum Aktivieren von TRIM mit LUKS-verschlüsselten Partitionen in Ubuntu 12.04 oder jedem Debian mit Cryptsetup 1.4+ und Kernel 3.1+ gepostet. (Sie können sie gerne hierher kopieren, wenn einige Askubuntu-Richtlinien dies für notwendig erachten.)
Beispiel-Setup
Notebook mit SSD als einziges Laufwerk, Linux in einer einzelnen ext4-LVM-Root-Partition mit LVM-Swap-Partition installiert, beides über eine mit LUKS verschlüsselte logische Partition.
SSD:/dev/sda
$ sudo fdisk -l /dev/sda
/dev/sda1 # boot partition (83) (unencrypted, ext4)
/dev/sda2 # extended partition
/dev/sda5 # logical partition (83) with LUKS encryption
$ ls /dev/mapper
/dev/mapper/sda5_crypt # encrypted LUKS device in physical /dev/sda5 partition
/dev/mapper/volumegroup-root # root partition sda5_crypt
/dev/mapper/volumegroup-swap # swap partition sda5_crypt
Wie man
Erstellen Sie eine Sicherungskopie aller Ihrer Daten. Sie greifen in Ihr Dateisystem ein, daher ist eine Sicherungskopie einfach eine gute Idee.
Stellen Sie sicher, dass Sie über die erforderlichen Kernel- und Cryptsetup-Versionen verfügen (3.1 und 1.4, z. B. in Ubuntu 12.04, aber Vorsicht, zum Zeitpunkt des Schreibens dieses Artikels ist 12.04 noch eine Beta-Version).
Fügen Sie den Dateisystemoptionen der verschlüsselten LVM-Volumes in Ihrer /etc/fstab-Datei den Parameter discard hinzu. Dadurch wird dem Dateisystem Ihrer LVM-Partition mitgeteilt, dass Sie TRIM verwenden möchten.
/dev/mapper/volumegroup-root / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
Der letzte Schritt reicht jedoch nicht aus. Solange LUKS nicht weiß, dass Sie TRIM verwenden möchten, blockiert es aus Sicherheitsgründen effektiv alle TRIM-Vorgänge, die vom Dateisystem der LVM-Partition ausgehen. Fügen Sie den Cryptdevice-Optionen in /etc/crypttab den Parameter „discard“ hinzu, damit LUKS das Discard-Verhalten der LVM-Partition akzeptiert.
sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
Bauen Sie Ihr Initramfs neu auf. Die Crypttab-Optionen werden dort gespeichert und beim Booten verwendet.
sudo update-initramfs -c -k all
Neustart.
Überprüfen Sie, ob TRIM jetzt aktiv ist.
sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
Wenn der letzte Befehl ein Ergebnis wie dieses (
1 allow_discards at
das Ende) anzeigt, sind Sie fertig.0 77656056 crypt aes-cbc-essiv:sha256 abc[...]c7a0c 0 8:5 2056 1 allow_discards