过去,在 Linux 上正确启用 SSD 的 TRIM 需要两个步骤:
- 运行
fstrim
一次,处理迄今为止所有“未修剪”的块,然后 discard
在fstab中设置标志(以便修剪将继续)。
我有点落后于时代了。现在,我看到有关较新 Linux 发行版中包含的fstrim.timer服务的信息,并且我看到有关使用fstrim.timer、fstrim
和的组合的冲突信息。discard
我的问题是,在现代 Linux(撰写本文时为现代)上,在 SSD 上启用 TRIM 的首选方法是什么?是否只是启用fstrim.timer并让它做它的事情?discard
不再需要使用该标志了吗?
如果重要的话,我对 Ubuntu >= 22 (Jammy) 和 Debian >= 10 (Buster) 特别感兴趣。
如果您使用
discard
,则不需要fstrim.timer
,这基本上意味着“fstrim
不时自动为您运行”。discard
不“继续”任何事情,它只是意味着删除文件时会触发 TRIM。换句话说,如果在使用 挂载文件系统时删除了某些文件
nodiscard
,那么即使您稍后使用 挂载文件系统,它们所使用的逻辑块也不会被 TRIMdiscard
(除非某些新文件是为了“重新安装”而创建的)。 use”这些逻辑块现在也被删除)。fstrim
另一方面,无论是从计时器运行还是由您手动运行,都会告诉文件系统驱动程序当前未使用的所有逻辑块都可以进行 TRIM 处理。这就是为什么您可能想
fstrim
在开始使用之前(之后也可以)运行一次discard
。或者blkdiscard
在格式化分区之前(之后不行)。mkfs
(无论如何,许多程序默认情况下都会触发等效的操作。)