TRIM auf verschlüsseltem Gerät mit Precise

TRIM auf verschlüsseltem Gerät mit Precise

Ich habe die Hauptdaten auf eine neue SSD migriert. (Samsung 840 EVO, 120 GB.) Meine ~ist eine verschlüsselte Partition, die automatisch von gemountet wird pam_mount. Das heißt, es gibt einen Datensatz /etc/security/pam_mount.conf.xmlfür diese Partition.

Ich möchte, dass es TRIM unterstützt. Ich weiß, dass es die Verschlüsselung etwas schwächt (d. h. eine Art Nebenkanal einrichtet), aber ich hoffe, es ist akzeptabel.

Ich habe versucht, es in zu aktivieren pam_mount.conf.xml. Ein Ansatz bestand darin, die Mount-Optionen einzuschließen discard, was angeblich automatisch das Verwerfen auf dem verschlüsselten Blockgerät ermöglichte:

<volume user="{USERNAME}" fstype="crypt" mountpoint="/home/{USERNAME}" path="/dev/sdb{NUMBER}"  options="defaults,noatime,nosuid,nodev,discard" />

discardEin weiterer Versuch bestand darin , (und auch discards) in die mntoptions aufzunehmen .

<mntoptions allow="discard,discards,nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />

Kein Glück. Der fstrim funktioniert immer noch nicht:

% sudo fstrim --verbose ~                        
fstrim: /home/{USERNAME}: FITRIM ioctl failed: Operation not supported

Habe ich etwas vergessen? Würde ein Upgrade auf 14.04 das Problem lösen? Der man cryptsetupBefehl sagt mir, dass --allow-discardses unterstützt wird, also hoffe ich, dass es funktionieren sollte. Die Kernelversion ist 3.13.0-35-generic, was in Ordnung zu sein scheint, da die Version 3.1+erforderlich ist.

Das zugrundeliegende Dateisystem ist ext4. Der fstrimBefehl funktioniert einwandfrei mit unverschlüsselten Dateisystemen (die ebenfalls ext4 sind), aber nicht mit dem Dateisystem, das mit dm-crypt (?)-Verschlüsselung umschlossen ist.

Beachten Sie, dass die discardMount-Option anscheinend verwendet wird:

% mount | grep ~
/dev/sdb{NUMBER} on /home/{USERNAME} type crypt (rw,nosuid,nodev,noatime,discard)

Antwort1

Das Kompilieren einer neuen Version aus pam-mountdem Quellcode hat geholfen. Ich musste ein .debvon libhx28und libhx-devvon Trusty installieren (was im Allgemeinen riskant ist), um eine neuere Version dieser Bibliothek zu erhalten.

Sie werden die neuere Version wahrscheinlich in einem neueren Ubuntu vorinstalliert haben, sodass Sie das Kompilieren überspringen können. Wenn möglich, können Sie auf Trusty aktualisieren. Ich möchte noch eine Weile bei Precise bleiben.

Das Aktivieren allow_discardsohne discardist ein hässlicher Hack.Patchprüft nur, ob ein Flag „discard“ vorhanden ist. Ich habe mich also entschieden, sowohl „discard“ als auch „nodiscard“ (in dieser Reihenfolge) einzugeben und hoffe, dass das funktioniert.

Funktioniert jetzt fstrimauf diesem Gerät, aber ich hoffe, dass das Verwerfen des Mount-Flags wirkungslos ist. Ich bin nicht sicher, ob ich es testen kann.

Alternativ könnte man es mit einer Neumontage versuchen, bei mir war dieser Ansatz jedoch nicht erfolgreich.

verwandte Informationen