假设我们有一个ext4
文件系统映像,我们将其转储到 SSD 上(使用dd
)。经过几次安装后,我们了解到我们应该使用标志向驱动器discard
发出命令。由于不清楚是否会TRIM
ext4
修剪所有空闲块第一次挂载后discard
,我们进行手动在线修剪:
fstrim /mount/point
希望这不会与discard
选项交互。如果我们fstrim
连续第二次执行,它将报告没有修剪任何块。奇怪的是,重新启动系统后,额外的fstrim
运行将再次报告修剪了许多块(取决于可用空间)。
因此,虽然 Linux 内核显然不会在持久存储中跟踪修剪后的块,但问题是:SSD 驱动器会永久记住已修剪的块吗?
如果有帮助的话,所有这些的目的是达到与文件系统刚创建并discard
从一开始就启用安装类似的状态。所以我想知道一次执行是否fstrim
足够。
答案1
SSD 会记住哪些块在重启后会被修剪。否则,每次重启后 SSD 都会变得非常慢,直到操作系统设法检查整个驱动器中是否存在可修剪的块。
但是,操作系统不会跟踪在重启时已告诉 SSD 进行 TRIM 的块。
一次调用fstrim
就足够了。