【发布时间】:2015-03-20 09:46:26
【问题描述】:
我在虚拟环境中工作,试图在 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 非常适合调试此类问题!
【问题讨论】:
-
你的
/home/chroot_env有足够的rootfs吗?我的意思是,它是否有必要的工具,例如/home/chroot_env/bin/bash、/home/chroot_env/bin/vmtoolsd等?它是否还有必要的共享库等? -
我确实将 bash 和 vmtoolsd 添加到了正确的目录中,并复制了所需的库,可能缺少二进制文件,但我不知道如何找到它。
-
看看你能不能让
ldd在chroot里面工作... -
你试过用 strace 看看会发生什么吗?
-
@Maxime strace 显示 vmtoolsd 正在尝试访问 /dev/console,我相应地编辑了我的帖子。