前言

之前我的小米 9 由于中了坏主板的招而放置了半年之久,突然心血来潮花了几大百拿去修了之后一直琢磨着拿这台机干些啥好,干脆装个 Linux 玩玩,当个服务器用。

现在安卓机装 linux 有几种方案

  • Termux
  • Aidlux(原名 Aid Learning)
  • Linux Deploy

Termux 算是方便能用,只不过受到安卓系统的限制,性能有点低,还会遇到杀后台的现象,在 Termux 里跑的进程优先级比较低。我有时候会遇到 ssh 连了几分钟才成功的现象,而且通过 Python 的 psutil 包获取cpu 信息时会出现只获取到 1 到 3 个 cpu 核心, cpu 调度不太积极。通过 root 手机可以拿到安卓系统的 root 权限,但是安卓系统是高度定制化的 Linux,很多东西要自己手动装。作为服务器来说不太推荐。

Aidlux 比 Termux 性能高一些,还自带桌面环境,但不是真正的桌面环境,想要运行 jb 家的 ide 还是要装 xfce。Aidlux 还做了 GPU 加速,内置了多个机器学习框架,不过我也用不到。感觉上 Aidlux 更偏向于把手机或者平板变成一个生产力工具,还是平板这种形态的设备更适合 Aidlux,哪天我买了安卓平板绝对要装一个。缺点是社区版用不了 root 权限,也不支持 root 过的手机,有些事情不方便。

Linux Deploy 是在安卓系统上使用 chroot 容器启动的一个子系统,性能相比原生的系统非常接近。同时通过 root 手机可以拿到这个子系统的 root 权限,对我这种懒人来说方便很多。美中不足的是这个子系统由于不是用 systemd 启动的,所以用不了 systemctl。后面会说解决方案。

于是选择了 Linux Deploy。

开始搞机

先 root 手机,参考极客湾的视频,强烈推荐。

安装 Linux Deploy 参考这个,我就不再赘述。

我选择的是 Debian 10 的镜像(习惯了 Debian),以目录的方式安装在 /data/linux 目录下。以目录的方式安装会使用整个手机的存储空间,并且方便我用 MT 管理器复制文件到子系统的目录。

装好后启动,使用 ssh 连接 Debian,推荐使用 MobaXterm 连接 ssh,MobaXterm 支持多种远程连接的协议,而且会自动检测 wsl,还内置了文件浏览器和系统监看,传文件不需要敲老长一段命令了。

开始安装 MySQL。执行 apt install mariadb 后发现装是装上了,但是并没有启动。以 systemctl 启动时报错 Running in chroot, ignoring request.。还好这个问题比较常见,一下就搜到了解决方案

照解决方案运行起来后,又到了驯服野生 MySQL 的时间了。先改配置文件 /etc/mysql/mariadb.conf.d/50-server.cnf,把 bind-address 改成 0.0.0.0,然后重启 MySQL,登录进去修改 root 账号的密码并把 host 改成 %,这样就能在任意 ip 使用 root 账号登录。不过只有内网访问这个数据库所以我才这样改,公网还是别这样。

话说 Gridea 的 gitalk 插件好像崩了,想找我的话点左边栏的“出没”就行。

2022-09-14