对于闪存来说,用 1 填充会比用 0 填充“更好”吗?

对于闪存来说,用 1 填充会比用 0 填充“更好”吗?

当我备份驱动器时,我喜欢压缩图像,因此我首先用相同的值填充它,以便可用空间几乎消失:

cat /dev/zero > ~/zeros
sync
rm ~/zeros

对于机械/磁性驱动器,这只是将 0 以每位一次操作写入所有可用空间,但对于 SD 卡或 SSD 等固态/闪存设备,写入 0 实际上需要每位两次操作:

  • 批量擦除,将整个块一次性设置为全 1
  • 单独写入,将选定位恢复为 0

因此,通过用 1 而不是 0 填充固态/闪存设备就像这个答案描述的那样那么,通过避免写入过程的第二步,我是否可以加快该过程或延长设备的寿命?

答案1

这感觉像是一个 XY 问题——正确答案是这可能根本不重要,但稍后再做是有意义的。

大多数 SSD 都会加密或扰乱数据以实现磨损均衡,因此我怀疑这样做可能只会让驱动器磨损得更快一些。SD 卡,我不确定。在写入很少的场景之外,很少将它们用作启动驱动器。

如果备份相对较小,我实际上怀疑“智能”方法是先进行映像,然后挂载并将映像上的稀疏空间清零然后压缩似乎很聪明。你使用相对较快的存储,尽量减少闪存上的重写,并且无论如何你都会读取整个驱动器并从未压缩的图像开始。首先进行成像然后归零然后压缩可减少磨损。

如果我没记错的话,还值得考虑的是,noobs 无论如何都会在 fat32 驱动器上使用磁盘映像,如果是这样的话,你可以安装 SSD,复制磁盘映像内并在那里执行这些操作。然后根据需要替换磁盘映像。或者只是复制驱动器的内容并“根据需要”压缩它,然后用新驱动器替换旧驱动器的内容。

答案2

@AaronD

您是否想问,擦除可用空间是否最好使用 0 或 1 的
模式,因为这样使用和重新填充的块会更少?

认为 0 表示空 1 表示正在使用,按照这种逻辑将有助于延长或缩短 SSD 驱动器的使用寿命。第二种逻辑是将块折叠为未使用,而不是将已删除或移除的项目留出可用空间,这仍然是数据使用空间,块越多,写入越多,这会使性能下降得更快

您没有理解为什么 Ramhound 不理解您的问题。

这是你的逻辑,通过清除可用空间并创建和管道化它

猫>〜/零

通过删除已使用的块来创建写入操作仍是对该驱动器的写入操作,这意味着坏主意,但不管是否有助于获得较小的备份映像,坏逻辑都是好主意。此过程将有助于创建较小的压缩备份映像,但您会在此过程中杀死驱动器。

通过在同一驱动器上传输输出文件并清除可用空间,您将在同一驱动器上创建一个带有 > 的大文件,因为即使驱动器上有可用空间,它仍会向驱动器写入数据。写入驱动器就是写入,而且是大量写入。

我认为你问了一个引导性问题,也就是说你问的逻辑是有道理的,但它是错误的,而且 100% 适得其反,并且可能会使你的驱动器磨损速度快 10 倍。

驱动器没有可用空间,但使用文件创建写入,而该文件将具有很大的文件大小,写入就是写入,因此整个逻辑虽然我明白,但按照您认为拥有最小的备份映像是有帮助的想法,这是真的,擦除可用空间会产生比备份映像中有可用空间时更多的写入,即使一遍又一遍地执行此过程,通过写入少量可用空间,然后对驱动器的整个可用空间进行文件写入仍然会产生大量写入,而可用空间只会使用少量的空间。驱动器会更糟,因为它在写入文件。擦除会清除文件,而您正在写入文件。

相关内容