我想在 chroot 中在我的 Android 设备上运行功能齐全的 Ubuntu。但我在使用 upstart 时遇到了一些问题。在 chroot 中“它实际上会运行 /sbin/telinit”,那么我如何运行 upstart 或用其他程序替换它?
答案1
您无法在 chroot 中真正运行 upstart 本身。要使其工作,您需要 LXC 容器之类的东西。不幸的是,大多数 Android 内核没有允许 LXC 工作所需的选项。
如果没有 LXC,在手机上获取 chroot 的方法是运行:
- sudo debootstrap --foreign --arch=armhf 精确 精确
- 然后将 precise/ 复制到您的手机
- 然后在你的手机上(以 root 身份):chroot precise debootstrap/debootstrap --second-stage
这将在您的手机上为您提供标准的 Ubuntu chroot,然后您可以使用“chroot precise /bin/bash”进入该手机。
然后您需要挂载 /proc 和 /sys 以便可以使用它。
如果你足够幸运,拥有一部内核和用户空间可以与 LXC 配合使用的手机,并且可以手动将其安装在你的手机上,那么以下操作应该可以工作:
- lxc-create -t ubuntu -n my-container -- -r precise -a armhf
- lxc-start -n 我的容器
这将创建一个 Ubuntu 12.04 armhf 容器并启动它,然后您将获得通常的登录提示(默认登录名/密码为 ubuntu/ubuntu)。