Linux Deploy 自定义配置 Ubuntu20.04.6LTS(focal)
准备条件:一部安卓手机,需要root
安装方式:自定义安装Linux镜像
参考链接
1.安装Busybox
- 下载安装busybox:https://github.com/meefik/busybox,版本1.34.1
- 需要root权限,Install 路径默认 system/xbin
- Tips:该软件最好安装,安装后会自带很多Linux命令集,比如ping命令,不安装的话使用ping命令会提示not find command
2.Linux Deploy
下载安装Linux Deploy :https://github.com/meefik/linuxdeploy,版本2.6.0
左上角设置环境如下,然后更新操作环境:
ENV目录 /data/user/0/ru.meefik.linuxdeploy/files
PATH变量 /system/xbin
3.容器安装配置
发行版: rootfs.tar
源路径 : 选取本地文件(全路径+文件名)${EXTERNAL_SRORAGE}/rootfs.tar.xz
可在右上角状态中查看系统架构,小米平板2选择amd64,Le2选择arm64
安装类型: 镜像
安装路径:${EXTERNAL_SRORAGE}/Linux/ubuntu.img
镜像大小: 对应容器大小(10240M也能成功)
不要选择自动而是512M以上的值, 并且如果你是通过busybox安装的linux指令环境那么镜像文件大小也不能超过2G
文件类型: 选择 ext4 即可
用户名及密码自行设置即可(不要设置 root 用户即可)
本地化: zh_CN.UTF-8
挂载点: 即将手机目录挂在载安装的 linux 下某个目录, 看自己需求
例:/storage/emulated/0:/mnt/sdcard/
SSH: 由于 rootfs 文件里面一般没有 openssh-server, 因此安装时这里不勾选。等到完成后再通过内部通道安装 openssh-server 打开 ssh 服务
GUI: 安装阶段请勿勾选, 会失败, rootfs.tar 没有相关资源
4.安装
点击右上角安装
若报错making file system(ext4)…fail,则是因为在安装路径已有镜像文件,删除后重新安装
5.进入虚拟机环境
无SSH,通过其他方法进入虚拟机环境(三种可选)
点击Linux Deploy左上角设置,打开Telnet选项,记住端口号,关闭仅本地主机可连
1
telnet {ip地址} 5023
开启USB调试,使用adb进入
1
adb shell
安装软件JuiceSSH
安装链接:小米应用商店
新建连接,类型选择本地设备,点右上角对勾即可
输入su回车,取得root超级权限
1 |
|
输入以下命令回车,进入安装的虚拟机内
1 |
|
此时可能报错:chroot: can’t execute ‘/bin/su’: No such file or directory
不知道为什么会报这个错,重启手机,不行就重装
成功进入会出现[root@localhost#] 即表示登录进容器内。
6.其他问题解决
修复DNS解析错误
删除/etc/resolv.conf, 重新创建一个/etc/resolv.conf文件, 建议把权限设置为755。
1
2rm /etc/resolv.conf
touch /etc/resolv.conf && chmod 755 /etc/resolv.conf然后在软件页面先stop再使用前面进入容器, 再用vi命令查看
/etc/resolv.conf
文件内容是否与你的网关相匹配1
2vi /etc/resolv.conf
cat /etc/resolv.conf最后, 使用ping baidu.com命令检查网络连接, 但是可能此时并不能进行软件下载和更新, 因为现在软件源时国外的源。
1
ping baidu.com
修复apt安装错误
使用vi修改/etc/passwd中_apt的65535(65534)为3003。操作: 命令:
vi /etc/passwd
, 再输入/_apt
再按enter
, 再按i键
, 修改65535(65534)为3003, 再按ESC键
最后再按:wq回车
保存即可1
vi /etc/passwd
更新软件源为国内源:
即修改
/etc/source.list
文件为国内网易, 阿里, 中科大等的镜像网站。可以试试百度修改debian(版本) 国内源, 然后apt-get update
后面就是安装软件了1
2vi /etc/source.list
apt-get update推荐北师大软件源:
1
2
3
4deb https://mirrors.bfsu.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.bfsu.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.bfsu.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.bfsu.edu.cn/ubuntu/ focal-security main restricted universe multiverse安装SSH服务端
上面的工作完成后现在安装SSH服务端开启SSH服务即可, 输入
apt install openssh-server
, 然后在linux deploy软件容器配置里勾选SSH即可1
apt install openssh-server
用户无法使用ping
root用户登录使用命令
usermod -G 3003 root
, 重启容器解决。新创建的用户只是将root改为新创建的用户名即可。1
usermod -G 3003 root
root登录其他用户tab键失效
root账户登录终端输入
ln -sf /bin/bash /bin/sh
, 软链接bash和sh, 或者搜索 切换默认sh为bash1
ln -sf /bin/bash /bin/sh
7.ssh连接
右下角启用SSH,默认22端口
右上角点击配置,重新配置文件
点击启动,看到ssh应该启动了
可能出现 Permissions 0644 for ‘/Users/…/.ssh/..’ are too open…(重装容器解决)
8.备份 rootfs
右上角导出,选择导出位置,等待完成即可
9.解决chroot下无法使用systemctl
安装
1 |
|
使用servicectl
1 |
|
此命令仅执行文件 /usr/lib/systemd/system/${service}.service
中的${action}
, 如果通过的操作启用或禁用,则servicectl
将在 ${service}.service
上创建或删除symlink
以供使用服务。
参数:
- action - 可以是 {
start
,stop
,restart
,reload
,enable
,disable
} - service -在
/usr/lib/systemd/system/
文件夹中的文件
使用serviced
1 |
|
此命令执行 ${action}
为所有启用服务。
参数:
- action -默认是
start
,也可以是: {start
,stop
,restart
,reload
,disable
}
例如
1 |
|