为LUKS分区启用Trim
参考这篇文章
- 运行
lsblk --discard
确认Trim是否开启:如果分区对应的DISC-GRAN
和DISC-MAX
一项为0,则说明Trim未在该分区启用 - 修改grub的内核启动参数(
sudo vi /etc/default/grub
),找到GRUB_CMDLINE_LINUX_DEFAULT
这一项,在cryptdevice
一项后添加:allow-discards
,并在末尾添加rd.luks.options=discard
,最终的结果应形如GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=UUID=********-****-****-****-************:luks-********-****-****-****-************:allow-discards root=/dev/mapper/luks-********-****-****-****-************ rd.luks.options=discard"
。保存退出。 - 运行
sudo update-grub
,应用编辑后的grub配置文件。 - 重启,重新运行
lsblk --discard
查看,此时的结果应如下:
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
mmcblk0 0 16M 13.9G 0
└─mmcblk0p1 0 16M 13.9G 0
nvme0n1 0 512B 2T 0
├─nvme0n1p1 0 512B 2T 0
├─nvme0n1p2 0 512B 2T 0
│ └─luks-********-****-****-****-************ 0 **512B** **2T** 0
└─nvme0n1p3 0 512B 2T 0
└─luks-********-****-****-****-************ 0 0B 0B 0
星号标记处的数据应为非零,说明该分区已启用Trim,可以使用sudo fstrim -av
来手动对所有支持的分区发送Trim指令:
/boot/efi: 298.9 MiB (313450496 bytes) trimmed on /dev/nvme0n1p1
/: 606.8 GiB (651574157312 bytes) trimmed on /dev/mapper/luks-********-****-****-****-************
一下子Trim了600多G,可见我这盘很久没Trim了。
最后,打开每周一次的自动Trim:
sudo systemctl enable fstrim.timer && sudo systemctl start fstrim.timer