Systemd 将不会启动 xenstored、xenconsoled 和 xendomains

Systemd 将不会启动 xenstored、xenconsoled 和 xendomains

我正在运行 Gentoo 安装,最近转移到 systemd,每当我使用 Xen 启动时,我都无法发出任何 xl 命令,并收到此错误:

xc:错误:无法获取特权命令界面上的句柄(2 = 没有此类文件或目录):内部错误

libxl:错误:libxl.c:92:libxl_ctx_alloc:无法打开libxc句柄:没有这样的文件或目录

无法初始化 xl 上下文

研究问题后,我发现提到的三个服务(xenstored、xenconsoled 和 xendomains)没有运行,并且我无法在 systemd 中启用它们。我检查了/usr/lib64/systemd/系统for 和服务文件的名称甚至包含 xen,但没有找到。所以我相信我需要以某种方式安装这三个服务,但我不确定为什么当我出现时它们没有安装xen(和 xen-tools)或 systemd。我需要从源代码构建它们吗?任何方向将不胜感激!

答案1

坏消息

我前几天查过这个问题,忘记发布答案了。我不使用xenxen-tools所以我的emerge输出显示了额外的包:

ecyoung@bedroom-gentoo ~ $ sudo emerge -av xen xen-tools

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] dev-libs/yajl-2.0.4-r3::gentoo  USE="-static-libs" ABI_X86="32 (64) (-x32)" 81 KiB
[ebuild  N     ] dev-python/markdown-2.6.1::gentoo  USE="-doc -pygments {-test}" PYTHON_TARGETS="python2_7 python3_3 python3_4 (-pypy) (-pypy3)" 292 KiB
[ebuild  N     ] dev-python/pypam-0.5.0-r3::gentoo  PYTHON_TARGETS="python2_7 python3_3" 103 KiB
[ebuild  N     ] sys-firmware/ipxe-1.0.0_p20130925::gentoo  USE="qemu usb -iso -undi -vmware" 2,188 KiB
[ebuild  N     ] sys-devel/dev86-0.16.19::gentoo  697 KiB
[ebuild  N     ] net-misc/bridge-utils-1.5::gentoo  USE="(-selinux)" 33 KiB
[ebuild  N     ] app-emulation/xen-tools-4.5.0-r6::gentoo  USE="pam python -api -custom-cflags -debug -doc -flask -hvm (-ocaml) -ovmf -pygrub -qemu -screen -static-libs -system-qemu -system-seabios" PYTHON_TARGETS="python2_7" 18,604 KiB
[ebuild  N     ] app-emulation/xen-4.5.0-r8::gentoo  USE="-custom-cflags -debug -efi -flask -xsm" 0 KiB

Total: 8 packages (8 new), Size of downloads: 21,996 KiB

Would you like to merge these packages? [Yes/No] n

Quitting.

ecyoung@bedroom-gentoo ~ $ 

正如您从上面列出的输出中看到的,systemdUSE 标志未在 或app-emulation/xen的USE 列表中列出app-emulation/xen-tools。每个支持systemdUSE 标志的软件包都会将其列在列表中。事实上,我们可以通过app-portage/gentoolkit包含该equery脚本的包来验证这一点:

ecyoung@bedroom-gentoo ~ $ sudo equery hasuse systemd
 * Searching for USE flag systemd ... 
[IP-] [  ] app-admin/syslog-ng-3.6.2:0
[IP-] [  ] dev-libs/efl-1.12.2:0
[IP-] [  ] kde-base/kdm-4.11.19:4/4.11
[IP-] [  ] media-gfx/sane-backends-1.0.24-r5:0
[IP-] [  ] media-sound/pulseaudio-5.0-r7:0
[IP-] [  ] net-print/cups-2.0.2-r1:0
[IP-] [  ] net-wireless/bluez-5.25:0/3
[IP-] [  ] sci-geosciences/gpsd-3.9-r1:0
[IP-] [  ] sys-apps/accountsservice-0.6.40:0
[IP-] [  ] sys-apps/busybox-1.23.1-r1:0
[IP-] [  ] sys-apps/dbus-1.8.16:0
[IP-] [  ] sys-apps/util-linux-2.25.2-r2:0
[IP-] [  ] sys-auth/pambase-20150213:0
[IP-] [  ] sys-auth/polkit-0.112-r2:0
[IP-] [  ] sys-fs/lvm2-2.02.109:0
[IP-] [  ] sys-fs/multipath-tools-0.5.0-r1:0
[IP-] [  ] sys-fs/udisks-2.1.4:2
[IP-] [  ] sys-process/procps-3.3.9-r2:0
[IP-] [  ] virtual/libgudev-215-r3:0/0                                                                                                                                                                                                                                         
[IP-] [  ] virtual/libudev-215-r1:0/1                                                                                                                                                                                                                                          
[IP-] [  ] virtual/udev-215:0                                                                                                                                                                                                                                                  
[IP-] [  ] x11-base/xorg-server-1.16.4:0/1.16.1                                                                                                                                                                                                                                
[I-O] [  ] x11-wm/enlightenment-0.19.4:0.17/0.19                                                                                                                                                                                                                               
ecyoung@bedroom-gentoo ~ $

请注意,如果我启用了 systemd 配置文件,该列表将包含更多内容。请参阅下面的跟踪器错误以获取更完整的列表。


可能的修复

由于上面没有列出该标志,因此我可以想到大约 3 个选项:

  1. 编写您自己的 .service 文件。还有许多其他链接,例如这个,只需谷歌即可编写系统服务
  2. eselect profile使用(选择不带 的配置文件)切换回 OpenRC/SysV init systemd。此设置在Gentoo 的 Xen Wiki 条目
  3. .service files将您在 #1 中编写的内容贡献给Bug 482420 - app-emulation/xen-tools:添加 systemd 单元脚本文件支持,这会阻止Bug 448882 - (install-systemd-unit) [Tracker] 软件包不提供 systemd 单元。此列表包含所有需要 systemd 单元的软件包。被划掉的部分已添加了支持。那些还没有的仍然需要工作。

答案2

我通过在已安装 systemd 的情况下重新安装 xen 和 xen-tools 解决了该问题。

但是,我确实必须更改 xen-qemu-dom0-disk-backend.service 以指向我已经安装的 QEMU 二进制文件(因为我使用单独的 QEMU 包)。

相关内容