*实用教程* 【原创】关于SD卡分区后速度变慢的终极解决办法

2012/3/15 14:17:00  人气 1438    安卓交流论坛  

本帖最后由 powerxing 于 2011-9-13 12:46 编辑


这是我入手中兴U880后第一次写教程,研究了三天SD卡(金士顿8GB Class 4)分区速度严重变慢的问题,9月9号下午终于大功告成了,收发在MAL和隔壁的,在这里也和大家分享一下:
前言:曾经看过有一个是关于SD Format 3.0格式化TF卡提速的,不过会破坏分区,然后使用Acronis Disk Director Suite 10 或者 Partition Manager 9 Professional分出一个EXT2/EXT3分区,确实可以速度慢的抓狂,再看了一个帖子用DiskGenius对齐8个扇区,思路不错,效果及不明显,见图:
MyDiskTest闪存测试工具.JPG
使用SDformat后的测速.JPG
使用DiskGenius分区并对齐8扇区后测速.JPG
仔细看看上图中Step2和3,120ms/文件和3ms/文件,还有性能图表对比,读取或者写入大文件速度还可以,但是写入大量小文件或者删除大量文件慢的抓狂,估计有不少机友也是因此放弃了挂载EXT分区的
思路:复制大文件和物理磁盘操作速度没什么问题,问题应该出在FAT表和Flash单元块的对齐兼容性上,例如8G卡的Flash单元块儿大小是32KB,类似于磁盘的簇,不论写入几个字节都会整块完全擦写,那么我们用SD Format格式化后就不要再格式化FAT32分区,包括使用分区软件直接调整大小,而是直接改FAT分区表参数,使其在整体结构。
言归正传,开始操作:
1、准备软件(附下载地址):
SD Formatter 3.0.0(9月13日更新为中文版,下载地址http://115.com/file/dn1hl9ef):专门的SD卡低级格式化工具,使其FAT32读写效率最高,在“闪存工具.7z\SDFormatter”下运行SDFormatter.EXE
DiskGenius 3.5.0(下载地址http://115.com/file/aqk8vrgc):修改分区表参数,格式化时可以选择对齐扇区。PS:个人感觉它对EXT分区支持不好,分出的EXT分区不知道是EXT2还是EXT3,而且U880不认!
闪存检测工具MyDiskTest 2.93(9月13日更新下载地址http://115.com/file/dn1hl9ef):测试卡速和分区数据可靠性的软件,同时可以测试黑心扩容Flash产品,在“闪存工具.7z”下运行MyDiskTest.EXE。
Acronis Disk Director Suite 10 简体中文特别版(下载地址http://115.com/file/clsi9oxi):这里用来格式化Linux EXT分区的。PS:Acronis这个软件有一点不好是每次应用更改后等要等一分钟所谓的“同步操作系统”,且关闭软件时要求重启(软件安装后也需要重启才能用,变态),简直是徒劳,这里没有使用Partition Manager 9 Professional(喜欢这个的也可以下载http://115.com/file/aqkpsyea)是因为它写入EXT3日志实在太慢了,要15分钟以上,伤我SD卡!
2、用读卡器(下同,所有操作不要用手机+数据线模式)备份你的SD卡数据,操作略-_-
3、用SD Format格式化SD卡(截图未更新为中文版):
选择要格式化的SD卡,并按Option(选项)
图01.JPG
如图所示选择FORMAT TYPE:QUICK(格式化类型:快速)、FORMAT SIZE ADJUSTMENT:ON(格式化容量调整:开),必须选择ON(开)->“OK”(确定)
图02.JPG
点击“Format”(格式化)->“确定”
图03.JPG
“确定”
图04.JPG
然后出现Formatting,等到Format 100%
图05.JPG
“确定”
图06.JPG
格式化完毕,此后不可对此FAT32进行任何格式化、调整分区大小、更改簇大小的操作,否则要重来!
4、使用DiskGenius修改FAT分区参数来腾出后面的空间做EXT分区:
如图:在刚格式化好的SD卡的FAT32分区“右键点击”弹出菜单选择“更改分区参数(F11)”
图07.JPG
注意下面这些参数:
系统表示0B是FAT32的意思,不动,“起始XX”三项同样保持不动!
先来看下面倒数第二行总扇区数15542728(小知识:计算机中磁盘扇区是512字节,即0.5KB,对于SD卡计算机也这么认的),好了那么容量就是15542728*0.5=7771364KB=7589.22265625MB,和下面容量一致,并且仔细看看扇区总数是8的整数倍。
小知识:15542728是怎么来的:“磁头”数值范围0-254,“扇区”数值范围1-63,“柱面”数值具体多少和磁盘容量大小有关,那么0*255*63+130*63+3-1=8192,967*255*63+254*63+63=15550920,15550920-8192=15542728
图08.JPG
我们要修改的是“终止XX”三项,要保证修改的节点前面的扇区数是8的倍数,倍数只能大不能小,我这里以500MB左右的EXT分区为例:修改终止柱面为903,那么FAT32的总扇区数145145568,是8的倍数,那么FAT32分区的实际空间就变成了7087.19MB,后面可供EXT分区的空间最多509MB,当然可能实际能用的在500MB上下,分区对齐扇区的原因。
图09.JPG
点击“是”:
图10.JPG
在后面空出的508MB空间上“右键点击”弹出菜单“建立新分区”:
图11.JPG
分区类型选择“主磁盘分区”、文件系统“Linux native”分区大小最大,注意一定要勾选“对齐到下列扇区数的整数倍”:扇区数8,详细参数可以不管,点“确定”:
图12.JPG
PS:这里说明下,DiskGenius分出的Linux分区压根没法使用,至少U880不能用(U880只支持EXT3分区),目的就是自动分配成8的倍数的新分区,以提高EXT读写效率
5、取消EXT分区的激活状态(个人喜好,这一步可以不做)
在新分的Linux分区上“右键点击”弹出菜单选择“取消分区激活状态(T)”:
图13.JPG
确认取消激活,点击“是”:
图14.JPG
6、保存对分区的更改(必须保存)
单击左上角的“保存更改”
图15.JPG
确认保存更改,点击“是”:
图16.JPG
如果之前有过分区,且分区起点位置恰好和现在一样,软件会发现并提示是否保留,保留也没用,这里我们选择“删除”:
图17.JPG
这时软件会提示分区有错误,这里不要更正,一定要点击“取消”:
图18.JPG
注意:第一条“警告”是由于第5步取消激活引起的,没事,跳过第5步的不会出现这个警告。而这里的重点是第二条那个错误,由于我刚才是强行修改了分区终止节点参数,而没有更新DBR,不更新DBR会造成分区容量错误,当以后复制文件超过那个区域,会覆盖后面的分区,如图:
图19.JPG
7、重点:下面我们更新DBR,思路来自于GHOST备份还原和装机,在SD卡的FAT32分区上“右键点击”弹出菜单选择“备份分区到镜像文件(C)”:
图20.JPG
确认备份分区没选错,选择备份文件路径和文件名(如E:\powerxing.pmf),单击“开始”:
图21.JPG
单击“确定”:
图22.JPG
完成:
图23.JPG
继续在SD卡的FAT32分区上“右键点击”弹出菜单选择“从镜像文件还原分区(S)”:
图24.JPG
选择我刚才备份的文件E:\powerxing.pmf,确认目标分区没有错,单击“开始”:
图25.JPG
点击“确定”:
图26.JPG
完成:
图27.JPG
现在我们看看分区大小是不是正确了?
图28.JPG
8、格式化Linux分区(最后不小心重启了,截图未保存-_-):
DiskGenius前面说了对Linux支持不好,也可能是我没研究透,现在我安装并打开Acronis Disk Director Suite 10(安装后需要重启才能用,变态),使用简单模式即可,选择SD卡得第二个分区(有时显示EXT2有时显示EXT3)“右键单击”选择“格式化(F)”,分区格式Linux EXT3(U880只支持EXT3),簇大小1KB(其他大小手机可能不支持),卷标随便写。点击软件左上角第三个画着旗子的“提交(T)”图标,格式化最后的“正在同步操作系统”时间比较长,请耐心等待,强行拔卡可能会蓝屏。
9、再次测速:
好了,我们打开MyDiskTest测试下我的卡,首先测试下分区可靠性,我这里使用的快速扩容测试,当然你也可以使用数据完整性测试,如图:
使用SDformat和DiskGenius直接修改参数后测试数据可靠性.JPG
测试看看,大功告成:
使用SDformat和DiskGenius直接修改参数后测速.JPG
花絮:第一次写教程,不详之处欢迎回帖交流。关于第7点,写教程忽然想到是不是可以用Windows的自带的chkdsk /f h:(h:是我SD卡的FAT32分区)来修正,不过还没来得及测试,有兴趣的机油可以试一试

. `曾几何时,那又如何◇

发表回复

   


  通知楼主
暂无回复!