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/system的名稱甚至包含 xen 的服務文件,但沒有找到。所以我相信我需要以某種方式安裝這三個服務,但我不確定為什麼當我出現xen (和 xen-tools)或 systemd**時沒有安裝它們。我需要從原始碼建構它們嗎?任何方向將不勝感激!
我通過在 systemd 已經安裝的情況下重新安裝 xen 和 xen-tools 解決了這個問題。
但是,我確實必須更改我的 xen-qemu-dom0-disk-backend.service 以指向我已經安裝的 QEMU 二進製文件(因為我使用單獨的 QEMU 包)。
壞消息
幾天前我查了這個,忘記發布答案了。我不使用
xen
,xen-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 ~ $
正如您從上面列出的輸出中看到的那樣,
systemd
USE 標誌沒有在 USE 列表中列出app-emulation/xen
或app-emulation/xen-tools
。每個支持systemd
USE 標誌的包都會在列表中列出。事實上,我們可以通過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 配置文件,該列表將包含更多內容。有關更完整的列表,請參閱下面的 Tracker Bug。
可能的修復
由於上面未列出該標誌,因此我可以想到大約 3 個選項:
- 編寫您自己的 .service 文件。還有許多其他類似的連結,只是Google用於編寫 systemd 服務
eselect profile
使用(選擇不帶 的配置文件)切換回 OpenRC/SysV initsystemd
。此設置在Gentoo 的 Xen Wiki 條目中有詳細記錄.service files
將您在 #1 中寫的內容貢獻給錯誤 482420 - app-emulation/xen-tools:添加 systemd 單元腳本文件支持,從而阻止錯誤 448882 - (install-systemd-unit)$$ Tracker $$不提供 systemd 單元的軟體包。此列表包含所有需要 systemd 單元的包。被劃掉的已經增加了支持。那些還不需要工作的。