Android手机上如何无痛替换SD卡,扩展存储空间
扫描二维码
随时随地手机看文章
新旧SD卡换装方法探讨:
许多用户在Android手机买来使用一段时间后,往往发现无论是手机的外部存储空间(SD卡上的FAT32分区)还是手机的自身存储(ROM)都非常有限,安装不了几个应用程序便会弹出系统提示“内部存储空间不足”或是内存不足。
这时自然会想到替换一个容量大的内存卡(miniSD卡等),例如原来使用的是2GB的miniSD卡(无ext分区),现在买来8GB的高速SDHC 卡,希望将原来使用的系统(旧SD卡)原样复制到新SD卡上。网上有许多机油问能直接复制文件吗?原来安装过的软件不再次安装行吗?同一个问题,不同的方法,本人设想了三种方法,验证过两种供大家参考。所有操作请保证手机电量处于充足(70%以上)状态。
下面三种方法中第一种(A)失败,第二种(B)未验证留待机油们做出贡献,第三种(C)验证成功。
方法A:仅将旧卡上的数据拷贝到新卡上来 -> 此法不成功!!
A.1,在PC机上对买来的新卡(KINGMAX/SDHC/Class6/8GB)进行格式化,格式化时不能直接用Windows自带的功能,使用Acronis可以从卡上分出ext3分区(2GB)+FAT32分区(6GB);
A.2,通过USB将手机连接到PC上后将卡上的所有文件(含隐藏数据)拷贝到PC机上备份;
如果旧SD卡上有ext分区且已经做过data2ext,那麽就在Linux机上进行ext分区拷贝(Windows上通过第3方软件也可以加载ext分区进行读写)。
下图为Ubuntu系统中看到的手机旧SD卡信息,有分区,容量,目录结构,数据大小等信息。
A.3,将PC机上保存的备份(上一步备份下来的所有)数据,原样(目录结构不变)拷贝到新卡上;
A.4,将新卡插到手机后加电开机;
A.5,启动失败!!(卡在启动动画)
可能的原因是在换卡之前没有清洗数据所致,也有可能是SD卡上的ext分区信息变化后系统无法识别所致。具体的懒得分析了。直接利用第3种方法。
方法B: 将所有安装在旧卡ext分区的应用或数据完全恢复到手机自带ROM去后(即删除data2ext),仅对SD卡上的FAT32分区进行复制到新卡FAT32分区的操作。
B.1,将安装在旧卡ext分区上的所有数据恢复回手机自带的ROM中去;
B.2,通过USB将旧SD卡上的所有数据备份到PC机上;
B.3,关机后插入新卡,重启手机进入Recovery模式;
B.4,利用Recovery对新SD卡进行分区(SWAP:0/ext3:2GB/FAT32:6GB);
B.5,利用读卡器将PC机上备份的数据拷贝到新卡的FAT32分区(保持原来目录结构);
B.6,插上新卡,打开手机进入Recovery模式,进行数据清洗(wipe cache);
B.7,应该可以正常重启手机,看到和旧卡一样的系统(除了卡的空间变大);
B.8,此时可以再次进行data2ext.
方法B应该可以成功!但去掉data2ext手机能正常运行的话,估计没必要换SD卡了。
方法C: <- 验证成功,详细教程参见下文!!
《事先准备》
手机端:
手机已经是S-OFF解锁完毕,ROOT授权提取完毕;(详细参见本人文章:)
G7刷机详细教程:解锁S-OFF,ROOT提取,CM-7.0.3ROM刷机
手机上的Recovery分区刷了第3方(Clockmodwork)的镜像程序;
其他确认手机ROM,RAM,SD卡等信息的软件(如MiniInfo,系统监控等任何APK应用均可)。
PC端:
无需特殊硬件,软件,只要能识别移动硬盘即可(有***MiniSD卡的槽或是USB读卡器);
为了详细了解SD卡分区信息(特别是ext),可以安装Acronis磁盘管理工具。
SD卡:
旧SD卡(容量小/4GB),新SD卡(容量大/C6高速8GB)
《内存卡换装详细步骤》
C.1,重启手机(旧卡),进入Recovery(本人用ClockworkMod Recovery 5.0.1.0)模式;
同时按住[ 音量- ]+[ 电源 ]两个钮来开机,启动后进入3色屏,选菜单项 [ RECOVERY ] ->会自动重启进入ClockworkMod Recovery工作模式 -> 选主菜单中的[ backup and restore ] -> [ Backup ]。
按下Backup后,程序会自动备份当系系统的所有数据及结构。
C.2,利用Recovery的backup功能备份当前的系统;
备份后SD卡的FAT32分区中会多一个目录。如下图:SD卡clockworkmodbackup2011-09-28.02.39.12,此目录下的所有文件就是当前系统的完全备份。
补充说明一下,各个文件的内容。
(1)system.yaffs2.img 是系统ROM分区/system目录下所有文件数据的备份;
(2)data.yaffs2.img是系统ROM分区/data目录,及保存在SD卡FAT32分区中的隐藏目录/.android_secure下所有文件数据的备份;
(3)cache.yaffs2.img是系统ROM分区/cache目录下所有文件数据的备份;
(4)sd-ext.ext3.tar是SD卡上ext分区下的数据压缩备份。 如果SD卡上没有此分区便不会产生次文件。另外如果SD卡上虽有ext分区但自己没有进行过data2ext设置,那么此分区的备份数据size应该约为 0。上图中的为102559KB是由于本人手机进行了data2ext(3个目录:/data/app/;/data/app-private; /data/dalvik-cache)。
除了上述4个以外还有boot.img和recovery.img,分别是BOOT分区(HBOOT程序)和RECOVERY分区(就是这个 ClockworkMod Recovery程序)的备份。不过一般情况下没必要刷这两个分区,虽然备份了但后面恢复时用不到。Nandroid.md5为checksum校验码,恢复时验证用得到。
通过此备份大概可以看到本人手机CM7系统ROM的大小约为:260MB。要比G7官方的小许多。
C.3,重启手机(旧卡正常运行)后,用USB连接到PC,将手机SD卡上的备份目录原样拷贝到PC中(例如:d:clockworkmod下)保存;
目录结构最好也维持原来的样子,如:clockworkmodbackup2011-09-28.02.39.12*.*。
C.4,关闭(power off)手机, 取出旧卡,插上新卡,按住[ 音量- ]+[ 电源 ]两个钮来开机进入[ RECOVERY ]工作模式(同第一步);[!--empirenews.page--]
C.5,Recovery主菜单 [ advanced ] -> [ Partition SD Card ],格式化完后保持Recovery模式;
Ext 分区Size 选择 [ 1024M ]或者大于此值,swap 选择0(没有swap会延长SD卡的使用寿命),剩余的便全都是FAT32分区。本人的8GB高速SD卡经手机Recovery程序分区后如下图。容量减小的主要原因是SD卡等闪存所标示的GB,MB,KB采用的是1000进制,而计算机操作系统(Windows,Linux等)从来都是1024进制。所以SD卡上的1GB到实际计算机/手机中只有950MB左右。另外手机中格式化出来的文件系统会有一部分容量(例如:FAT32中的11MB左右,ext3分区中的154.98MB???)已经被预先吃掉了?原因待查?
C.6,手机继续保持Recovery工作模式,通过菜单选项对手机ROM进行清洗,步骤如下:
(1)wipe cache partition;
(2)wipe data/factory reset;
(3)Advanced --> Wipe Dalvik Cache;
C.7,手机断电(power off)后,拔出新SD卡;通过读卡器将新卡作为移动磁盘连接到PC上;
将第3步中保存在PC机上的数据拷贝到SD卡上,一定要保持目录结构不变。
例如:计算机中D:clockworkmodbackup2011-09-28.02.39.12下的所有文件拷贝到SD卡上后应该是://SD卡/clockworkmod/backup/2011-09-28.02.39.12/*.*。
拷贝完成后,将SD卡安全从PC机上卸载。
C.8,在手机关机状态下,将新卡装到手机上,开机进入到Recovery模式(开机方法同第一步);
主菜单[ backup and restore ] -> [ Advanced Restore ] -> [ 2011-09-28.02.39.12/ ];然后以下面的次序执行restore操作: Restore system -> Restore data -> Restore cache -> Restore sd-ext。这个次序就是在第2步中说明过的那5个文件。没必要Restore boot 和 Restore recovery。
恢复过程中一定要确认每一步成功(会显示completed!)。
C.9,第8步恢复完成后就可以顺利启动手机,看到和原来旧卡一样的系统!软件,数据一样没少,但内存,SD存储余量应该变大到你想要的了!可以通过ADB shell或是第3方工具确认一下。