💾 TRIM externe SSD und udev-Regel
TRIM externe SSD mit und ohne LUKS
Im Gegensatz zu meiner NVMe-SSD, die ich extern per Thunderbolt 3/4 mit einem ORICO NVMe-Gehäuse am PC nutze, unterstützen viele externe USB-Gehäuse leider nicht ohne Weiteres TRIM.
ext4 überschreibt Daten direkt, unabhängig davon, ob TRIM verfügbar ist – das hilft, die Leistung der SSD zu erhalten, selbst wenn TRIM fehlt. Ohne TRIM kann die Performance langfristig leicht sinken, da die interne Garbage Collection der SSD weniger effektiv arbeitet.
Btrfs hingegen nutzt Copy-On-Write, wodurch alte Datenblöcke ohne TRIM weiterhin belegt bleiben. Das führt langfristig zu Fragmentierung und Leistungseinbußen – daher ist in diesem Fall ext4 die bessere Wahl.
🧩 Fehlermeldung beim TRIM-Versuch
sudo fstrim -v /run/media/jo/SSD-T5-500GB
# Fehlermeldung:
# Verwerfungsvorgang wird nicht unterstützt
# oder "the discard operation is not supported"
💡 Gerät identifizieren
lsblk
Beispiel: Das Blockgerät /dev/sda entspricht deinem Mountpoint.
🧮 TRIM-Unterstützung prüfen
lsblk --discard /dev/sda
Wichtig:
DISC-GRAN (Granularität) und DISC-MAX (maximale Größe) müssen ungleich Null sein.
Wenn beide Werte 0 sind, wird TRIM nicht unterstützt.
In diesem Fall kann TRIM durch eine udev-Regel aktiviert werden.
🧰 TRIM für externe SSDs aktivieren (udev-Regel für TRIM-Passthrough)
Falls eine externe SSD wie z.B. Samsung T5, T7 oder T9 laut lsblk --discard kein TRIM unterstützt, kann das am Controller des Gehäuses liegen. Wenn der Controller UASP (USB Attached SCSI Protocol) unterstützt, lässt sich TRIM mit einer Regel aktivieren.
🔍 Gerät identifizieren
lsusb
Beispielausgabe:
Bus 002 Device 006: ID 04e8:61f5 Samsung Electronics Co., Ltd Portable SSD T5
➡️ idVendor: 04e8 | idProduct: 61f5
🧾 udev-Regel erstellen
sudo nano /etc/udev/rules.d/50-usb-ssd-trim.rules
Einfügen (pro SSD eine Zeile mit den passenden IDs) – Beispiel:
# Samsung T5 SSD 500GB (TRIM aktivieren)
ACTION=="add|change", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="61f5", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"
# Samsung T9 SSD 2TB (TRIM aktivieren)
ACTION=="add|change", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="61fd", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"
⚠️ Hinweis:
Die idVendor und idProduct müssen exakt mit der Ausgabe vonlsusbübereinstimmen.
Falls TRIM weiterhin nicht funktioniert, unterstützt der Controller des Gehäuses möglicherweise kein TRIM.
Speichern:
Mit STRG+X, dann J und Enter bestätigen – oder mit F2 beenden und speichern.
🔁 Regeln neu laden
sudo udevadm control --reload-rules && sudo udevadm trigger
🧪 Testen
lsblk --discard
sudo fstrim -v /run/media/jo/SSD-T5-500GB
Beispielausgabe:
/run/media/jo/SSD-T5-500GB: 457,4 GiB (491104407552 Bytes) getrimmt
🔄 Nun können alle Dateisysteme getrimmt werden
sudo fstrim -av
🧠 Diagnose: TRIM- und UASP-Unterstützung prüfen
🔧 TRIM-Support der SSD prüfen
sudo pacman -S --needed hdparm
sudo hdparm -I /dev/sda | grep -i trim
Wenn keine Ausgabe erscheint, unterstützt die SSD kein TRIM.
⚡ UASP-Support prüfen
lsusb -t
Beispiel:
|__ Port 004: Dev 006, If 0, Class=Mass Storage, Driver=uas, 10000M
Driver=uas → UASP aktiv
Driver=usb-storage → kein UASP
TRIM erfordert UASP.
Ohne UASP werden TRIM-Befehle von vielen externen SSDs blockiert.
🔒 TRIM und LUKS-Verschlüsselung
Eine verschlüsselte Platte sollte nicht getrimmt werden, da TRIM potenziell Rückschlüsse auf gelöschte Daten zulässt.
Daher ist TRIM bei LUKS standardmäßig deaktiviert.
Prüfe mit:
lsblk --discard
Wenn du TRIM bewusst erlauben möchtest:
sudo cryptsetup --allow-discards --persistent refresh <LUKS-PARTITION>
Du wirst nach der Passphrase der verschlüsselten Partition gefragt.
Nach erfolgreicher Eingabe ist TRIM-Passthrough dauerhaft aktiv.
Danach prüfe nochmals mit:
lsblk --discard
TRIM-Passthrough überprüfen:
sudo cryptsetup luksDump /dev/sda1 | grep -i discard
Wenn
Flags: allow-discards
erscheint, ist TRIM erfolgreich aktiviert.
Getestet mit einer T9 und LUKS-Verschlüsselung:
sudo fstrim -v /run/media/jo/Samsung-T9-2TB
/run/media/jo/Samsung-T9-2TB: 1,2 TiB (1305653325824 Bytes) getrimmt
oder alle:
sudo fstrim -av
➡️ TRIM wirkt nur auf die entschlüsselten Bereiche, nicht auf die Rohdaten.
Für den Privatgebrauch meist unbedenklich – bei hohen Sicherheitsanforderungen besser deaktiviert lassen.