大家好,
今天我们将讨论由SanDisk生产的单片式存储设备案例,具体是200 GB和400 GB型号的变体。
这类存储卡在几年前发布,并在多年内一直是容量最高的mSD卡,直到被256GB和512GB的改进型号所取代。
如今,SanDisk闪存驱动器是最复杂的案例之一。通常,它们有许多额外的问题和特性,这些是SanDisk修改版所特有的。
例如:
-
SanDisk使用SLC缓存来存储最新记录的数据。在MLC/TLC存储器上,控制器以SLC模式写入数据,然后在后台将其转换为TLC/MLC。主要思想是,使用SLC记录类型时,SanDisk使用大约20-30%的容量作为缓存,这使得写入操作比通常快得多。如果闪存在写入过程中损坏,文件系统和最新记录的文件很可能仍留在SLC中,并且它们的恢复将是不可能的。恢复SLC缓存的唯一方法是使用转换器。
-
SanDisk控制器使用子块来更新文件系统。这就是为什么当我们应用块编号类型1 [0000]构建镜像时,可能只能得到部分文件系统甚至空镜像。为了恢复文件夹结构,在90%的情况下,我们需要一个转换器。
-
视频也与文件系统相关联,并且它们在块和子块之间严重碎片化。同样,恢复它的唯一方法是使用转换器。
-
如果没有转换器,在案例容量大于64 GB时,无法使用块编号组装镜像。服务区标记仅包含2个字节且没有存储体标记,因此最大排序块数约为64 GB。128 GB及以上的案例将仅通过转换器支持。
在本文中,我们将探讨SanDisk的200 GB解决方案。
曾几何时,这类驱动器是一项技术突破。非常高容量的mSD卡被用于高端相机和智能手机。
这款单片式存储设备的特别之处在于它有两个晶片,一个128 GB,另一个64 GB。由于部件容量的差异,我们需要在不同的任务中分别读取每个芯片,以便稍后将它们合并为一个。

那么,让我们开始处理这个单片式存储设备。


请注意这个单片式存储设备。它很可能与Global Solution Center中单片数据库里的类型1引脚排列方案对应。
接下来,我们需要用中等硬度的纤维玻璃笔剥掉单片式存储设备的顶层。

正如我们在剥离后所见,我们是对的,单片式存储设备的引脚排列与类型1引脚排列方案匹配。

让我们根据mSD类型1引脚排列方案,将电源线焊接到单片式存储设备的引脚上。
用双面胶带将单片式存储设备固定到Spider Board垫上,连接电源线,并根据示意图设置所有引脚。


至此,所有准备步骤已完成,我们可以进入程序部分。
步骤 1.
我们需要读取128 GB单片式存储设备的第一部分。为此,我们将Spider Board引脚设置为CE0,同时CE1保持非活动状态。
然后我们创建一个包含1个物理芯片(用于CE0)的任务,在软件中设置引脚并将其读取到转储文件。这将是128 GB的部分。




成功读取后,我们执行ECC校正。同样,您不应忘记重新读取以获得最佳的转储质量。

注意 我们强烈建议始终仅在图表上执行ECC校正(而不是在芯片上)。
步骤 2.
要处理第二个64 GB部分,请将Spider Board引脚置于CE1,同时CE0应保持非活动状态。创建一个新任务,并对容量为64 GB的单片式存储设备的第二部分执行相同的操作。

请注意:我们需要在每个部分上获得尽可能好的转储质量,以获得良好的恢复结果。这就是为什么我们应该关注坏扇区。在重新读取期间,将所有未校正的链从小值到大值排序。

这很重要,因为我们需要修复尽可能多的小链 – 它们位于转储周围,可能会严重影响文件质量和后续的转换器组装。
步骤 3.
然后我们需要将单片式存储设备的两个部分合并到一个任务中。
为此,我们创建一个包含2个物理芯片的新任务。


使用从文件加载,我们为第一个芯片选择合适的ID(我们从第一个任务中获取ID – 用于128 GB SanDisk NAND的ID),并选择第一个任务中的转储文件进行加载。



在第二个芯片中,我们保留与第一个芯片相同的ID,并加载第二个任务中的转储。

这样,我们就得到了包含我们单片式存储设备2个部分的任务。

每个芯片的容量对应于128 GB(总计256 GB)。如我们所见,第二个芯片将有一半填充为FF,因为它的实际容量是64 GB。

让我们更新芯片并添加转换图以继续准备步骤。
步骤 4.
现在我们需要再次启动ECC校正以创建新的扇区状态映射。我们之前已经修复了ECC并进行了重新读取,但是为了良好的转换器组装,需要在新任务中再次形成ECC映射(转换器使用关于好扇区和坏扇区的信息):


步骤 5.
检测正确的XOR并应用页转换。


对于SanDisk案例,应手动进行页转换,使用以下规则:每个ECC范围开头包含14字节的SA,然后是4个数据范围,最后是ECC码。我们需要这样设置页转换:14SA + 512DA+512DA+512DA+512DA+230ECC

SanDisk的典型特点是SA部分包含来自页开头的14个字节。

因此,为了检查应用的XOR和页转换是否兼容,我们尝试在最后一个图字符串上应用原始恢复:

如我们所见,有许多文件,其检查大小大于页大小。这意味着在此准备之后数据完整性提高了。
步骤 6.
在这种情况下,我们只需要执行一次典型的交错消除(按块分割;按页连接)。

步骤 7.
接下来,我们分割转储(软件将自动选择要分割的转储数量,这取决于NAND内部的LUN数量):

步骤 8.
使用外部交错连接结果(按页连接):

步骤 9.
我们需要采取的下一步是使用"连接N个源的块"。
块的大小是98304。要连接的结果数量是4。


注意最后一个图准备上的原始恢复结果很好!

步骤 10.
我们恢复的最后一步将是组装镜像。
由于我们设法获得了高质量的转储,构建镜像的最佳方法是使用用于TLC芯片的SanDisk 8Sec转换器。
转换器将考虑SLC缓存和附加块,我们将获得完整高质量的文件结构。
经过所有转换后,镜像构建后的文件结构看起来相当不错。我们可以看到许多文件和文件夹,可以毫无问题地保存和使用。



SanDisk存储mSD和SD卡非常流行,而PC-3000 Flash包含了最广泛的工具,用于良好的镜像重建。所描述的步骤对于初学者来说可能看起来很复杂,但在ACE Lab技术支持工程师的帮助下,即使是最困难的任务也能解决!

如果您对数据恢复案例有任何疑问,欢迎向ACE Lab的技术支持部门提出。