如何在安卓手机上安装Linux发行版

温馨提示:点击页面下方以展开或折叠目录

摘要:废旧的安卓手机root后安装Linux发行版,并在chroot容器中运行。

文章说明
文章作者:鴻塵
文章链接:https://hwame.top/20211009/install-linux-on-android-phone.html
文章说明:root手机上安装Linux系统,我折腾过很长的一段时间,查阅参考了很多文章,由于时间跨度较大,参考资料可能不全。
参考资料:

1.前言

在已root手机上安装Linux发行版,我曾做过很多尝试,成功失败的都有,但是即使成功也是安装的Debian系的,RedHat系从未成功过。

写这篇文章时看了看电脑里的资料,发现早在2020年的6月就已经开始尝试了,那时候正是暑假没开学疫情在家没事干的时候,恰好手上有一台完全root的安卓手机。但那时候不是刚利用学生身份白嫖了阿里云的1M2H4G服务器吗,虽然说半年之后因为「考试」没过不能续期半年而没法白嫖到一年……

没有了学生身份之后,购买云服务器的价格是越来越贵了,不管是阿里云还是腾讯云。我寻思着能不能找到什么替代品,这让我想起之前在知乎不经意看到的,可以把Android手机改造成Linux。

✉本文也是一边摸索一边采坑,才成功安装上不同的Linux发行版,建议同时参考Debian和CentOS的「配置LinuxDeploy」部分。

2.准备工作

  • root手机,需要获得系统级Root权限。注意,未获取Root权限的手机可通过Termux作为替代软件,从而在手机上安装Linux,但是很多Linux命令将无法使用,不过运行个python命令行还是可以的【未验证,自行尝试】。
  • 需要连接网络,最好与电脑处于同一无线局域网,这样就可以在电脑上通过SecureCRT/XShell之类的软件进行连接;
  • 手机上安装Linux deploy(必需)、BusyBox(必需),JuiceSSH(可选但建议),RootExplorer(可选),各软件作用如下:
    • BusyBox(需要Root权限):用于扩展Android手机命令,因为在这装Linux之后,很多Linux命令都是没有的;
    • Linux deploy(需要Root权限):作为装载Linux系统的容器;
    • JuiceSSH:手机终端通过SSH连接Linux。
    • RootExplorer(需要Root权限):强大的文件管理器,可操作系统文件、精简系统。
  • 安装BusyBox:打开BusyBox软件,可以看到状态为*not installed,点击右下方INSTALL,按提示赋予ROOT权限即可安装,如图所示:
    安装BusyBox

3.安装Debian系统

3.1.配置LinuxDeploy

配置LinuxDeploy

打开Linux Deploy软件,首页可见简要安装步骤(如上图1)。点击首页右下角的「设置图标」进行如下配置(建议「引导设置」中的配置项「本地化」设置为zh_CN.UTF-8):

类别 配置项 属性 备注
引导设置 发行版GNU/Linux Debian
引导设置 架构 arm64 安装BusyBox时的architecture,没有就选最接近的
引导设置 发行版GNU/Linux版本 buster
引导设置 源地址 http://ftp.debian.org/debian/ 可更换国内镜像源
引导设置 安装类型 镜像文件
引导设置 安装路径 /storage/emulated/0/linux.img 可命名为debian.img以示区别
引导设置 镜像大小 自动分配 默认为2GB,可修改
引导设置 文件系统 ext4
引导设置 用户名 root 默认android
引导设置 用户密码 ****
初始化 启用 ☑️ 貌似可不选
初始化 初始化系统 sysv 貌似可不选
挂载 启用 ☑️ 貌似可不选
SSH 启用 ☑️ 必选

配置完成后返回首页,点击左上角菜单图标,选择设置(如上图2),配置「环境」项。其中,「ENV目录」默认即可,「PATH变量」设置为「/system/xbin」,然后点击「更新环境」来更新操作环境(如上图3)。

3.2.安装过程

Debian安装过程1

更新完操作环境后,回到Linux Deploy主页,点击右上角选项图标 ,选择「安装」,按提示赋予ROOT权限即可开始安装(如上图1)。首先是系统和分区、软件包的Retrieving和Validating(如上图2),然后是Extracting、Unpacking、Configuring(如上图3),接着下载安装其他必要软件(如下图1、2),最后是Setting up、Creating、Processing,配置好extra/ssh后则部署完成(如下图3)。

Debian安装过程2

至此,Debian安装部署完成,第一次部署需要安装的软件很多,因此输出的日志很多很杂,「>>> deploy」和「<<< deploy」之间的输出即安装部署时的日志,如果失败则可从中检查。初次安装花费5分钟左右的时间,这取决于网速,例如此处运行时间为[09:51:02][09:55:07]。第二次再点安装时则只用了10秒,程序做必要的检查、软件的更新:[11:55:29] 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded,如下图。

重新安装

3.3.容器的启动与停止

安装完成后即可启动、连接、使用了。在Linux Deploy主页下方点击「启动」和「停止」即可完成服务器对应的操作,日志也会同步输出对应「>>> start / <<< start」和「>>> stop / <<< stop」的信息,如图所示。

容器启动和停止

注意:初次安装完成后,应先点击「停止」进行分区及系统的卸载,然后重新点击「启动」。

3.4.连接使用Linux

保持Linux处于 启动 状态,则可以通过SSH软件进行连接,例如Juice SSHX ShellSecure CRT等。

例如在同一局域网下,电脑IP为192.168.0.104,手机(Linux主机)IP为192.168.0.107,则可以进行连接,如图是使用命令行进行ssh连接。

远程连接SSH

【说明:】①貌似连接10分钟无操作则自动断开;②图示ssh命令第一次连接时会提示;③推荐使用专门软件,命令行过于简陋。

4.安装CentOS系统

4.1.新建LinuxDeploy配置

上面安装的Debian系统是在7月24日完成的,很多「非必要修改」的东西都是保持默认,比如镜像源、安装路径等配置项。

由于要安装CentOS,为了保留Debian和CentOS两者的配置,故新建一个配置文件而不是覆盖修改原来的Debian的配置。

在LinuxDeploy软件首页点击左上角菜单图标 ,选择配置文件,新建一个名称为Centos的配置文件。为了以示区别,将默认名称Linux修改为Debian

选择Centos配置文件后返回主界面,点击左上角菜单图标 ,选择设置 ,配置「环境」项,与3.1节安装Debian系统时的配置LinuxDeploy相同,不再赘述。

4.2.配置LinuxDeploy

打开Linux Deploy,首页可见简要安装步骤。点击右下角的设置图标 进行如下配置:

类别 配置项 属性 备注
引导设置 发行版GNU/Linux Centos
引导设置 架构 aarch64 安装BusyBox时的architecture
引导设置 发行版GNU/Linux版本 7
引导设置 源地址 https://mirrors.bfsu.edu.cn/centos-altarch/ 清华源失败才换此源
引导设置 安装类型 镜像文件
引导设置 安装路径 /storage/emulated/0/centos.img debian.img相区别
引导设置 镜像大小 自动分配 默认为2GB,可修改
引导设置 文件系统 ext4
引导设置 用户名 android 默认android
引导设置 用户密码 ****
引导设置 本地化 zh_CN.UTF-8 默认为C
SSH 启用 ☑️ 必选

说明:

  • ①镜像源地址是最容易出错的地方,就笔者环境而言:官方源速度慢不稳定,清华源卡会在某一步动不了(原因是否是用户名设置为root还是启用初始化/挂载未知),阿里源没有altarch分支,故选择北京外国语大学镜像站(只有这个才能成功安装CentOS)。
  • ②因猜测清华源root用户名原因,故将用户名改为android而未直接设置root。待系统安装成功后,可删除android用户。
  • ③镜像大小为0时即自动分配,默认只有2GB,若修改大小则需重装系统。

4.3.安装CentOS系统

在Linux Deploy主页,点击右上角选项图标,选择「安装」,按提示赋予ROOT权限即可开始安装。

安装CentOS系统1

首先是bootstrap/rootfs的安装(快),然后是bootstrap/centos的安装(慢),如上图1。
经过软件包的Retrieving和Resolving Dependencies(如上图1、2),软件依赖分析完成后将列出待安装软件的信息(包名、架构、版本、仓库、大小),如上图3。

Transaction Summary列出待安装的57个安装包(Package)和87个依赖包(Dependent package),如下图1。随即开始软件包的下载(Downloading)、安装(Installing)和校验(Verifying),安装校验过程可以看到当前进度,如下图1、2。完成后将列出已安装的软件,如下图3。

安装CentOS系统2

接下来是一系列配置,关键是extra/ssh的安装和配置(几乎所有的失败都是这里的问题),如下图1。这项安装配置将会额外安装openssh-server,如下图2。安装完成后自动配置好extra/ssh则部署完成,如下图3。

安装CentOS系统3

注意到,在上图1中配置完core/locale本地化后界面语言就变成中文了,这得益于「引导设置」中的配置项「本地化」设置为zh_CN.UTF-8

至此,CentOS安装部署完成,第一次部署需要安装的软件很多,因此输出的日志很多很杂,「>>> deploy」和「<<< deploy」之间的输出即安装部署时的日志,如果失败则可根据日志信息检查。初次安装花费5分钟左右的时间,这取决于网速,例如此处运行时间为[08:44:47][08:49:14]

4.4.启动停止与使用

同Debian,不再赘述。

5.附件

必不可少的安卓软件:

名称 版本 大小 备注
BusyBox 1.31.1 5.21MB Github下载,1年未更新
Linux deploy 2.6.0 10.1MB Github下载,1年未更新

可选但强烈建议安装的安卓软件:

名称 版本 大小 备注
JuiceSSH 3.2.2 23.6MB JuiceSSH官网下载,最新版于2021-01-30

安装日志文件可作为安装参考、查错依据,若与以下日志不同则可对比来定位问题。

名称 Linux发行版 版本 大小
linux-debian.log Debian buster 41.0KB
linux-centos.log CentOS 7 85.6KB