如何进行逐块验证的闪存块设备复制?

如何进行逐块验证的闪存块设备复制?

我有一个特殊的闪存设备,其中对物理块的每次写入都必须经过验证(尽管我没有将其作为 mtd 访问)。因为物理块总是被闪存,但数据写入并不总是有效。
所以这意味着如果我执行一个简单的未经验证的复制,如下所示:

dd if=backup of=/dev/sdb1

我将拥有少数写入成功的块,以及大多数仅刷新成功的块(这意味着一些块仍被填满0xFF)。
简单地重试该命令不起作用,因为dd还会重写成功的块,这意味着一些先前的写入将转换为不成功的重写(先前具有有效数据的块将被刷新但写入失败导致0xFF填充)。

因此,我的块设备应该使用经过验证的副本来处理:每次写访问之后,应该将一个块与该块进行比较,to be copied data并且需要重新尝试在该块上写入数据,直到成功才能处理下一个块。

相关内容