立即在 chroot 环境 returns 中启动程序

Starting a program in a chroot environment returns immediately

我在虚拟环境中工作,试图在 chroot 环境中启动 open vm 工具。 我用 bash 测试过,它似乎工作正常。 我使用./configure --options --prefix=/home/chroot_env安装程序,然后在vmtoolsd上使用ldd,将相应的库复制到/lib目录。

现在当我启动 chroot /home/chroot_env /bin/vmtoolsd 时,没有任何反应,直接 chroot returns。在正常环境中启动相同的二进制文件确实有效。

有人知道为什么它不起作用吗?那里有正确的库,并且它可以与 bash 一起使用。

编辑:strace 显示 vmtoolsd 正在尝试访问 /dev/console,我添加了 mount --bind /dev/ /home/chroot_env/dev/ 但它仍然失败。

EDIT2:另一个 strace 显示它正在寻找另一个动态加载的插件,我添加了它并且它起作用了,结论 strace 非常适合调试此类问题!

当您 运行 一个程序并且没有任何反应时,您总是可以 运行 它与 strace 以查看进行了哪些系统调用。这是获取打开的文件(常规或非常规)列表的简单方法。对于您的情况,请检查您的程序是否尝试访问不在 chroot 中的文件。