2019独角兽企业重金招聘Python工程师标准>>>

PS:
打算在家里的旧安卓手机上安装linux,之前一直尝试使用complex Linux Installer,在我的泛泰A860上安装是安装成功了,但是运行时,一直报一些莫名其妙的错,好多命令也不能用,使用ssh,ssh客户端登录后也直接报错。一时无解,偶然间看到Linux Deploy,试了一下,果然可以了。
本人基本参考了这篇文章,其中部分细节,根据我的经验,做一些补充,用括号斜体加粗字标出。

正文:
Linux Deploy是一款可以在Android设备上部署Linux环境的应用,在小苏这种非专业人士来看,其原理大概是在Android的Linux层跑一个chroot或者proot容器,然后再在容器中运行我们准备好的另外一个Linux系统。值得注意的是,这与我们熟知的虚拟机技术不同,新的Linux系统将和Android系统平行运行(非专业解释不要深究)。

在使用Linux Deploy之前,我们需要获取手机的Root权限,获取Root权限后,我们还需要安装Busybox,值得注意的是,在Busybox的选择上小苏建议大家选择Linux Deploy同开发者开发的Busybox应用,如果你还没有安装Busybox,还可以下载本文提供的Busybox卡刷包卡刷Busybox,使用其他开发者的Busybox可能会出现一些问题。(Busybox,我使用的是应用宝里下载的:“BusyBox Pro Linux工具箱”版本号:v50,大小:3.47M。Linux Deploy我也是在应用宝里下载的,Linux Deploy 版本号:v2.0.2 大小:7.56M)

成功安装Busybox后,打开Linux Deploy,我们需要在侧边栏 - Setting - Language中切换语言为”中文”。切换完成后,一直按返回键退出应用再重新进入应用,这时应用的显示语言已经被我们更改为中文了。

接下来,我们将使用Linux Deploy在Android设备上部署Ubuntu系统:

点击界面最右下方的”属性”按钮进入配置文件的设置界面进行如下设置(我也不知道开发者为什么会用这么一个”下载”图标作为配置文件设置界面的图标):

Containerization method:”chroot”

发行版:”Ubuntu”

架构:保持默认值

发行版版本:”yakkety”(即Ubuntu 16.10)

源地址:http://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/(因为默认源速度不佳,为了不下载一天一夜,我们这里使用的是清华大学的开源镜像源)

安装类型:这一选项的话小苏有两种建议,”目录”和”文件”,如果对Linux不太熟悉并且/data分区剩余空间≥2g的话,小苏建议使用”目录”的安装方式,如果对Linux比较熟悉或者/data分区剩余空间<2g的话,小苏建议使用”文件”的安装方式。在这里,小苏使用”目录”的安装方式。

安装路径:”安装路径”选择”目录”时,这个选项将定义系统安装在哪个路径中,默认路径为${ENV_DIR}/rootfs/linux,即安装在/data/user/0/ru.meefik.linuxdeploy/env/rootfs/linux目录下。”安装类型”选择”文件”时,这个选项将定义系统安装在哪个镜像文件中,默认值为”外置存储/linux.img。

(按原文作者的建议,我的泛泰A860,使用“目录”的方式,默认路径安装,一切正常。但是在华为D1上,却发现系统安装启动后,ssh服务打不开,提示ssh fail。网上有人提示说可能是路径的问题,经过反复尝试,华为D1,此处类型选择“文件”,路径改为:/mnt/sdcard/linux/linux.img 安装后,ssh服务就可以用了。一开始可能会提示“ssh skip”,按“停止”键,再“启动",把linux重启然后看看。)

镜像大小(MB)(安装类型”选择”文件”时可用):这个选项将定义系统所在镜像文件的大小。系统安装之前将在安装目录创建一个大小为设置的镜像大小的空文件用来存放系统文件和数据(相当于新Linux系统的总磁盘空间)。小苏建议不要用默认值,填写2048m足够了。

文件系统(安装类型”选择”文件”时可用):选择”自动”就好。

用户名:这个选项为登录系统时的用户名,默认为”android”,可以随意更改。

用户密码:这个选项为Ubuntu系统中用户的密码,可以根据自己的习惯填写。

Privileged Users:保持默认值”root”

DNS服务器:可以保持默认值,也可自定义填写DNS服务器地址(如114.114.114.114等)

本地化:建议保持默认值POSIX,如果有其他需求,比如ssh返回结果中文化/VNC中文化时,选择”zh_CN.UTF8”

INIT/MOUNTS项:若有需求时可以设置,无需求可以忽略。

允许SSH服务器启动:打开此选项

SSH设置:保持默认

允许图形界面启动:若有需求可以设置,这里暂时不打开这个选项

设置完成后,按返回键返回到应用主界面,按下菜单键,选择”安装”开始Linux系统的安装,安装过程中需要一直保持网络连接(建议在WIFI下安装,大概需要几百兆流量)。 当看到终端输出”>>>deploy”时,代表安装已开始:

当看到终端输出”<<<deploy”时,代表安装已完成:

点击主界面下方的”启动”按钮可以启动新安装的系统,点击”停止”可以停止系统。

至此,系统部署部分描述完毕。

部署完毕后,我们需要用到lJuiceSSH/ConnectBot之类的SSH工具来登录系统(这里以JuiceSSH为例)。

成功启动系统后我们打开JuiceSSH,依次点击 “连接” - 右下角”+”按钮 进入新建连接界面:

昵称:可随意填写,我们以”Localhost - Android”为例

类型:SSH

地址:127.0.0.1

认证:选择”新建”跳转到”新建认证”界面:

昵称:同样可以随意填写,我们同样以”Localhost - Android”为例

用户名:填写”配置文件设置”界面的”用户名”,默认为android

密码:填写”配置文件设置”界面的设置的”用户密码”

点击右上角的”√”图标保存并返回到”新建连接”界面,再次点击”√”图标保存,在”连接列表”中点击刚刚新建的这个项目连接到我们刚刚部署好的系统,连接成功后界面如下:

因为我们是通过普通用户android登陆系统的,接下来我们需要设置超级用户(root)的密码并且以超级用户的身份登陆系统:

在终端中键入:

sudo passwd root

终端将会提示用户输入root用户的密码并且再次输入一次以确认(输入密码时密码将不可见,连*都不会显示),设置完毕后,在终端键入命令su并输入刚刚设置好的root用户密码即可切换到root用户。

关于文件的管理:

如果你是通过”目录”方式部署的Linux系统,那么你可以直接使用R.E.管理器访问/data/user/0/ru.meefik.linuxdeploy/env/rootfs/linux来管理新系统中的文件,如果你是通过”文件”方式部署的Linux系统,管理文件等操作就得依靠SFTP了(当然使用SSH方式也没问题,但是小苏还是觉得SFTP更方便些)。当我们使用普通用户身份登录SFTP时,由于权限原因,我们无权操作大多数文件。所以我们需要以超级用户身份登录SFTP。但默认配置是不允许root用户登录SSH和SFTP的,所以我们需要在终端中进行如下设置:

在Linux Deploy中启动部署好的系统,以普通用户方式登录到SSH并使用su命令切换到超级用户,在终端中执行:

apt-get install -y vim #安装vim编辑器

当然啦,使用系统自带的vi编辑器也是可以的,如果你对vi编辑器比较熟悉也可以使用vi编辑器编辑文件。vim编辑器安装完成后我们继续在终端执行:

vim /etc/ssh/sshd_config #使用vim编辑器打开/etc/ssh/sshd_config这个文件

打开文件后,键入i进入编辑模式,点击终端任意位置可以弹出特殊键键盘,使用上下光标滚动浏览文件,在文件的#Authentication部分找到PermitRootLogin这一项,将其改为yes,改动完成后点击特殊键键盘中的”ESC”键退出编辑模式,键盘键入:wq!保存并强制退出文件完成对文件的编辑操作。

打开Linux Deploy,停止后再启动Linux系统。打开”Turbo客户端” - 侧边栏 - 创建一个新账户 - SFTP 来新建一个SFTP连接:

其中:

用户名为:root

密码为刚刚设置好的root用户的密码

主机名为:127.0.0.1

其他项保持默认,点击右上角的”保存”图标保存配置,在侧边栏的连接列表中我们将以root用户连接到SFTP并管理文件:

当然,修改完sshd_config文件,停止并启动Linux系统后,你也可以直接以root用户连接到SSH了。

转载于:https://my.oschina.net/u/2396236/blog/995063

Linux Deploy:在Android上部署Linux相关推荐

  1. 使用Linux Deploy在android手机上部署Ubuntu

    使用Linux Deploy在android手机上部署Ubuntu 准备工作 一.安装BusyBox 二.使用Linux Deploy安装Ubuntu 1.修改设置 2.修改配置 3.分区安装(镜像安 ...

  2. 用Linux Deploy在Android手机上安装Linux

    每小时进行5分钟的活动,能降低患上许多致命疾病的风险.--<程序员健康指南> 简介 使用Linux Deploy唯一的好处就是可以充分利用废弃的手机,而且手机具有省电,便捷的特点.安装了L ...

  3. 轻松实现各种文档格式转换,doc转pdf、doc转png图片、pdf转png图片,可以实现Windows、Linux、MacOS平台上部署(附源码和说明)

    轻松实现各种文档格式转换,doc转pdf.doc转png图片.pdf转png图片,可以实现Windows.Linux.MacOS平台上部署,可以通过命令行.shell脚本.python等方式调用. 实 ...

  4. 【Linux】在Linux /Centos和Ubuntu上部署私人云盘seafile

    在Linux /Centos和Ubuntu上部署私人云盘seafile 目录 一.在Centos上部署 1.安装依赖环境 2.启动mariadb服务,并设置开机自启 3.修改MySQL密码 4.安装S ...

  5. Android上的linux终端模拟器

    Android上的linux终端模拟器 超级酷啊,还想着将来自己写个呢,没想到已经有人写了,ku. http://as.baidu.com/a/item?docid=3185735&f=web ...

  6. 查看linux进程超时,Linux,在子进程上超时(Linux, timing out on subprocess)

    Linux,在子进程上超时(Linux, timing out on subprocess) 好吧,我需要编写一个调用脚本的代码,如果脚本中的操作挂起,则终止该过程. 首选语言是Python,但我也在 ...

  7. 在 Android 上部署Machine Learning(ML) 模型

    @如何在 Android 上部署机器学习 (ML) 模型 ** 如何在 Android 上部署Machine Learning(ML) 模型 ** 目录 Android上的 ML 项目工作流程 在 A ...

  8. Linux服务器Android环境配置,基于BusyBox+LinuxDeploy+JuiceSSH搭建Android上的Linux服务器教程...

    一.首先准备一部具有root权限的安卓机 1.Busybox(apk) BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Android 系统的自带的shell ...

  9. android上最好的linux终端,如何在带有Termux的Android上使用Linux命令行 | MOS86

    apt install [package name]我们的< APTA入门指南>和< APTA在Ubuntu中安装软件的指南>< APT在Ubuntu中在APT中安装软件 ...

最新文章

  1. chapter1:The way of the program
  2. [scala-spark]1. Spark vs Hadoop 及 基础
  3. 2.2.3 C语言中的整数类型及类型转换(为什么强制类型转换值发生改变?带你从机器码的角度分析)
  4. kotlin集合操作符——生产操作符
  5. 停车管理系统汽车到达汽车离去c语言,停车场管理系统 C语言实现
  6. 【BZOJ2300】【SCOI2011】糖果
  7. php取商,PHP获取百度关键词排名
  8. aidl使用_Android进阶之AIDL如何使用自定义类型
  9. VScode Remote 远程开发与调试(转)
  10. 2021年吉林高考成绩怎么查询,2021年吉林高考成绩查询登录网址入口怎么查 附查询方法...
  11. 微信小程序用RSA加密和java后台对接。
  12. FusionAccess桌面云介绍
  13. Flink程序 Timer实现定时操作
  14. 网页点名器(移动端、pc端)
  15. 链游成公链新宠,风口之下究竟哪家称王? 1
  16. Spring框架究竟是什么
  17. uniapp图片或文件的预览和下载,兼容ios+安卓+浏览器
  18. 机器学习之分类决策树与回归决策树—基于python实现
  19. 学习VSC配置opencv
  20. 核聚变技术的实现,会给人类带来什么?

热门文章

  1. VS code 设置多行注释快捷键
  2. 朱会灿:搜索引擎演变史 视频及PPT放出 - 讲堂活动 - 腾讯大讲堂
  3. 游戏计算机的显示器,玩游戏用多大显示器好?聊聊电脑显示器多大尺寸合适
  4. modbustcp测试工具怎么用_【转】年轻人不讲武德不仅白piao接口测试知识还白piao接口测试工具会员...
  5. [转]查看Zookeeper服务器状态信息的一些命令
  6. 我的奋斗之黑马第一天
  7. passive-interface 总结整理
  8. 设计UI的语言——XAML
  9. matlab报错之未定义与 ‘double‘ 类型的输入参数相对应的函数 ‘tf‘
  10. [NameError]: name ‘F’ is not defined