设备信息
手机:小米6
操作系统:Android 9/MIUI 9.9.3
操作步骤
1.安装Magisk进行ROOT。
2.在软件主界面查看 Ramdisk
结果并记录。记录系统版本。
if Ramdisk 查询结果为“是”,从刷机包中提取boot.img文件
if Ramdisk 查询结果为“否”,从刷机包中提取recovery.img文件
{
if 是卡刷包,从解压的payload.bin文件里提取
if 是线刷宝,直接提取
}
3.安装刷机软件toolbox。
if Ramdisk 查询结果为“是”,进入toolbox选择“基本刷入——>修补boot——>上传boot.img文件后toolbox会自动生成文件进行修补”
if Ramdisk 查询结果为“否”,进入toolbox选择“基本刷入——>修补boot——>勾选安装recovery——>上传recovery.img文件后toolbox会自动生成文件刷入”
注:可通过“toolbox——>主页”判断电脑是否成功连接fastboot,如未连接成功,重启并重新插拔数据线。
4.重启进入Magisk确认ROOT完成。
注:如提示需要修复环境,进入Magisk后选择安装,取消勾选“保留AVB 2.0/dm-verity",勾选直接安装,重启即可。
5.安装syslock验证是否成功解锁System分区。
6.安装busybox、linuxdeploy。
7.打开busybox,进入后选择install,记录busybox安装路径,一般为system/xbin
。
8.打开linuxdeploy,进入后选择配置,选择系统,修改源地址为国内源。
https://mirrors.aliyun.com/centos-altarch/
注:架构根据自己手机CPU架构选择,本人选择armhfp;dns本人为114.114.114.114;镜像大小代表服务器磁盘空间,一定要设置足够,本人设置45000M。
10.设置安装路径为${EXTERNAL_STORAGE}/centos/linux.img
。
注:如果选镜像安装,则镜像会下载在手机根目录的centos目录下。
9.启用”允许挂载Android上的资源“。今后可以通过cd /mnt/sdcard/
访问手机存储文件。
sdcard
/mnt/sdcard/
10.启用ssh,电脑ssh连接手机必须将电脑和手机连接在同一局域网内。
11.选择linuxdeploy设置,PATH变量编辑为busybox的安装路径system/xbin
,选择更新操作环境。
12.选择linuxdeploy右上角安装按钮,出现以下提示即为安装成功,之后选择停止卸载容器。
<<<deploy
注:如果提示retrieving package list ... fail则表示源有问题连接失败,需要换源。
13.选择启动,出现以下提示即为启动成功,电脑即可通过ssh连接。
<<<start
14.由于作为服务器长期通电开机会损伤电池,故可安卓acca充电控制软件,将充电方式改为电源适配器直流供电。
问题处理
SSH连接失败
#报错如下
starting extra/ssh fail
1.选择linuxdeploy设置,启用telnet(不勾选仅允许本地主机连接),启用HTTP,访问限制设置如下
A:192.168.2.105 D:*
注:192.168.2.105为要远程连接服务器的电脑的IP。
2.重新启动服务器后,电脑访问http://192.168.2.103:5080/
3.输入su后会进入以下路径
/data/data/ru.meefik.linuxdeploy/files
4.进入root
./bin/linuxdeploy shell -u root
5.下载国内软件仓库并启用
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-altarch-7.repo
6.清空源缓存并重新生成
sudo yum clean all
sudo yum makecache
7.如果报错提示解析不到$releasever
则执行以下命令
a.手动编辑CentOS-Base.repo
文件,将$releasever
替换为7
#例
[base]
name=CentOS-7 - Base
baseurl=http://mirrors.aliyun.com/centos-altarch/7/os/aarch64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-altarch/7/os/aarch64/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-7 - Updates
baseurl=http://mirrors.aliyun.com/centos-altarch/7/updates/aarch64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-altarch/7/updates/aarch64/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-7 - Extras
baseurl=http://mirrors.aliyun.com/centos-altarch/7/extras/aarch64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-altarch/7/extras/aarch64/RPM-GPG-KEY-CentOS-7
[centosplus]
name=CentOS-7 - Plus
baseurl=http://mirrors.aliyun.com/centos-altarch/7/centosplus/aarch64/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos-altarch/7/centosplus/aarch64/RPM-GPG-KEY-CentOS-7
b.清空源缓存并重新生成
sudo yum clean all
sudo yum makecache
8.安装OpenSSH
服务器和客户端
sudo yum install -y openssh-server openssh-clients
9.打开sshd_config
文件
sudo vi /etc/ssh/sshd_config
10.核对配置是否正确,如被#注释,请取消注释
PasswordAuthentication yes
PermitRootLogin yes
PubkeyAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
注:esc——>输入:wq退出并保存。
11.查看ssh服务状态,并kill掉且重启ssh
ps aux | grep sshd
sudo pkill sshd
sudo /usr/sbin/sshd
12.重置root密码
echo "root:新密码" | sudo chpasswd
13.重新回到linuxdeploy,停止系统设置,关闭telnet,关闭HTTP。
14.启用SSH,重新启动系统,完成!
附CentOS-ARM架构软件下载仓库地址:https://mirrors.aliyun.com/centos-altarch/7.9.2009/os/aarch64/Packages/
注:折腾死我了,真是到处是坑,从前一天18点弄到23点,第2天中午没午休还搞了2小时Z..Z。
chroot下无法使用systemctl
2.上传至任意目录,解压至/usr/local/lib/
。
tar -xf servicectl-1.0.tar.gz -C /usr/local/lib/
ln -s /usr/local/lib/servicectl-1.0/servicectl /usr/bin/servicectl
ln -s /usr/local/lib/servicectl-1.0/serviced /usr/bin/serviced
3.由于servicectl-1.0.tar.gz只执行/usr/lib/systemd/system/
目录下的文件,故需将原/etc/systemd/system
路径下的.service
服务copy至/usr/lib/systemd/system/
下
4.执行
servicectl start 服务名
设置开机自启动
1.进入linuxdeploy设置里勾选初始化设置。
2.进入centos,编辑/etc/rc.local
文件并保存,模板如下。
#!/bin/bash
touch /var/lock/subsys/local
. /etc/profile
# 以下为开机自启动后需执行的指令
servicectl start jfdk
servicectl start nginx
servicectl start music
exit 0
3.授权可执行。
chmod +x /etc/rc.d/rc.local
注:同时启动多个监听端口的服务时,linuxdeploy启动时和停止时分别要重复操作2次才行(第1次启动时会卡住)。
无权执行ping命令
#报错如下
socket: Permission denied
问题原因:这是因为Android
将不同硬件的使用权限归类到了不同的用户组,而3003
是关于网络权限的组,故需将CentOS
中ROOT
用户添加至3003
网络权限组。
1.查找3003
组在CentOS
中是否存在。
getent group 3003
2.如不存在则创建该组。
groupadd -g 3003 mygroup
3.将ROOT
用户添加至3003
组。
usermod -a -G mygroup root
4.验证是否成功添加。
groups root
5.重启服务器即可。
备份及扩充镜像空间
#报错如下
/dev/block/loop0 3.9G 3.9G 0 100% /
注:不建议使用“dd if=/dev/zero bs=1048576 count=4000 >> linux.img”或“e2fsck -f -y linux.img”等指令无损调整img镜像空间大小,容易出错导致镜像损坏或启动服务器出问题,本人亲测,血的教训。
备份
1.linuxdeploy停止服务器运行。
2.linuxdeploy选择右上角菜单选项,选择导出,会自动将备份文件导出为linux-roots.tar.gz
文件。
还原
1.linuxdeploy进入右下角设置,设置信息如下:
安装类型:镜像文件
源地址:${EXTERNAL_STORAGE}/linux-roots.tar.gz
安装路径:${EXTERNAL_STORAGE}/linux.img
镜像大小:45000M
注:“${EXTERNAL_STORAGE}/linux-roots.tar.gz”指根目录下的“linux-roots.tar.gz”文件。
2.linuxdeploy选择右上角菜单选项,选择安装,linuxdeploy会自动读取源地址的备份文件并创建45000M的img镜像文件。
3.启动服务器。
扩容
思路:通过备份后重新还原时重新设置镜像大小的方式进行扩容。
安装MYSQL数据库
1.查看mariadb
是否安装。
rpm -qa | grep mariadb
2.卸载mariadb
。
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
注:mariadb-libs-5.5.56-2.el7.x86_64为输出的mariadb包名。
3.查看libaio
是否安装。
rpm -qa | grep libaio
4.如未安装,安装libaio
。
yum install libaio
5.下载MYSQL。
6.上传下载的MYSQL包。
7.解压MYSQL包。
tar -xvf mysql包名.el7.aarch64.rpm-bundle.tar
8.解压完成后进入MYSQL包目录。
#安装common
rpm -ivh mysql-community-common-8.0.40-1.el7.aarch64.rpm --nodeps --force
#安装libs
rpm -ivh mysql-community-libs-8.0.40-1.el7.aarch64.rpm --nodeps --force
#安装client
rpm -ivh mysql-community-client-8.0.40-1.el7.aarch64.rpm --nodeps --force
#安装server
rpm -ivh mysql-community-server-8.0.40-1.el7.aarch64.rpm --nodeps --force
注:mysql-community-common-8.0.40-1.el7.aarch64.rpm为输出的解压后的文件名,根据实际情况填写。
9.验证MYSQL是否安装成功。
rpm -qa | grep mysql
10.初始化MYSQL。
mysqld --initialize;
chown root:root /var/lib/mysql -R;
12.搜索MYSQL启动服务文件。
find / -name "*mysqld.service*"
13.设置MYSQL开机自启动。将mysqld.service
拷入/usr/lib/systemd/system/
目录下。
14.由于是chroot
模式,故需强制MYSQL以root
方式启动。编辑/etc/my.cnf
和/usr/lib/systemd/system/mysqld.service
文件,修改或添加以下代码。
User=root
15.启动MYSQL。
servicectl start mysqld
16.设置MYSQL开机自启动。编辑/etc/rc.local
文件并保存,模板如下。
#!/bin/bash
touch /var/lock/subsys/local
. /etc/profile
# 以下为开机自启动后需执行的指令
servicectl start mysqld
17.查看MYSQL密码。
cat /var/log/mysqld.log | grep password
18.登录验证。
mysql -uroot -p
19.进入数据库后修改密码
ALTER USER '数据库账户名'@'localhost' IDENTIFIED BY '要修改为的密码';
评论区