EINLEITUNG
Nach dem Einbau einer SSD in meinen Laptop und Neuinstallation von openSUSE Leap 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 man im Terminal
dmsetup table /dev/mapper/[NamedesLUKSLaufwerks]
eingibt: Die Info
allow_discard
wird NICHT ausgegeben.
Die Anwendung von TRIM ist für Performance und Haltbarkeit einer SSD jedoch zu empfehlen.
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 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.de: 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 dadurch 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. 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
**Alle Aktionen müssen als root ausgeführt werden
Schritt 1: Sicherungskopie der aktuellen initrd anlegen
/boot/initrd
Schritt 2: Sicherungskopie der aktuellen crypttab anlegen
/etc/crypttab
Schritt 3: crypttab editieren, als Mountoption für das LUKS-Laufwerk
luks, **discard**
ergänzen
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 “allow_discards”-Info am Ende:
0 975931407 crypt aes-xts-plain64 0000000000000000000000000000000000000000000000000000000000000000 0 8:3 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 unter
etc/cron.weekly
ein Skript angelegt, das
fstrim -a -v
ausführt und loggt.
Vorlage für ein TRIM-Skript:
#!/bin/sh
LOG=/var/log/Trim_SSD.log
echo "*** $(date -R) ***" >> $LOG
fstrim -a -v >> $LOG