我有一台 Manjaro 系统,在 NVME SSD 上有一个 LUKS 加密的根文件系统。它设置为/
在启动时通过内核解密。
$ cat /proc/cmdline
initrd=\amd-ucode.img initrd=\initramfs-5.11-x86_64.img root=UUID=</dev/mapper/cryptroot UUID> rw cryptdevice=UUID=<SSD partition UUID>:cryptroot:allow-discards
$ cat /etc/fstab
# /dev/mapper/cryptroot
UUID=</dev/mapper/cryptroot UUID> / xfs rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota 0 0
# /dev/nvme0n1p1
UUID=</boot UUID> /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
这一切都有效,但最近我意识到 trim 没有启用。我将其添加:allow-discards
到内核命令行,如上所示。现在,每次运行时,fstrim -v /
即使文件系统活动很少,它也会修剪所有可用空间:
$ sudo fstrim -v /
/: 540.8 GiB (580689911808 bytes) trimmed
$ sudo fstrim -v /
/: 540.8 GiB (580660371456 bytes) trimmed
这是预期行为吗?我的其他 SSD(未加密)通常修剪得少得多fstrim
。dmsetup table
显示allow_discards
选项,因此应启用修剪。