什么会导致运行文件 /usr/sbin/xenstored 打印
sh: /usr/sbin/xenstored: not found
但是,文件 /usr/sbin/xenstored 在那里并且不是符号链接。
实际上我应该以 root 身份运行它。这会打印出一条类似的奇怪消息。
sudo: unable to execute /usr/sbin/xenstored: No such file or directory
顺便说一句,xenstored 不是一个脚本,它是一个 ELF 可执行文件。
我猜是因为我没有安装所有依赖库。不过,我期望它会显示如下内容:
./xenstored: error while loading shared libraries: libxenctrl.so.4.0: cannot open shared object file: No such file or directory
在没有所有必需库的系统上运行 xenstored 时,情况确实如此。为什么我会得到“未找到”而不是更有用的“无法打开共享对象文件”?
答案1
事实证明它缺少一些库。我发现我的情况是,我有一个 32 位用户空间和一个 64 位内核。我预计两者都是 64 位的,但事实并非如此。
问题是我需要安装 64 位运行时链接器 ld.so 以及 xenstored 和其他 xen 应用程序所需的所有 64 位共享库,并将它们放入正确的路径。完成后,它就可以正常工作了。