1 介绍

废旧手机通过安装linux来充当服务器功能,开发者可用来进行应用部署测试。 手机通过安装BusyBox和LinuxDeploy应用来实现centos的安装,前提是手机需要安装第三方recovery并且获取root权限。 本文通过努比亚z11mini手机来进行安装演示。

https://github.com/meefik/linuxdeploy

2 材料

手机+内存卡

3 软件

软件都自带中文。

4 手机root

以努比亚z11mini为例。

4.1 打开调式模式

拨号盘输入 *#7678# ——>两项都打勾。 连接数据线,弹出的调试窗口选择一律允许,然后确定

4.2 解压运行文件

电脑解压下载的努比亚Z11mini_一键刷入多语言TWRP_3.0.2-0文件,运行点我刷recovery.bat 文件。 选择选项1在电脑安装驱动。

4.3 刷入recovery

输入2刷recovery(由于部分批次手机屏幕驱动可能会有差异,建议先使用3选项临时进入看触屏是否正常使用,即先输入3没问题重启再刷入2)

4.4 进入recovery

正常刷入之后后重启进入recovery,如果没有进入可以手动进行进入。 以努比亚z11mini为例: 关机,同时按住音量上和电源键,在出现nubia logo的时候松开电源键,音量上继续按住,直到进入recovery为止。

4.5 刷入root

点击高级>>沉默之星工具箱>>获取ROOT权限>>滑动按钮确认,成功获取root权限后重启即可。

5 格式化内存卡

将内存卡插入电脑,通过DiskGenius软件创建类型为ext4分区。创建完成后插入手机,手机会显示空SD卡,没有关系,因为手机无法识别ext4类型的存储卡,提示格式化的话就取消,不要格式化。

6 安装linux

6.1 安装busybox

手机安装busybox后,点击安装,提示如下图即安装成功。 第一个红框为系统的处理器框架,在安装centos7的时候会用到。 第二个红框为显示安装的路径,一般安装路径为/system/xbin。

6.2 安装linuxdeploy

  1. 安装完linuxdeploy,点击左上角>>settings>>把英文改成中文。

  2. 勾选屏幕常亮、锁定wifi、cpu唤醒、联网更新。

  3. 在环境项,PATH变量填入/system/xbin>>然后点击更新环境。

  4. 点返回,点击首页的最右下角按钮。

  5. 选择发行版为Centos。

  6. 选择架构为busybox上看到的,我这个是aarch64。

  7. 修改源地址为阿里源,https://mirrors.aliyun.com/centos-altarch

  8. 安装类型:分区。

  9. 安装路径,此时出现的安装路径:/dev/block/mmcblkXpY;当前的/dev/block/mmcblk表示安装的时sd卡中,X表示的是存储(0表示手机存储、1表示的是sd卡存储),Y表示的是SD卡中的分区(上面具有三个所以分区就是1,2,3);我的内存卡只分了一个区,所以我这写入是/dev/block/mmcblk1p1。

  10. 文件系统:ext4。

  11. 用户名密码自己设定。

  12. 本地化:zh_CN.UTF-8。

  13. 挂载(可选,挂载手机内存到linux系统)。 挂载点也可以写/mnt/sdcard - /mnt/sdcard 15.初始化(可选可不选) 勾选后linux deploy将在启动后在指定路径运行脚本,默认为/etc/rc.local,不过它是/etc/rc.d/rc.local的软连接,所以就是开机自动运行/etc/rc.d/rc.local的脚本

  14. 勾选启用SSH。

  15. 配置完成,返回首页。

  16. 点击右上角>>点击安装。

  17. 看到如下输出>>deploy 时说明安装完成。

  18. 在启动前先点停止,然后在启动。

  19. 启动成功如下图:

6.3 SSH连接

电脑通过Xshell等方式连接上linux即可。 参考文章:[建站教程]xftp xshell的安装

6.4 ps

安个宝塔面板美滋滋~,我在安装宝塔报个错,但是目前来看不影响运行。 这个错主要是影响服务的开机自启。

7 问题

7.1 挂载的sdcard非root用户无权限

通过BindFS来挂载来实现别的用户对指定目录的读写。 解决办法: 1)安装BindFS,centos执行如下命令。 yum install bindfs 2)创建对应的映射目录。 例: mkdri /mnt/bindsd/www 3)执行映射语句。 例如你挂载的目录为/mnt/sdcard/www,给www用户www用户组进行授权。 sudo bindfs --map=root/www:@aid_sdcard_r/@www /mnt/sdcard/www /mnt/bindsd/www 4)切换www用户看看是否可以创建文件夹。 例子: su www 5)如果要取消映射,执行如下命令。 /mnt/bindsd/www为取消的目录。 sudo umount /mnt/bindsd/www

7.2 数据库无法启动

执行如下命令添加如下用户组尝试一下: usermod -a -G aid_inet,aid_net_raw mysql

7.3 宝塔的www用户无法登陆

打开用户文件夹。 cat /etc/passwd 2)找到www用户,将/sbin/nologin改为/bin/bash。 3)即可登录 su www

8 参考文章

  1. 努比亚Z11mini(NX529J)刷TWRP第三方Recovery和获取Root教程及工具

  2. 安卓手机安装Linux教程 多图

  3. 【Linux Deploy】一、Linux Deploy安装配置使用教程

  4. 使用BindFS以写许可权挂载SD