编译创建Debian rootfs并在Android 上运行
编译创建Debian rootfs并在Android 上运行
refs:
背景
Android ebpf环境搭建
编译构建可在Android上运行的Debian rootfs环境
整体思路
其实通过上述的refs很容易能看出来rootfs的安装流程很简单。通过debootstrap,下载安装到制定路径。
下载安装完成以后就可以通过chroot check是否生效。
确认Debian版本
版本的选择是安装过程遇到的第一个问题,由于Debian是和Linux内核版本绑定的,所以我们需要根据内核版本确认Debian的安装版本。
经过和Gpt的深入交流,总结得知Debain的默认内核版本可以通过如下方式查找。(不唯一)
- 首先我们可以通过release note地址去查看当前release的debian版本。
2.点击指定版本的link以后、进入release note,选择关注的架构
搜索Kernel以后可发现,debian 10 ~ debian 11 默认内核从4.19 更新到了5.10
因为目前Arm内核为5.10因此,Debian版本号就确定了,就是Debian 11~
安装
确认版本以后我们就可以开始愉快的安装了。
1.安装qemu(用于模拟其他CPU指令集,并虚拟操作系统)
1 | sudo apt install qemu-user-static |
2.安装debootstrap
1 | sudo apt install debootstrap |
3.安装debian 11
1 | sudo debootstrap --arch arm64 --components=main,universe bullseye my-debian http://ftp.cn.debian.org/debian/ |
详细解释
**debootstrap
**:
- Debian 官方工具,用于在 非 Debian 系统(如 Ubuntu、其他 Linux)或 空目录 中创建一个最小化的 Debian 根文件系统。
- 常用于构建 Docker 镜像、嵌入式系统 或 chroot 环境。
**--arch arm64
**:
指定目标系统的 CPU 架构为
ARM64
(64 位 ARM 处理器),适用于:
- 树莓派 3B+/4B
- ARM 服务器(如 AWS Graviton)
- 嵌入式设备(如 NAS、路由器)
**--components=main,universe
**:
- **
main
**:Debian 官方维护的开源软件包(默认包含)。 - **
universe
**:社区维护的开源软件包(注意:universe
是 Ubuntu 仓库的命名,Debian 对应的是 **contrib
和non-free
**,此处可能需更正为--components=main,contrib,non-free
)。 - 若需更广泛软件支持,应使用 Debian 的标准组件名。
**bullseye
**:
- Debian 11 的代号(发布于 2021 年 8 月),是当前 稳定版(Stable)。
- 其他版本代号:
bookworm
(Debian 12,测试版)、sid
(不稳定版)。
**my-debian
**:
- 生成的根文件系统将保存在当前目录下的
my-debian
文件夹中。 - 完成后可通过
chroot my-debian
进入该环境。
**http://ftp.cn.debian.org/debian/
**:
- 使用 中国区镜像源(位于北京外国语大学),加快国内下载速度。
- 其他可选镜像:
- 官方源:
http://deb.debian.org/debian/
- 腾讯云:
http://mirrors.tencent.com/debian/
- 阿里云:
http://mirrors.aliyun.com/debian/
- 官方源:
日志输出
1 | sudo debootstrap --arch arm64 --components=main,universe bullseye my-debian http://ftp.cn.debian.org/debian/ |
- 打包成tar包
1 | sudo tar -cvf debian-mini.tar my-debian |
- push到客户端上
1 | adb push debian-mini.tar /data/local/tmp |
- 解压
1 | tar -xvf debian-mini.tar |
修改配置
后续操作均是在手机上运行
- 添加mount文件路径
参考eadb
简单来说就是挂载proc,dev,sys,bpf,cgroup,debug,tracing文件
1 | do_mounts() |
- 添加bashrc
参考eadb
1 | vi debian11/.bashrc 记得添加bashrc文件 |
- 运行
1 | source debian-mount.sh |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 理想三巡!