admin管理员组

文章数量:1540440

2024年7月11日发(作者:)

本教程内容基本转载 xda论坛"forest1971 "大神的,而第一个发现这

个方法的是xda另一位大神"Drnull",这里谨向出现此问题的朋友做一

些操作演示,刷机有风险,请谨慎对待。

根据longerhair兄弟的说法,我的应该是半砖,在刷了几个其它内核和

rom之后,都卡在FACTORY过不去,我直接跳到原贴子的

第三步(依旧卡在失败的砖家看过来)

1,建立adb 操作环境,在电脑上操作adb. 首先要安装adb的驱动(方法:

安装Kies并更新), 然后下载adb

本帖隐藏的内容

(3.26 MB, 下载次数: 11)

到C盘根目录(解压后路径是C:adbtools).

2,下载

本帖隐藏的内容

4pda_ (6.06 MB, 下载次数: 10)

内核, 这个内核带有分区工具(这个基本用不上)和CWM(后面要用到),

用odin刷进去

3. 用USB线将手机连接至电脑. 并且重启手机进入recovery.

4. 在WINDOWS操作系统里面的CMD里面运行CD 命令进入

C:adbtools (ms-dos小白可参照我下面截图的命令,win7的系统要

先运行 cd/才能到c根目录,)

然后接着运行如下命令.

adb devices

如果正确的话, 在cmd里面, list of devices attached 下面应该一串

数字或者字母(如果你的手机是进入recovery,后面会是recovery,而非

device).

如果没有那串数字或者字母,说明手机还没连上adb, 可以在

recovery-mount usb storage 选 mount storage, 连上了电脑应该

会有声音, 然后重新输入"adb devices"(手机已经连上adb的不用管)

接着运行

adb shell

你会看到生成"~ #", 如果生成的是" $"可能你没有root

接着运行

(~ #) umount /cache (输入代码时,直接用鼠标copy "umount

/cache"进去就行了)

我在运行这一步时,出现sbin/sh:~: not found 错误结果, 解决方法是

进入recovery里面 amounts and storage-unmount cache(选这个)

接着运行

(~ #) parted /dev/block/mmcblk0

运行结果

parted /dev/block/mmcblk0

GNU Parted 1.8.8.1.179-aef3

Using /dev/block/mmcblk0

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted)

然后再运行

(parted) print

运行结果

print

print

Model: MMC VYL00M (sd/mmc)

Disk /dev/block/mmcblk0: 15.8GB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Number Start End Size File system Name Flags

1 4194kB 25.2MB 21.0MB ext4 EFS

2 25.2MB 26.5MB 1311kB SBL1

3 27.3MB 28.6MB 1311kB SBL2

4 29.4MB 37.7MB 8389kB PARAM

5 37.7MB 46.1MB 8389kB KERNEL

6 46.1MB 54.5MB 8389kB RECOVERY

7 54.5MB 264MB 210MB ext4 CACHE

8 264MB 281MB 16.8MB MODEM

9 281MB 1174MB 893MB ext4

FACTORYFS

10 1174MB 3322MB 2147MB ext4

DATAFS

11 3322MB 15.2GB 11.9GB fat32 UMS

12 15.2GB 15.8GB 537MB ext4 HIDDEN

5, 下面是重点,假设分区有损坏,我们要把它们去掉,然后重新再分.

(1) 去掉分区

运行代码

(parted) rm 9

(parted) rm 10

(parted) rm 11

在执行(parted) rm 11 命令时,出现 "partition

/dev/block/mmcblk0p11 is being used, you must unmount it

before you modify it with parted"错误, 我重新再刷一次

4pda_kernel 内核, 再从头(abd devices)运行代码,这一次全部顺利

(连unmount cache也行了, 除了找不到9,10分区外,因为上面已经移

除了). 没有错误的就不用管了.这只是我个人操作出现的问题.

另外还有个更简单的方法:进入recovery里面 amounts and

storage-unmount system(选这个) , 试试,如果不行继续选

unmount cache 再试试出错前输入的代码.

(2)下面我们来生成新的分区

运行代码(生成9区)

(parted) mkpartfs primary ext2 3322 4215

(parted) name 9 FACTORYFS

接着运行代码(把9区由ext2格式转为原来的ext4)

(parted) quit

~ # tune2fs -j /dev/block/mmcblk0p9

~ # e2fsck -fDp /dev/block/mmcblk0p9

~ # tune2fs -O extents,uninit_bg,dir_index

/dev/block/mmcblk0p9

~ # e2fsck -fDp /dev/block/mmcblk0p9

上面四条代码,一条条来运行,遇到警告不理他丫的,直接 Y+回车键

在把分区转为ext4格式如果遇到:

1. ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab

2. file while determining whether /dev/block/mmcblk0p9 is mounted.

复制代码

试试

1. ~ # mount /dev/block/mmcblk0p9 /system

复制代码

后再运行转格式的代码.如果还是不行的话,进入到CWM 选"mount

and storage" - "mount /system" 然后回到电脑cmd 重新运行转格

式代码 (这个方法是从xda偷来的,注意不同区,后面数字要改, 例如7

区后面改为mmcblk0p7)

运行"e2fsck -fDp /dev/block/mmcblk0p9"如果遇到错误如

"unexpected inconsistency", 要你"run fsck manually" 那就去掉

"p"变成"e2fsck -fD /dev/block/mmcblk0p9",再运行.

接着运行代码(生成10区)

~ # parted /dev/block/mmcblk0

(parted) mkpartfs primary ext2 4215 6362

(parted) name 10 DATAFS

接着运行代码(把10区由ext2格式转为原来的ext4)

(parted) quit

~ # tune2fs -j /dev/block/mmcblk0p10

~ # e2fsck -fDp /dev/block/mmcblk0p10

~ # tune2fs -O extents,uninit_bg,dir_index

/dev/block/mmcblk0p10

~ # e2fsck -fDp /dev/block/mmcblk0p10

接着运行代码(生成11区,这个不需要转, fat32没有问题)

~ # parted /dev/block/mmcblk0

(parted) mkpartfs primary fat32 6362 15200

(parted) name 11 UMS

如果出现 "end? "在后面,

[code](parted) mkpart 6362MB 15.2G

mkpart 6362MB 15.2G

mkpart 6362MB 15.2G

End?[code]

可能就是你输入的是早期方法的代码,"(parted) mkpart 6362MB

15.2G" 改为现在的"(parted) mkpartfs primary fat32 6362 15200"

应该没有问题,如果还有问题,把15200改为15564

(3)

运行代码

(parted) rm 7

(parted) mkpartfs primary ext2 54.5 264

(parted) name 7 CACHE

(parted) quit

~ # tune2fs -j /dev/block/mmcblk0p7

~ # e2fsck -fDp /dev/block/mmcblk0p7

~ # tune2fs -O extents,uninit_bg,dir_index

/dev/block/mmcblk0p7

~ # e2fsck -fDp /dev/block/mmcblk0p7

上面分别是删除7区,再重新建立,再转换为ext4格式,跟前面几区一样.

如果建区不成功,可能是因为坏区在这里,你可以调整这个区的大

小, 54.5(起始) 264(结束), 在起始和结束之间选任意数字, 使之不小于

128.(即128m,此区为cache 缓存)

上面都顺利的话,

运行代码

reboot

重启手机.

之后再连接手机, 连上adb, 再依次运行代码 adb devices, adb shell,

umount /cache, parted /dev/block/mmcblk0,(parted) print

上面只是查看一下是否分区和转化格式对了没有.

到此转换成功...下面刷机..............

注意: longerhair兄弟提到用odin刷机,但是xda 的大神认为应该

用卡刷,我也看到有人用odin刷不行,用卡刷成功

本文标签: 运行代码分区方法