以下是使用 ruri 快速构建跨架构 chroot 容器的步骤,这里以在 x86_64 系统下运行 arm64 的 ubuntu 容器为例:
- 确认 binfmt_misc 支持:
plaintext
复制
cat /proc/filesystems | grep binfmt_misc
确保能看见 binfmt_misc 的输出,大多系统甚至安卓的 gki 内核应该都是支持的。
- 安装 qemu-user-static:
plaintext
复制
sudo apt install qemu-user-static
- 获取 rootfs:使用作者编写的 rootfstool 脚本
plaintext
复制
git clone https://github.com/moe-hacker/rootfstool cd rootfstool ./rootfstooldownload --mirror bfsu --distro ubuntu --version noble --arch arm64
这将得到 rootfs.tar.xz。
- 获取 ruri 二进制:前往 https://github.com/moe-hacker/ruri/releases ,下载最新的 ruri-x86_64
plaintext
复制
wget https://github.com/moe-hacker/ruri/releases/download/v3.3/ruri-x86_64 chmod 777 ruri-x86_64
- 解压 rootfs 并启动:
plaintext
复制
mkdir ubuntu-arm64 tar -xvf /path/to/rootfs.tar.xz -c ubuntu-arm64 cp /usr/bin/qemu-aarch64-static ubuntu-arm64/ sudo./ruri-x86_64 -a aarch64 -q qemu-aarch64-static./ubuntu-arm64/
- 配置容器 dns(在容器中执行):
plaintext
复制
rm /etc/resolv.conf echo "nameserver 114.114.114.114" >/etc/resolv.conf
请注意,ruri 应该始终以 root 权限执行(使用 sudo),并且不要为其设置 suid 或任何其他权限!同时,使用 ruri 或任何类似工具构建容器时,要谨慎操作并确保了解其潜在影响和风险。此外,不同的系统环境可能会有一些细微的差异,上述步骤可能需要根据实际情况进行适当调整。