如何在安卓手机上 chroot 一个全功能的 linux 发行版

如何在安卓手机上 chroot 一个全功能的 linux 发行版

名词解释/核心技术/工具

chroot

chroot 是在 unix 系统的一个操作,针对正在运作的软件进程和它的子进程,改变它外显的根目录。一个运行在这个环境下,经由 chroot 设置根目录的程序,它不能够对这个指定根目录之外的文件进行访问动作,不能读取,也不能更改它的内容。chroot 这一特殊表达可能指 chroot(2) 系统调用或 chroot(8) 前端程序。

由 chroot 创造出的那个根目录,叫做“chroot 监狱”(chroot jail,或 chroot prison)。

Linux Deploy

This application is open source software for quick and easy installation of the operating system (OS) GNU/Linux on your Android device.

走心机翻:此应用程序是为你的 Android 设备上安装快捷方便的操作系统(OS) GNU/Linux 的开源软件。

The application creates a disk image on a flash card, mounts it and installs an OS distribution. Applications of the new system are run in a chroot environment and working together with the Android platform. All changes made on the device are reversible, i.e. the application and components can be removed completely. Installation of a distribution is done by downloading files from official mirrors online over the internet. The application requires superuser rights (ROOT).

进阶菇翻:这个应用可以在 Android 设备上创建一个磁盘映像,然后挂载这个映像部署一份操作系统。这个操作系统会在 chroot 环境中运行,同时与 Android 共存。使用这个操作系统执行的所有操作都是可逆的,因为该应用及其组件可以被完全移除。操作系统的安装在线完成。使用该应用需要超级用户权限(ROOT)。

开始折腾

  1. 使用魔法获取一部安卓手机并取得炒鸡用户权限(ROOT);

    ↓ 香菇这里找来了一部年迈的 Lenovo A850
    CPU: ARMv7 Processor rev 3(v7l) 1300MHZ
    RAM: 1GB
    ↑ 不用担心完全够用
    OS: YUN OS 2.7.3
    ↑ 嗯!没错!就是安卓!
    NET: WiFi

  2. 下载 Linux Deploy: https://play.google.com/store/apps/details?id=ru.meefik.linuxdeploy(没有梯子的同学可以在众多的国内应用市场搜索下载);
  3. 安装 Linux Deploy 并进入配置,下面以菇的 Ubuntu 配置为例:

    Containerization method: chroot
    ↑ 菇解释为集成方式,有 chroot/proot 两种选择,这里当然选择 chroot

    Distribution: Ubuntu
    ↑ 发行版,可选如: Debian、Ubuntu、CentOS、Arch Linux 等数十个发行版

    Architecture: armhf
    ↑ 架构,有 armel/armhf/arm64/i386/amd64 五种选择,其中 armel 基于软件层运算,armhf 基于硬件层,作为手机来讲一般选择 armhf 即可,不行的话再选 armel,后边3种一般用于平板桌面计算机

    Distribution suite: precise
    ↑ 发行版本

    Source path: http://mirrors.ustc.edu.cn/ubuntu-ports/
    ↑ 源地址,虽然有默认值,但推荐中科大镜像(http://mirrors.ustc.edu.cn/

    Installation type: File
    ↑ 安装类型,选择 File 将会生成一个映像文件(*.img)

    Installation path: /storage/sdcard1/Linux/ubuntu.img
    ↑ 安装路径,菇这里改成了绝对路径,如无特殊需求保持默认的相对路径即可

    Image size (MB): Automatic calculation
    ↑ 镜像大小,菇这里选择了自动计算,不想占用太多手机存储的同学可以手动设置,但不要小得装不下一个系统

    File system: Auto
    ↑ 文件系统,选择自动即可

    User name: siitake
    ↑ 用户名,非 root 用户的用户名

    User password:
    ↑ 用户密码

    Privileged users: root
    ↑ 特权用户,理解为炒鸡用户(root)即可

    DNS: Automatic detection
    ↑ 域名解析服务,如无特殊需求默认自动即可

    Localization: zh_CN.UTF-8
    ↑ 本地化,菇选择了简中UTF8编码

    INIT: Disabled
    ↑ 初始化脚本,如无特殊需求,不启用

    MOUNTS: Disabled
    ↑ 挂载 Android 宿主机资源,根据需要选择是否启用

    SSH: Enable
    ↑ 远程管理隧道,方便使用PC管理则开启,同时可配置端口等信息

    GUI: Disabled
    ↑ 图形界面,菇为了省资源未开启,当然基于“安全性”考虑依然不推荐开启

  4. 参考上面配置好了之后,在菜单中选择 Install 安装,然后应用就会开始根据配置信息自动部署系统了,因为是在线安装,需要在安装过程中保持网络畅通;
  5. 根据设备配置、网络质量和发行版的选择,可能安装过程会持续约 10~30 分钟,安装完成即可通过 SSH 登陆管理。

附官方视频:

Ps. 因为手机多是 arm 构架,所以虽然可以通过这种方式安装全功能的 Linux 发行版,但是部分软件源仍不能使用,或者安装后仍会出问题。经菇简单测试,Node.js、ffmpeg 等官方有 arm 包的应用畅用无阻;Nginx、Apache、php 等通过包管理器也可顺利安装使用;mysql 试着用包管理器安装成功,但是启动服务时会报错,未进行移植版的深入测试;smb 协议的共享文件系统可通过 cifs-utils 执行命令,但挂载失败,提示系统不支持 cifs 文件系统……

Pss. 在手机上装 Linux 貌似是个很古老的话题了,实际上 Android 本身就是基于 Linux 开发的,所以“可以装”是毋庸置疑的,问题就在于“怎么装”,早前就看到过有大神把 Ubuntu 发行版塞到了手机里,当然现在 Ubuntu 官方也发布的自己的移动版系统,不过和桌面/服务器发行版还是有区别的。本文介绍的是“纯绿色、无公害、不侵入”的方法,方便部署和备份,当然移除起来也是不留痕。

Psss. 可能有人会问这么做有什么用?对于不喜欢动手折腾的人来说这估计确实没什么用,不过对于喜欢计算机技术的 Geek 们来说:研习技术、旧物利用、装X…… 很!有!用!啊!蛤!蛤!蛤!蛤!

版权声明:原创内容未经允许请勿转载。

标签: none

评论已关闭