摘要:废旧的安卓手机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权限即可安装,如图所示:
3.安装Debian系统
3.1.配置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.安装过程
更新完操作环境后,回到Linux Deploy主页,点击右上角选项图标 ,选择「安装」,按提示赋予ROOT权限即可开始安装(如上图1)。首先是系统和分区、软件包的Retrieving和Validating(如上图2),然后是Extracting、Unpacking、Configuring(如上图3),接着下载安装其他必要软件(如下图1、2),最后是Setting up、Creating、Processing,配置好extra/ssh
后则部署完成(如下图3)。
至此,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 SSH
、X Shell
和Secure CRT
等。
例如在同一局域网下,电脑IP为192.168.0.104
,手机(Linux主机)IP为192.168.0.107
,则可以进行连接,如图是使用命令行进行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权限即可开始安装。
首先是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。
接下来是一系列配置,关键是extra/ssh
的安装和配置(几乎所有的失败都是这里的问题),如下图1。这项安装配置将会额外安装openssh-server
,如下图2。安装完成后自动配置好extra/ssh
则部署完成,如下图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 |