EINLEITUNG
Nach dem Einbau einer SSD in meinen Laptop und Neuinstallation von openSUSE Leap 42.1 mit Vollverschlüsselung via LUKS/dm-crypt stand ich vor einem Problem: TRIM ist für LUKS/dm-crypt nicht aktiviert. Das kann man herausfinden, wenn im Terminal “dmsetup table /dev/mapper/NamedesLUKSLaufwerks” eingibt. Die Info “allow_discard” wird NICHT ausgegeben.
Ein Post hier im Forum (https://forums.opensuse.org/showthread.php/495404-Gelöst-SATA-TRIM-mit-LUKS-auf-root-disk-aktivieren-unter-13-1) hat mir entscheidende Hinweise gegeben, ist jedoch nicht mehr ganz up-to-date (z.B. wird mittlerweile dracut verwendet), daher beschreibe ich hier meine Vorgehensweise. Eine große Hilfe war mir übrigens auch der Eintrag bei Ubuntuusers: https://wiki.ubuntuusers.de/SSD/TRIM/#TRIM-mit-Festplattenverschluesselung
VORWEG EIN HINWEIS ZUR SICHERHEIT DIESER KONFIGURATION:
Das Trimmen einer verschlüsselten SSD gibt potentiell Informationen über diese preis. Angreifer können hier Informationen über den Füllungsgrad, belegte/freie Sektoren, sowie ggfs. das verwendete Dateisystem und andere Metainformationen auslesen.
Hier muss jeder User eine Abwägung zwischen Sicherheit und Komfort (bzw. hier der Lebensdauer und Performance seiner SSD) treffen.
- Wenn jemand auf die absolute Sicherheit und Vertraulichkeit seiner Daten angewiesen ist und die Struktur der Daten auf dem Laufwerk und ähnliche Metainformationen Niemandem bekannt werden dürfen, sollte man TRIM NICHT aktivieren. Allerdings würde ich in diesem Fall sowieso zu weitergehenden Sicherheitsmaßnahmen im Sinne der plausiblen Abstreitbarkeit raten (denn das Vorhandensein eines LUKS-Laufwerks bestätigt ja auch schon, das jemand “etwas zu verbergen” hat).
- Wenn jemand seine Daten verschlüsselt, um “Gelegenheitsangreifern” das Auslesen von privaten Daten zu verwehren und ggfs. das Laufwerk später unbedenklich zur Zweitnutzung weitergeben zu können, ist TRIM auf der SSD vertretbar, denke ich.
ANLEITUNG
Schritt 0: Sicherungskopie der aktuellen initrd anlegen (/boot/initrd)
Schritt 1: Sicherungskopie der aktuellen crypttab anlegen (/etc/crypttab)
Schritt 2: crypttab editieren, als Mountoption für das LUKS-Laufwerk “luks, discard” statt “none” eintragen
Schritt 3: Neue initrd erstellen: Terminal als root öffnen, “dracut -f”
Schritt 4: Neustarten, jetzt ist TRIM für das LUKS-Laufwerk aktiviert. Dies kann überprüft werden im Terminal als root mit “dmsetup table /dev/mapper/NamedesLUKSLaufwerks”, das Ergebnis sollte dann in etwa so aussehen, mit der discard-Info am Ende: “0 975718448 crypt aes-xts-plain64 00000000 0 8:2 4096 1 allow_discards”
Schritt 5: Je nach Präferenz kann jetzt manuell getrimmt werden, ein Eintrag zum automatischen TRIM in die fstab erstellt werden (siehe Post oben) oder ein cronjob angelegt werden. Ich habe mich für letztes entschieden und habe unter cron.weekly ein Skript angelegt, das “fstrim -a -v” ausführt.