最近做了一些实验:
用编程器直接读取FLASH芯片(单芯片)来恢复数据,但是不是很理想,主要是恢复后的BIN里面找到MBR后不是在整扇区的位置。二是与U盘LBA不能对应(可能和芯片量产时芯片数量和通道数有很大关系),对应UP10的主控的2G芯片,MBR竟然在BIN文件的3/4处(MBR是在磁盘的最前LBA=0位置,(做RAID数据恢复时,主要靠MBR、FAT表、MFT来定位块)。现把本次实验的心得写出来大家共同研究讨论下,老鸟不要见笑。。。。
用编程器读NAND FLASH来恢复数据的难度.
第一:有可能数据不是线性存储。
第二:读出后的BIN文件的HEX地址和U盘正常时的LBA扇区没有对应关系。
第三:FLASH的坏块,芯片出厂是的坏块编程器可以跳过,但是量产低格时的坏块编程器是不跳过的。
第四:有在量产后的坏块芯片用编程器读取有可能出错并且回造成地址(或扇区偏移-不一定是整扇区!)偏移。
综合以上问题,想要用编程器恢复FLASH里的U盘数据需要至少解决两个问题:
一:对应主控芯片的FLASH数据存储规则资料。
二:坏块的处理问题。
希望同僚发搔友讨论。(实验用编程器:西尔特3000U,主控芯片:UP10,6980,i5602,i5128)
个人认为:对于主控损坏,用空F芯片重新按原来的格式量产(如通道数和F片数关键),然后再焊会原来的F片,扫描或修复MBR-DBR-FAT。成功率可能高一点。
[ 此贴被shande在2008-06-02 23:24重新编辑 ]