原来用的小米 1S 淘汰下来有一段时间了,作为备机,晚上没事时还会用来刷刷论坛,但因为系统太老的缘故,在安装一些新的客户端(比如简书和 Hi-PDA 客户端)时,总是无法正常使用。由于早期使用时没怎么刷过机,系统一直停留在 MIUI V2.3.6f,后来想更新 MIUI V4 时才发现还要更新系统分区,而我的手机音量键早坏了,无法通过官方的 Recovery 来操作,米柚论坛里找到的喝雪碧的虾制作的中文全触摸 CWM Touch Recovery 6.0.3.3 也没有分区成功,只好用最麻烦和危险的方法了——手动分区。
研究过论坛的一些帖子后,就开始操作了,下面是详细步骤。
一、准备阶段
(1)完美刷机:PC 端安装,由于音量键坏了的缘故,需要使用完美刷机的重启工具来进入 Recovery 和 fastboot 模式,下了几个刷机软件,不得不说,完美刷机的这几个功能确实很好用,在我尝试失败,无法进系统时帮了我很大的忙。
(2)小米 USB 驱动:PC 端安装(点击下载),将下载后的文件解压到任意地方,当系统提示有新硬件,请安装驱动时,选择这个文件夹里面对应的位置。
(3)adb 工具:PC 端安装(点击下载),将下载后解压得到的文件放到系统环境变量路径下,如:C:WINDOWSsystem32;如果你不想在 PC 上操作,那么可以直接在手机上安装终端模拟器(点击下载),输入的命令和下面输入到 adb shell 上的一样。
(4)Busybox:手机安装(点击下载),授权 Root 权限,安装完成后重启系统打开。
(5)线刷的 Recovery:可以试下 CMW6.0.4.8 这个第三方 Recovery(点击下载),或则下载官方 Recovery 线刷包。
(6)卡刷的 ROM:事先将要刷的卡刷包放置在 SD 卡根目录下,并重命名为 update.zip,分区成功时在 Recovery 中使用卡刷(线刷稍微麻烦些,后面再做介绍)。
二、实战操作
准备工作做完后,我们就来一步步手动分区刷机了。
手机连上电脑,在电脑上的 CMD 命令行中输入:
adb shell
然后输入下面命令获取 root 权限
su root
接着输入
busybox fdisk /dev/block/mmcblk0
然后输入命令查看当前分区情况,注意做好分区情况的备份,如果分区失败,这是你将来恢复现在分区的重要资料
p
然后依次输入命令删除 15-20 分区,每输入一行,回车一次
d
20
d
19
d
18
d
17
d
16
d
15
接着用命令重新创建 15-20 分区并指定每个分区的大小,下面是我分区时使用的(划分 256MB 做 system 分区),你可以修改,也可以直接按照这个使用。需要注意:最后一个值 488448 在某些机器上是 477184,可以参考前面输入 p 命令后的,输出的“1 heads, 16 sectors/track, 488448 cylinders”。
n
20866
53633
n
53635
53762
n
53764
55043
n
55045
56068
n
56070
79109
n
79111
488448
然后将 17 分区的分区标识改为 60,不改刷不了 Recovery
t
17
60
修改好后再用命令查看是否有误
p
无误后输入保存当前分区
w
这个是我分区后的情况
然后在完美刷机的重启工具中点击“引导模式”,进入 fastboot 模式,手动刷入第三方 Recovery 线刷包(也可以直接用 MiFlash 线刷官方 Recovery2.0 线刷包,我用时没有成功,直接用完美刷机线刷了一个 MIUI V4 的安装包,系统当然没刷成功,但是把小米 Recovery2.0 刷上去了),最后进入 Recovery 刷入卡刷包。
三、补充知识
(1)分区计算
起始值和结束值的算法:
起始值 = 上个分区结束值 +2
结束值 = 所要划分大小的 (多少 MB 乘于 1024) 除于 8 再加起始值再减 1
例如 P15 分区:我划分 256MB 做 system 分区,起始值是 P14 结束值 20864+2,即是 20866,结束值就是 256 乘 1024 除 8+20866-1 即是 53633。贴上我的分区数据做参考。
u5206u533au5217u8868 | u8d77u59cbu503c | u7ed3u675fu503c | u5927u5c0fKB | u6807u8bc6 | u7c7bu578b |
/dev/block/mmcblk0p15 | 20866 | 53633 | 262144 | 83 | Linux |
/dev/block/mmcblk0p16 | 53635 | 53762 | 1024 | 83 | Linux |
/dev/block/mmcblk0p17 | 53764 | 55043 | 10240 | 60 | Unknown |
/dev/block/mmcblk0p18 | 55045 | 56068 | 8192 | 83 | Linux |
/dev/block/mmcblk0p19 | 56070 | 79109 | 184320 | 83 | Linux |
/dev/block/mmcblk0p20 | 79111 | 488448 | 3274704 | 83 | Linux |
(2)P15 是系统一的 system 分区大小,如果你一直用卡刷,那么随意调多大都没关系,但绝不能低于卡刷包里 system 文件占用空间的大小,否则是刷不了机的。
调整分区后,线刷不能恢复原来的分区大小,唯一能改变的就是 system 分区,P15 里面的 system 大于 214MB,刷完就是 214M。当你保留了两个大于等于 214MB 的 system 空间,线刷完全没有问题。如果只保留了一个 214MB 的 system 分区,另一个 system1 小于 214M,则只有单系统,线刷之前,需要对线刷包的刷机批处理脚本做下小小的修改,修改很简单:把你要用到的 bat 文件用 Notepad++ 打开,删掉包含 system1 字符的那一行,就可以了刷了。如果不修改直接刷,当写入 system.img.ext4 镜像到 system1 的时候,由于空间不足, 会提示刷机失败。
(3)P16 是系统二的 system 分区大小。如果你需要双系统,那大小调整参见 P15 的说明。如果不需要双系统,那就把它设为 1M 吧,但绝不能不要,要保证分区数量和对应关系。
最后提醒大家:分区有风险,刷机需谨慎,如无必要,切莫乱入。
参考文章:
1、米 1(1S)手动分区详细教程,手把手教你学会
2、关于调整分区大小和调整后卡刷线刷的一些说明
欢迎转载,转载请注明出处:蔓草札记 » 小米 1/1S 手动分区过程记录