Huawei U8825d 对4G手机内存重新分区过程[把2Gb内置SD卡容量划分给DATA分区使用]

# 
# 重要说明,对4GB手机内存重新分区必然会极高机率把手机变砖头!
# 操作手机内存重新分区需要对Linux的fdisk使用有一定的了解,操作前备份好系统数据。
# 


# 使用“df -ah”结果,查看手机分区信息,这一步需要安装Busybox,和BTEP(超级终端)并安装Bash shell,并在手机端上操作;
# 具体在手机超级终端上输入"df -ah > /data/local/tmp/blkdf.txt;"然后在电脑端上输入"adb shell; vi /data/local/tmp/blkdf.txt;"
# 目的是为了显示出各分区对应挂载到什么位置,这点很重要!
df -ah 
Filesystem                Size      Used Available Use% Mounted on
tmpfs                   193.8M     64.0K    193.8M   0% /dev
devpts                       0         0         0   0% /dev/pts
proc                         0         0         0   0% /proc
sysfs                        0         0         0   0% /sys
none                         0         0         0   0% /acct
tmpfs                   193.8M         0    193.8M   0% /mnt/asec
tmpfs                   193.8M         0    193.8M   0% /mnt/obb
none                         0         0         0   0% /dev/cpuctl
/dev/block/mmcblk0p17 503.9M    186.5M    317.4M  37% /system
/dev/block/mmcblk0p18 629.9M    494.1M    135.8M  78% /data
/dev/block/mmcblk0p15 189.0M      4.1M    184.8M   2% /cache
/dev/block/mmcblk0p16  78.7M      6.0M     72.7M   8% /cust
/dev/block/vold/179:33 7.4G      3.6G      3.8G  49% /mnt/sdcard
/dev/block/vold/179:33 7.4G      3.6G      3.8G  49% /mnt/secure/asec
tmpfs                        0         0         0   0% /mnt/sdcard/.android_secure

# 使用“fdisk /dev/block/mmcblk0 -l”,对4GB手机内存查看磁盘信息,记住结尾的地方(非常重要!)

fdisk /dev/block/mmcblk0 -l
Disk /dev/block/mmcblk0: 3909 MB, 3909091328 bytes
1 heads, 16 sectors/track, 477184 cylinders
Units = cylinders of 16 * 512 = 8192 bytes

              Device Boot      Start         End      Blocks  Id System
/dev/block/mmcblk0p1   *           1           3          20  4d Unknown
Partition 1 does not end on cylinder boundary
/dev/block/mmcblk0p2               3          41         300  45 Unknown
Partition 2 does not end on cylinder boundary
/dev/block/mmcblk0p3              41       16681      133120   c Win95 FAT32 (LBA)
Partition 3 does not end on cylinder boundary
/dev/block/mmcblk0p4           16681      477184     3684031+  5 Extended
Partition 4 does not end on cylinder boundary
/dev/block/mmcblk0p5           16897       18432       12288  6a Unknown
/dev/block/mmcblk0p6           18433       18944        4096  46 Unknown
/dev/block/mmcblk0p7           18945       19456        4096  63 GNU HURD or SysV
/dev/block/mmcblk0p8           19457       19840        3072  58 Unknown
/dev/block/mmcblk0p9           19969       20352        3072  4a Unknown
/dev/block/mmcblk0p10          20481       20864        3072  4b Unknown
/dev/block/mmcblk0p11          20993       21504        4096  47 Unknown
/dev/block/mmcblk0p12          21505       22528        8192  48 Unknown
/dev/block/mmcblk0p13          22529       25088       20480  60 Unknown
/dev/block/mmcblk0p14          25089       25600        4096  6c Unknown
/dev/block/mmcblk0p15          25601       50176      196608  83 Linux
/dev/block/mmcblk0p16          50177       60416       81920  83 Linux
/dev/block/mmcblk0p17          60417      125952      524288  83 Linux
/dev/block/mmcblk0p18         125953      207872      655360  83 Linux  #[DATA分区]
/dev/block/mmcblk0p19         207873      477184     2154496  6b Unknown #[内置SD卡]

# 对手机/data分区的数据进行完整备份(这一步时间很长)
cp -af /data /mnt/sdcard/data_bak

# 对备份的数据,查看占用的空间
du -sh /mnt/sdcard/data_bak/ 
498.3M    /mnt/sdcard/data_bak/

# 正式对磁盘进行操作
fdisk /dev/block/mmcblk0
Command (m for help): d
Partition number (1-19): 19

Command (m for help): d
Partition number (1-18): 18

Command (m for help): n
First cylinder (16682-477184, default 16682): 125954
Last cylinder or +size or +sizeM or +sizeK (125954-477184, default 477184): 466945

Command (m for help): n
First cylinder (16682-477184, default 16682): 466947
Last cylinder or +size or +sizeM or +sizeK (466947-477184, default 477184): 
Using default value 477184

Command (m for help): p

/dev/block/mmcblk0p18 125954 466945 2727936 83 Linux  [DATA分区已2.7Gb]
/dev/block/mmcblk0p19 466947 477184 81904 83 Linux   [SDCARD2分区已81MB]

Command (m for help): w 

 

# 以上只是完成了对4GB内存进行分区,有些时候无法写入分区表(无限重启);
# 需要重启手机进入recovery模式,输入adb shell后,重得一次分区步骤;
# 接下来,我们需要把刚刚分好的区,进行格式化;

# 首先,我们需要对DATA分区进行格式化,这个需要在recovery内操作。
# 这一步,我们需要一个刷机脚本来支持我们的操作,这个脚本内容如下:
ui_print("u8825d Format DATA scripts..");
format("ext4", "EMMC", "/dev/block/mmcblk0p18", "0");
# 脚本具体怎么写,可以去查询相关的内容,这里不作介绍;
# 当然你也可以把这两行代码写到一个刷机包里边的刷机脚本里边,同时可以刷一次机。

# 在以上的步骤完成之后,开机之后就可以看到手机的DATA分区已经变成了2.7Gb了(实际上计算方式不一样,显示会略小一点)
# 接下来,我们要把外置的sd卡取出来,然后开机,挂载USB存储; 
# 使用Disk Genius,或是在Linux操作系统下使用fdisk gparted对那个sdcard2(80MB存储)进行格式化; 

 

为了简便操作,重新写一个刷机脚本,需要把busybox安装在/system/bin目录下,不然不要使用以下脚本!

1. 刷机脚本内容如下:

ui_print("Change Huawei U8825d MMC Partition!");
show_progress(0.1, 1);
package_extract_file("partition.sh", "/tmp/partition.sh");
set_perm(0, 0, 0777, "/tmp/partition.sh");
ui_print("Now Change Data size...");
run_program("/system/bin/sh","/tmp/partition.sh");
ui_print("Now Format partition...");
format("ext4", "EMMC", "/dev/block/mmcblk0p18", "0");
run_program("/system/bin/busybox", "mkfs.vfat", "-v", "-n", "Huawei", "/dev/block/mmcblk0p19");
ui_print("Now Format Done!");
show_progress(0.2, 4);
ui_print("All Done!!");

2. 需要用到的partition.sh脚本内容如下: 

#!/sbin/shfdisk /dev/block/mmcblk0 <<EOF
d
19
d
18
n
125954
466945
n
466947
477184
t
19
b
w
EOF

刷入脚本方法:
把U8825d_Partiton.zip拷贝到sdcard,
开机启动时按住音量加进入recovery模式:
 -- install zip from sdcard
 -- choose from sdcard
 -- 选择 U8825d_Patition.zip
 -- 选择 yes

注意事项: 请慎重操作!!!
更好的解决方案可参照:http://bbs.anzhi.com/thread-6418286-1-1.html
posted @ 2012-10-28 16:30  scue  阅读(11865)  评论(0编辑  收藏  举报