我定期使用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 映像。