让 Ubuntu Touch 20.04 的系统分区可写入

近日,我尝试把Ubuntu Touch装入手机,以便取代x86服务器(家用时噪音太大)。刷机过程很顺利,电脑下载UBports Installer 汉化版,一路按提示操作即可,比刷安卓简单多了。

按网上现有教程,换了国内镜像源,更新了apt,装好nginx、Alist、AdGuard Home、AList等软件后,发现每次重启手机后,新装的这些软件的服务均未启动。ssh或者adb shell登陆上去后,手动启动各个服务又恢复正常。经过若干天排查后,终于找出问题原因。

原来是system分区为只读,导致开机时systemd试图启动这些服务时报错。而我sshadb登陆后又总是习惯先执行sudo mount -o remount,rw /,以可读写权限重新挂载system分区,所以才一直没找到造成问题的真正原因,浪费了好几天。

经多方查找,官方曾经提供解除只读的方法,sudo touch /userdata/.writable_image,实测发现对Ubuntu 20.4失效。后来在/etc/fatab文件中第一行发现/dev/root / rootfs defaults,ro 0 0,尝试将ro改为rw,重启后发现被复原。

在官方论坛找到一篇帖子证实了/etc/fatab确实会在系统启动时被覆盖。fstab getting overwritten?

绞尽脑汁在官方git库中各种搜索后,在<boot 分区>/ramdisk/scripts/halium 找到一行shell脚本: echo "/dev/root / rootfs defaults,ro 0 0" >>$FSTAB

最终解决方案为:

  • 打开刷机时用的电脑
  • 找到%APPDATA%\Roaming\ubports\lavender\Ubuntu Touch\boot-xxxxxxx.tar.xz并解压出boot.img
  • 解包boot.img,将其中/ramdisk/scripts/halium里第320行左右,找到echo "/dev/root / rootfs defaults,ro 0 0" >>$FSTAB,将其中的ro改为rw,保存后重新打包
  • 手机重启到fastboot模式(重启前按住音量-不放,直到完全黑屏只亮背光)(注意,刷入Ubuntu Toch会去掉[fastboot的图片](93976f283b08c951af37eaf379f903e0.jpg (800×517)),导致此处黑屏,但功能正常)
  • fastboot重刷boot分区fastboot flash boot /your/path/to/new/boot.img

经过以上处理,Ubuntu Touch系统分区(system)只读的特性被彻底抹除,日常使用体验(只用CLI、不用GUI)与Ubuntu桌面版别无二致。

总结近段日子,发现用手机刷Ubuntu Touch代替x86服务器有两大障碍,一是system分区太小,装不了多少软件。好在网上有linux给磁盘重新分区的教程,帮我把分区扩大为12G。第二大障碍每次重启系统都回复只读状态。经过全网搜索,未发现其他有效的解决方案,故特作此文记录,以备日后查询。

相关推荐
allway26 小时前
基于华为taishan200服务器、arm架构kunpeng920 cpu的虚拟化实战
linux·运维·服务器
Junlan276 小时前
Cursor使用入门及连接服务器方法(更新中)
服务器·人工智能·笔记
CSCN新手听安6 小时前
【linux】高级IO,I/O多路转接之poll,接口和原理讲解,poll版本的TCP服务器
linux·运维·服务器·c++·计算机网络·高级io·poll
熊文豪6 小时前
服务器炸了才知道?Ward+cpolar让异常无处藏
运维·服务器·cpolar
杜子不疼.6 小时前
【Linux】教你在 Linux 上搭建 Web 服务器,步骤清晰无门槛
linux·服务器·前端
荔枝吻6 小时前
忘记服务器密码,在Xshell7中查看已保存密码
运维·服务器·github
码农阿豪6 小时前
多服务器批量指令管理:从Xshell到自动化运维
运维·服务器·自动化
Pocker_Spades_A6 小时前
在家也能连公司服务器写代码?GoLand+CPolar 远程开发实测
运维·服务器
CSCN新手听安6 小时前
【linux】网络基础(三)TCP服务端网络版本计算器的优化,Json的使用,服务器守护进程化daemon,重谈OSI七层模型
linux·服务器·网络·c++·tcp/ip·json
普马萨特7 小时前
GPS、WiFi、基站定位:为什么在 Agent 时代不仅不受影响,反而更重要
linux·运维·服务器