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