如何在 Android 上的 chroot 中运行 ubuntu?

如何在 Android 上的 chroot 中运行 ubuntu?

我想在 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)。

答案2

Linux 部署我最近的请求请求/bin/true它支持在用户会话模式下使用 Upstart 在 chroot 中运行服务。我认为这比符号链接到好得多/sbin/telinit

相关内容