我在虚拟环境中工作,试图在chroot环境中启动开放式vm工具。
我用bash进行测试,似乎工作正常。
我使用./configure --options --prefix=/home/chroot_env
安装程序,然后在vmtoolsd上使用ldd,我将相应的库复制到/lib
目录。
现在当我开始chroot /home/chroot_env /bin/vmtoolsd
时,没有任何反应,chroot直接返回。在正常环境中启动相同的二进制文件确实有效。
有人知道它为什么不起作用,正确的库存在,并且它适用于bash。
编辑:strace显示vmtoolsd正在尝试访问/dev/console
,我添加了mount --bind /dev/ /home/chroot_env/dev/
,但它仍然失败。
EDIT2:另一个strace显示它正在寻找另一个动态加载的插件,我添加它并且它有效,结论strace
非常适合调试此类问题!
答案 0 :(得分:1)
当您运行某个程序但没有任何反应时,您始终可以使用strace
运行它以查看哪些系统调用。这是获取打开的文件列表(常规或非常规)的简便方法。在您的情况下,请检查您的程序是否尝试访问不在chroot中的文件。