Preciseで暗号化されたデバイスをTRIM

Preciseで暗号化されたデバイスをTRIM

メイン データを新しい SSD に移行しました。 (Samsung 840 EVO、120GB) 私の は、~によって自動マウントされた暗号化されたパーティションです。つまり、このパーティションには にpam_mountレコードがあります。/etc/security/pam_mount.conf.xml

TRIM をサポートしてほしいです。暗号化が少し弱まる (つまり、何らかのサイドチャネルを確立する) ことは承知していますが、受け入れられることを願っています。

でこれを有効にしようとしましたpam_mount.conf.xml。 1 つの方法は、マウント オプションに含めることでしたdiscard。これにより、暗号化されたブロック デバイスでの破棄が自動的に許可されると言われました。

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

discardもう 1 つの試みは、 (およびdiscards) を mntoptions に含めることでした。

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

運が悪かった。fstrim はまだ機能しません:

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

何か忘れているでしょうか? 14.04 にアップグレードすれば問題は解決するでしょうか?man cryptsetupコマンドを実行すると がサポートされていることが--allow-discards分かるので、動作するはずです。カーネル バージョンは で3.13.0-35-generic、バージョンが必要なので問題ないようです3.1+

基礎となるファイルシステムは ext4 です。このfstrimコマンドは、暗号化されていないファイルシステム (これも ext4) では完全に正常に動作しますが、dm-crypt (?) 暗号化でラップされたファイルシステムでは動作しません。

discardマウント オプションが使用されていることに注意してください:

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

答え1

ソースからの新しいバージョンをコンパイルするとpam-mountうまくいきました。このライブラリの新しいバージョンを取得するには、と.debTrustyをインストールする必要がありました (一般的にこれは危険です)。libhx28libhx-dev

おそらく、新しい Ubuntu には新しいバージョンが最初から入っているはずなので、コンパイルを省略できます。可能であれば、Trusty にアップグレードできます。私はしばらく Precise を使い続けたいと思っています。

有効allow_discardsにしないのはdiscard醜いハックです。パッチ「discard」フラグの存在を確認するだけです。そこで、「discard」と「nodiscard」の両方を(この順序で)配置して、うまくいくことを期待することにしました。

現在fstrim、このデバイスは動作しますが、マウントフラグの破棄が無効になっていることを願っています。テストできるかどうかはわかりません。

あるいは、再マウントを試みることもできますが、この方法では成功しませんでした。

関連情報