# # 重要說明,對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
