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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM