我已将主要数据迁移到新的 SSD。(三星 840 EVO,120GB。)我的~
是 自动挂载的加密分区。也就是说,此分区pam_mount
在 中有记录。/etc/security/pam_mount.conf.xml
我希望它支持 TRIM。我知道这会稍微削弱加密(即建立某种侧通道),但我希望这是可以接受的。
我尝试在 中启用它pam_mount.conf.xml
。一种方法是将其包含discard
在挂载选项中,据说这会自动允许在加密块设备上丢弃:
<volume user="{USERNAME}" fstype="crypt" mountpoint="/home/{USERNAME}" path="/dev/sdb{NUMBER}" options="defaults,noatime,nosuid,nodev,discard" />
discard
另一种尝试是将(以及)包含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 选项:
% mount | grep ~
/dev/sdb{NUMBER} on /home/{USERNAME} type crypt (rw,nosuid,nodev,noatime,discard)
答案1
从源代码编译新版本就成功了。为了获得此库的较新版本,pam-mount
我必须安装Trusty的.deb
版本(这通常很危险)。libhx28
libhx-dev
您可能在较新的 Ubuntu 中安装了较新的版本,因此您可以跳过编译。如果可以,您可以升级到 Trusty。我想继续使用 Precise 一段时间。
现在,启用allow_discards
没有discard
是一个丑陋的黑客行为。修补只是检查是否存在“discard”标志。因此,我决定同时放置“discard”和“nodiscard”(按此顺序),并希望它能奏效。
现在fstrim
此设备可以正常工作,但我希望丢弃挂载标志无效。不确定我是否可以测试它。
或者,人们可以尝试重新安装,但我用这种方法没有成功。