使用 dd 克隆磁盘时如何处理 TRIM?

使用 dd 克隆磁盘时如何处理 TRIM?

TRIM 命令允许操作系统通知 SSD 哪些扇区包含数据,哪些扇区是空闲的。这允许磁盘在内部重复使用空闲扇区并改善磨损均衡。

现在,如果通过 将一个 SSD 克隆到另一个 SSD dd,则每个单个扇区都会复制到目标磁盘。但是,dd不知道扇区的内容实际上是数据还是未使用的。也就是说,它无法向目标磁盘发送 TRIM 命令。据我了解,目标磁盘必须将每个写入的扇区视为已使用。

唯一的解决方法是,如果已使用/可用信息以某种方式存储在扇区本身中,然后将其复制dd到新磁盘。

那么,怎么做呢?有问题吗?

答案1

使用 fstrim曼弗里姆克隆分区后。

示例:我有一个通过 BTRFS 克隆到 SSD 的系统,因此我启动它并运行:

 λ sudo fstrim -v /    
/: 190.4 GiB (204443279360 bytes) trimmed

答案2

TRIM 标准规定,读取经过修剪的块会产生未定义的结果。某些版本的 trim 会在您读取时模拟返回零块,其他版本可能会返回先前的数据或一些随机数据。

相关内容