-
一、Sailfish X进入Recovery Mode
今天所说的扩容要在Recovery Mode下操作。各位玩过Jolla手机印度鱼和Jolla平板的坛友们对此肯定不陌生,而且Jolla的support网站都对这些设备进入Recovery Mode给出了详细教程。当初我在写本文的时候Jolla还没有在售后网站上收录Sailfish X的Recovery Mode教程而只在移植文档里有,现在就都有了。参见:https://jolla.zendesk.com/hc/en-us/articles/360002996893-Xperia-X-devices-How-to-use-the-Recovery-Mode 。这里我就直接用中文搬运过来,具体如下:
1、首先,找到你当初刷Sailfish X所用到的官方zip包,解压会发现里面有一个恢复镜像 hybris-recovery.img。Linux党只要把这个东西解压出来放到一个你记得住的目录里即可(后面要用到的fastboot工具需要安装android-tools,如果你用的是Linux刷的机肯定知道我什么意思)。Windows党由于需要这个包里的fastboot,所以可能需要都解压出来,并记住你解压后的目录
2、手机关机,进入fastboot模式连接电脑。对,当初你给机子刷上系统的时候是做过这步的。什么?你忘了?或者你现在用的电脑不是你当初刷机用的那台?好罢……忘了刷机步骤随时可以捡起小马哥的教程来看:https://itviewer.github.io/sailfish/ 看“驱动安装”那步:“手机关机,按住音量+键同时将数据线插入电脑USB接口,待手机指示灯变为蓝色,手机进入fastboot模式”。由于我是Linux党,不确定Windows平台下进recovery需不需要驱动。如果不需要的话直接接着看下一步。需要的话就按小马哥给的教程装驱动就好
3、Linux用户请打开终端并cd进入恢复镜像所在的目录(如果你上述解压步骤全部都的是命令行那直接cd过去就行了),Windows用户,没记错的话可以直接在资源管理器中打开你解压后的目录,Shift+右键在此处打开命令窗口(有可能需要管理员权限),或者打开cmd后用cd命令再进入你的解压目录即可。对cmd命令行操作不熟的可以百度稍微学习一个(其实我因为很久不用微软所以我也不熟……)。然后输入命令:fastboot boot hybris-recovery.img #Linux需要使用sudo或者干脆切换到root用户来操作
回车后等出现
finished. total time: ***s
(***是你机子上实际花了多少秒,一般时间很短)的时候,你会发现手机屏幕上出现一行字(以下是用Linux平台操作的实拍图):一切准备就绪,你可以直接使用telnet进入Recovery Mode了。接下来,Windows党可参考如下帖子进入Recovery Mode(安装RNDIS、telnet并指定IP地址及连接):http://tieba.baidu.com/p/3436785003 。Linux党,输入屏幕上给出的命令
telnet 10.42.66.66
回车。最后,我们看到如下界面:Recovery Mode就进入成功了
-
二、调整分区大小
进入Recovery Mode后,选择3进入Shell。之后你可以用lvm的工具(可能叫lvm shell我猜的不确定)查看目前的逻辑卷情况:/ # lvm lvm> lvscan ACTIVE '/dev/sailfish/root' [2.44 GiB] inherit ACTIVE '/dev/sailfish/home' [18.25 GiB] inherit lvm>
(这里的
/ #
和lvm>
是命令提示符,在代码区块里的一些大段命令里我会把提示符也打出来,各位输命令的时候别把提示符也一块输了)
之后输入exit
来退出lvm的shell。接着输入:resize2fs /dev/sailfish/home 11G #11G只是个例子,注意你输入的这个大小要比你的已用空间大,不然数据很可能就损毁了
然后再次输入
lvm
进入lvm的工具,接下来就可以般移空间了:/ # lvm lvm> lvresize -L -2048M /dev/sailfish/home #这步2048M就表示你打算从home里拿出多少分给root。我用的2048也就是2G,你可以自选大小,注意要比你resize后的home和原home大小之差要小。注意参数-L是大写
接下来会问你是否确定,没什么问题的话输入y回车就好。然后
lvm> lvresize -l +100%FREE /dev/sailfish/root #注意参数-l是小写
一样,问你的话就输y回车
然后输入exit
来退出lvm的shell。最后,先后输入resize2fs /dev/sailfish/home
和
resize2fs /dev/sailfish/root
执行完之后你可以再回过头来用lvm看看root和home的大小是不是变了
最后输入
exit
退出Shell,然后选2 Reboot Device,手机重启。然后进设置 -> 存储看看系统数据有没有变大? -
后注:虽然我在本文中尽可能地阐述了一下操作细节,但仍不是非常推荐对命令行不熟悉的坛友们操作。毕竟调整分区属于风险度比较高的操作。如果要做的话,一不建议复制粘贴,二敲命令的时候一定要检查检查再检查,确认无误再回车。如若手机因为本教程砖了,如果不是我教程本身的原因,鄙人可负不了责……
最后,水贴完毕,逃(
P.S.: 新手实在不会玩markdown……本来命令是准备用代码区块
$ sudo fastboot boot hybris-recovery.img # 注释长这样 $ telnet 10.42.66.66
这么来的,可是一遇到root的命令提示符“#”后面就直接会用注释的形式显示了
/ # lvm #这个不应该是注释啊……
所以我只能用行内代码来写了……看上去的确实不够舒服……唉,反正是水贴也不在意这么多细节了……
===========
更新:感谢鸟张大大提供本站markdown的出处,改了个语法方式现在好看多了……
(顺便翻了下鸟张大大的旗鱼命令汇总贴,貌似用到的有objectivec,cs,css,apache,js这些) -
@天苯 在 【搬运教程+实操】Sailfish X进入Recovery Mode及根分区扩容 中说:
/ # lvm #这个不应该是注释啊……
这个锅markdown不背,讲道理
#
就是注释的功能,并且第一个#
是表示root权限的意思,不属于代码的一部分❀ -
@birdzhang 但是这里#后面的显示和注释一模一样……如果这个是表示root权限的话为啥和注释看不出区别呢……
-
@天苯 ```是代码块,只能渲染代码的格式。
-
@BirdZhang 那要是处理命令行的话就只能用行内代码了么……?我google了一下好像要支持我说的特性的话用的是```console,但我试了本站好像不支持这个……
-
@天苯 Nodebb的markdown用的这个 https://github.com/julianlam/nodebb-plugin-markdown
有些自己魔改的支持很多,但那种兼容性不好 -
@birdzhang 谢谢鸟张大大……我把这里的highlight里所有支持的语言都试了一遍,最后选了cs……虽然还是注释但至少不是斜体那么别扭了……
-
支持一哈
-
试用了,方法Windows 还是按照以前的Jolla 方法进入rec
-
@kurt 是我给的那个贴吧链接里说的方法?IP地址是自己在PuTTY里设置?还有Win应该不会连恢复镜像都不需要罢……
-
Windows 进入是输入192.168.1.14和Jolla 一样,只是进入rec需要fastboot,楼主的帖子还是很好的,支持,已经成功扩张了的
-
@kurt 也就是说Windows用fastboot启动恢复镜像以后就完全按照那个贴吧的帖子来操作就可以了罢。感谢测试。看看我二楼修改得可以否?
-
只是在 windows进rec方法需要输入192.168.1.14其他的和楼主教材完全一样
-
XA2上同样可用,已亲测成功
-
home目录我给算小了,结果系统重新刷了。。。WTF
-
亲测xa2可以在线改
pvcreate /dev/disk/by-partlabel/system_a vgextend sailfish /dev/disk/by-partlabel/system_a lvextend sailfish/root -l +100%FREE resize2fs /dev/mapper/sailfish-root
-
@BirdZhang 等等……在线改?完全不用recovery的意思?
-
@天苯 是的