拿到一台酷派T2手机,有锁屏密码,带bootloader锁,不能刷Recovery,只能拆字库读数据,本以为很容易搞定,没想到解析数据出现问题。
问题类似于 http://zhidao.baidu.com/question/502998751.html
winhex、x-ways加载各种报错然后崩溃,发现是访问不到某些扇区,可用空间与实际空间不符,怀疑是ext4头部保存结构信息的位置出现错误。
恢复镜像到U盘,插入Linux系统,发现真的是bad superblock错误,是sdf26、sdf30和sdf31分区。
估计是初始位置的superblock出错,考虑用备份的superblock来恢复。
执行sudo mke2fs -n /dev/sdf31,看下备份的superblock在哪个位置。
随便选择一个,98304,执行e2fsck -b 98304 /dev/sdf31 -y开始修复,一路yes。
放着跑,睡觉了,希望明天有奇迹……
奇迹没有发生,继续找原因。
通过十六进制查看发现数据没有问题,能够手工解析出一部分。
用DiskGenius看U盘是GPT格式的(Android 2.x版本上使用的是MBR,4.0版本以后使用的GPT分区方式),没问题,有价值的分区是最后两个ext4格式的,一个是system,一个是userdata。
将userdata分区位对位(十六进制)导出为img,然后把img在linux下挂载,还是不行,崩溃了+_+……
万念俱灰的时候试了试ext2explore(刷机时修改ROM用的一款Windows下访问Linux分区的工具),竟然可以了!!!
虽然问题解决了,但究竟什么原因,百思不得骑姐……Linux下无法mount,但是win下用这工具为什么就能打开,还要继续研究。
BTW:发现好多老外也遇到同样的问题,也没人答得上来具体的原因,因为不是所有的手机都有这个问题,我猜测可能制作ROM的时候使用的ext2explore修改的,导致系统格式并非标准的ext4,所以无法挂载,各种报错。
参考:
http://forum.xda-developers.com/showthread.php?t=2562831 XDA也没人解释清楚哈~
http://forum.xda-developers.com/showthread.php?p=62704868#post62704868 回复的人也遇到了
http://blog.sina.com.cn/s/blog_5c401a150101jcos.html eMMC分区详解
http://stackoverflow.com/questions/8663891/how-to-mount-the-android-img-file-under-linux
http://blog.sina.com.cn/s/blog_709df8c80100ldup.html SuperBlock损坏修复
http://blog.chinaunix.net/uid-26557245-id-3748168.html ext3文件系统超级块损坏修复
http://forum.ubuntu.org.cn/viewtopic.php?t=311792 修复超级块sudo e2fsck -b 32768 -y /dev/sda6
http://zhidao.baidu.com/question/502998751.html
http://wenku.baidu.com/link?url=eSv56Vbi8XW5n8xH596X_TbuAffr8eylF7OdCxLVnJTfkDO2fYyKvJ_RG_cZvdI7HieBQ3RgjQCovgsN0YV83gyZ7BLayhmvzKsF1hmMyKm
http://fromwiz.com/share/s/0dF72a1Nq17x2Rpg0z1ZXVvc2CBKWh16S4ml2jjNQH3HDLmf
发表评论