大家好!
上周,我们在 ACE 实验室免费网络研讨会期间讨论了如何使用 PC3000 Flash实现 NAND Flash数据恢复的第一步。接下来,我们为您准备了这篇文章,介绍恢复Flash案例的重要程序。对于想要学习如何以最有效和最智能的方式处理NAND Flash的NAND Flash数据的初学者来说,本主题将特别有趣。对于已经经验丰富的数据恢复专家来说,本文可以作为处理Flash案例时主要数据校正方法的便捷清单。
首先,我们将讨论ECC纠正和重读无效扇区。
第1部分。理论。ECC.
在读取NAND内存芯片期间,可能会出现一些位错误。位错误的数量取决于以下因素:►NAND存储芯片的类型(SLC,MLC,TLC,QLC)
►触点的清洁度(脏芯片通常读起来更差)
►温度影响(芯片拆焊过程中的高温可能会损坏电池)
►NAND电池的磨损水平(如果NAND设备上的信息被重写了几百次,小型电池电容器的质量就会下降,并且它们被读取时会出现很多错误)
►芯片质量低下(如今的制造商经常通过使用例如小型技术工艺来压缩电池尺寸来降低生产成本,从而导致新闪存驱动器出现错误)
如果要从闪存驱动器获得最大恢复率,首先,您需要修复尽可能多的ECC错误。否则,所有数据都将损坏,不可操作或部分损坏:
纠错的基本方法是ECC算法- 最简单的数据修复方法。通常,控制器会将附加信息放入每个页面中,这称为备用区域 (SA)。它包含一些标记(例如,用于图像构建的标记)、不同的标志和纠错码 (ECC)。ECC是根据用户最初写入的信息扩展的特殊数据。这种扩展数据有助于查找扇区/范围中的位错误,并通过特殊的数学公式修复它们。通常,ECC 代码具有特殊长度 – 为纠错选择的字节数。最大数量的 ECC 字节允许您修复每个扇区/范围内的更多错误。
来自具有 2112 字节页面大小和 528 字节扇区大小的旧 SLC NAND 芯片的常见 MBR 扇区:
黄色 – 我们的 DA(512 字节)
蓝色 – 用于图像构建
的块编号的逻辑映像(6 字节)中的块顺序标记 绿色 – 纠错码(10 字节):
PC-3000 软件正在尝试查找以下扇区中的所有位错误:
它正在应用ECC代码进行错误修复:
让我们继续练习。
我们有一个美光芯片,4GB容量,芯片ID:0x2C44444B
我们强烈建议您仅在转换图上(不在芯片上)自动检测 ECC。当您校正芯片上的 ECC 时,可能会发生不同的错误。不要浪费时间校正芯片上的 ECC(屏幕左侧的“芯片”节点下)。
但是,检测ECC并不总是那么容易。
在某些情况下,在检测和更正 ECC 之前,应检查转储中是否有错误的字节或应用异或(主要用于 ITE、SSS、AU 控制器),并且仅在此之后在图形上检测 ECC。如果我们谈论旧的SLC和MLC NAND案例,则在进行页面转换之前,ECC更正是不可能的。
第2部分。重读。
从下面的示例中,您可以看到在这种情况下,ECC 校正进展不顺利。校正质量取决于许多因素 - 这就是为什么当ECC校正结束时,您应该始终使用ECC信息来构建地图,以检查有多少扇区尚未校正。
从屏幕截图中可以看出,4GB中有3.93GB的无效扇区。这意味着整个转储都被错误覆盖。每个文件都将损坏。要获得良好的误码原始恢复结果,错误率应小于5%,链数应小于100-500。如果您没有注意链的数量,您可能会面临文件损坏的事实,尽管您只有几MB的错误。
这是重读应该派上用场的部分。
我们需要开始使用额外的数据校正方法(读出)修复ECC校正后的剩余位错误。
要开始读出过程,我们需要执行以下步骤:
最好选择“执行”而不是“在后台运行(Shift)”,以便能够查看当前正在修复的错误数量。
通常,我们建议默认使用所有设置。读出的尝试次数表示重读通过的次数。默认情况下,最好将此数字保留为 1。“if success”参数描述了额外的重读通过次数,以防读出有助于修复至少一些范围。
正如我们所看到的,没过多久就得到了结果。某些范围已更正,但其中一些范围即使使用读数也未得到更正:
第3部分。请阅读重试。
在这种情况下,我们需要使用另一个功能 - 读取重试。这是一种特殊的NAND芯片命令,允许NAND存储芯片自行改变电压。NAND内核开始使用不同级别的电压进行数据固定。这是一种特殊的自修复系统,存在于所有QLC / TLC芯片和一些现代MLC芯片中。目前,PC-3000 FLASH支持多种QLC/TLC/MLC存储芯片的读取重试模式。随着每周新的 PC-3000 FLASH资源更新,我们的开发人员都会为其添加新的算法。
如果此“读取重试”命令复选框处于活动状态,您将能够获得令人印象深刻的读出结果:
在下面,您将找到一个非常有用的功能,适用于真正难以破解的情况。
第4部分。复杂的操作,以节省您的时间。
通过使用复杂操作功能,可以节省一点时间。如果选择它,PC-3000软件会自动构建无效扇区的映射,并询问您有关重读选项的信息。但是,您将无法选择链的数量,它们的顺序等。因此,尽管它可以通过一些自动操作来节省您的时间,但最终,您可能会看到所需的链条尚未得到纠正。
请记住,如果您的存储设备包含超过1个芯片,则需要确保重新读取正确的芯片。有时,在完成转储后,您可能会忘记将第一个芯片再次插入PC-3000 Flash读取器。因此,当 ECC 校正结束后,您可以尝试重读第一个芯片(转换图上的第 0 部分),同时在阅读器中重新读取第二个芯片。因此,最终,您将获得两个应该不同的相似部分。因此,在开始重读过程之前,请注意阅读器中的芯片。
第5部分。电压控制。
电压控制只有在最有问题的情况下才有帮助,即使在ECC校正和重读过程之后,位错误的数量仍然很高。基本上,电压控制是一种ReadRetry操作,但在手动模式下。我们不是由芯片自己设置电压,而是使用软件控制设置自己的电压来读取NAND芯片中的每个页面。
每个芯片都知道它现在工作的温度。根据温度的不同,芯片的电压也会发生变化。在这里,您可以看到带有温度和电压近似值的表格。有时,由于芯片的内部问题,此表中的值可能会发生变化,并且由于电压错误,您将无法重新读取扇区。
请注意,此选项仅适用于:
► PC-3000 Flash Reader 3.0 + 电源适配器(上一代)
► PC-3000 Flash Reader 4.0 (最新一代,电源适配器已集成)
如何设置电压控制?
当所有可能的错误修复准备工作已经完成,但错误数量仍然约为数百MB时,我们应该尝试使用电压控制。通常,如果NAND存储芯片支持ReadRetry,我们不应该使用不同的电压 - 最佳结果将始终由ReadRetry提供!
但有时可能会发生您的芯片不支持ReadRetry方法的情况。这就是为什么您需要尝试检测电压范围并开始校正过程的原因。
修复 ECC、进行读出并构建坏扇区映射后,需要转到重读菜单并选择下一个功能:
请记住,如果您单击“更多”,然后单击“ReadRetry方法检查”,您将能够检查ReadRetry成功率并选择最佳方法。在大多数情况下,它会自动选择最佳变体,但有时您需要手动执行此操作。
现在,“读取重试”选项已出现
第6部分。温度控制。
有时,即使在使用电压控制重读后,您也无法获得良好的重读结果。在这种情况下,您能做些什么?
还有一种方法可以通过“调节”温度来获得更好的重读结果。对于某些存储芯片,非常冷的温度(-15°С...-20°С)可能有助于增加芯片内部的电传输,以提供最佳结果。
图片来源:CapitalDataRecovery
在某些情况下,您可以尝试加热芯片。如果将其加热到+80°C...140°C,您还将获得良好的重读效果。
但你应该小心 - 高温会融化塑料盖并损坏读卡器。
有关如何降低损坏芯片,读卡器等的风险的更多信息,请点击此链接。
我们来总结一下要点:
- 仅在制备图上检测和校正 ECC
- 有时,您需要使用其他功能来检测和更正 ECC(坏字节、异或页面转换))
- 要获得良好的恢复结果,位错误数应小于5%,未更正的链数应不大于200-300
- 如果出现大量位错误,请使用重新读取
- 如果您的芯片支持 ReadRetry 方法,请使用它而不是其他选项
- 电压控制在NAND芯片不支持ReadRetry的情况下非常有用
- 如果您的芯片不支持ReadRetry,请尝试使用MORE – ReadRetry模式检查(这种方式仅适用于现代QLC / MLC / TLC芯片)
- 在某些 AU、SSS、Phison 和 SM 情况下,您可以使用重读地图生成器工具来节省时间。
- 在某些情况下,当甚至电压控制都无济于事时,您可以尝试“玩”温度。
祝您的Flash数据恢复案例好运,如有任何问题,请随时联系我们的技术支持部门!
评论