![fstrim 是否与用零覆盖磁盘空间具有相同的效果?](https://linux22.com/image/166876/fstrim%20%E6%98%AF%E5%90%A6%E4%B8%8E%E7%94%A8%E9%9B%B6%E8%A6%86%E7%9B%96%E7%A3%81%E7%9B%98%E7%A9%BA%E9%97%B4%E5%85%B7%E6%9C%89%E7%9B%B8%E5%90%8C%E7%9A%84%E6%95%88%E6%9E%9C%EF%BC%9F.png)
我定期使用dd
和创建压缩备份映像。lzop
过去,我预先创建了一个带有零的大文件head -c xxG /dev/zero > zeros.tmp && rm zeros.tmp
(xxG 是可用的空白空间)来清除已删除的文件。这节省了大量时间和备份磁盘空间,但效率也很低,因为它会占用所有空白空间,从而对 SSD 造成不必要的磨损。
fstrim 是否也会将未分配文件的块清零?或者 dd 之后会返回这些块及其删除的内容吗?我不想压缩带有未分配文件的块。
答案1
修剪后读取时返回的数据(使用fstrim
或任何其他此类工具或mount
选项)取决于设备:有些将返回随机数据,有些将返回不变的非零数据,有些将返回零。您可以hdparm -I
在 ATA 设备上运行以确定应用哪个选项:第二个选项将显示“TRIM 后确定性读取数据”,第三个选项将显示“TRIM 后确定性读取零”,否则应用第一个选项。
对于您的特定用例,其他工具可能更合适;例如,如果您想象 Ext2/3/4 文件系统,e2image -ra
将创建仅包含正在使用的块的备份映像,并将e2image -Qa
创建仅包含正在使用的块的 QCOW2 映像。