介绍
废旧手机通过安装linux来充当服务器功能,开发者可用来进行应用部署测试。
手机通过安装BusyBox和LinuxDeploy应用来实现centos的安装,前提是手机需要安装第三方recovery并且获取root权限。
本文通过努比亚z11mini手机来进行安装演示。
材料
手机+内存卡
软件
软件都自带中文。
努比亚Z11mini_一键刷入多语言TWRP_3.0.2-0:城通网盘 下载地址1 下载地址2
busybox_1.31.1:google商店 下载地址1 下载地址2
linuxdeploy_259:googel商店 下载地址1 下载地址2
DiskGenius_5.1.0.653:下载地址1 下载地址2
google应用代理下载地址:https://apps.evozi.com/apk-downloader/
手机root
以努比亚z11mini为例。
1.打开调式模式
拨号盘输入 *#7678# ——>两项都打勾。
连接数据线,弹出的调试窗口选择一律允许,然后确定
2.解压运行文件
电脑解压下载的努比亚Z11mini_一键刷入多语言TWRP_3.0.2-0文件,运行点我刷recovery.bat 文件。
选择选项1在电脑安装驱动。
3.刷入recovery
输入2刷recovery(由于部分批次手机屏幕驱动可能会有差异,建议先使用3选项临时进入看触屏是否正常使用,即先输入3没问题重启再刷入2)
4.进入recovery
正常刷入之后后重启进入recovery,如果没有进入可以手动进行进入。
以努比亚z11mini为例:
关机,同时按住音量上和电源键,在出现nubia logo的时候松开电源键,音量上继续按住,直到进入recovery为止。
5.刷入root
点击高级>>沉默之星工具箱>>获取ROOT权限>>滑动按钮确认,成功获取root权限后重启即可。
格式化内存卡
将内存卡插入电脑,通过DiskGenius软件创建类型为ext4分区。创建完成后插入手机,手机会显示空SD卡,没有关系,因为手机无法识别ext4类型的存储卡,提示格式化的话就取消,不要格式化。
安装linux
1.安装busybox
手机安装busybox后,点击安装,提示如下图即安装成功。
第一个红框为系统的处理器框架,在安装centos7的时候会用到。
第二个红框为显示安装的路径,一般安装路径为/system/xbin。
2.安装linuxdeploy
- 安装完linuxdeploy,点击左上角>>settings>>把英文改成中文。
- 勾选屏幕常亮、锁定wifi、cpu唤醒、联网更新。
- 在环境项,PATH变量填入/system/xbin>>然后点击更新环境。
- 点返回,点击首页的最右下角按钮。
- 选择发行版为Centos。
- 选择架构为busybox上看到的,我这个是aarch64。
- 修改源地址为阿里源,
https://mirrors.aliyun.com/centos-altarch
。 - 安装类型:分区。
- 安装路径,此时出现的安装路径:/dev/block/mmcblkXpY;当前的/dev/block/mmcblk表示安装的时sd卡中,X表示的是存储(0表示手机存储、1表示的是sd卡存储),Y表示的是SD卡中的分区(上面具有三个所以分区就是1,2,3);我的内存卡只分了一个区,所以我这写入是/dev/block/mmcblk1p1。
- 文件系统:ext4。
- 用户名密码自己设定。
- 本地化:zh_CN.UTF-8。
- 挂载(可选,挂载手机内存到linux系统)。
挂载点也可以写/mnt/sdcard – /mnt/sdcard
15.初始化(可选可不选)
勾选后linux deploy将在启动后在指定路径运行脚本,默认为/etc/rc.local,不过它是/etc/rc.d/rc.local的软连接,所以就是开机自动运行/etc/rc.d/rc.local的脚本 - 勾选启用SSH。
- 配置完成,返回首页。
- 点击右上角>>点击安装。
- 看到如下输出>>deploy 时说明安装完成。
- 在启动前先点停止,然后在启动。
- 启动成功如下图:
SSH连接
电脑通过Xshell等方式连接上linux即可。
参考文章:[建站教程]xftp xshell的安装
ps
安个宝塔面板美滋滋~,我在安装宝塔报个错,但是目前来看不影响运行。
这个错主要是影响服务的开机自启。
问题
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
2.数据库无法启动
执行如下命令添加如下用户组尝试一下:
usermod -a -G aid_inet,aid_net_raw mysql
3.宝塔的www用户无法登陆
1)打开用户文件夹。
cat /etc/passwd
2)找到www用户,将/sbin/nologin改为/bin/bash。
3)即可登录
su www